leankit-client
Advanced tools
Comparing version 1.0.0-beta.4 to 1.0.0-beta.6
149
client.js
"use strict"; | ||
var _arguments = arguments; | ||
Object.defineProperty(exports, "__esModule", { | ||
@@ -7,11 +8,31 @@ value: true | ||
var path = require("path"); | ||
var request = require("request-json"); | ||
var request = require("request"); | ||
var when = require("when"); | ||
var fs = require("fs"); | ||
var jetpack = require("fs-jetpack"); | ||
var LeanKitClient = function LeanKitClient(account, email, password, options) { | ||
if (arguments.length === 2) { | ||
options = arguments[1]; | ||
if (_arguments.length === 2) { | ||
options = _arguments[1]; | ||
email = null; | ||
password = null; | ||
} | ||
var buildUrl = function buildUrl(account) { | ||
var url = ""; | ||
if (account.indexOf("http://") !== 0 && account.indexOf("https://") !== 0) { | ||
url = "https://" + account; | ||
// Assume leankit.com if no domain is specified | ||
if (account.indexOf(".") === -1) { | ||
url += ".leankit.com"; | ||
} | ||
} else { | ||
url = account; | ||
} | ||
if (url.indexOf("/", account.length - 1) !== 0) { | ||
url += "/"; | ||
} | ||
return url + "kanban/api/"; | ||
}; | ||
var boardIdentifiers = {}; | ||
@@ -21,2 +42,45 @@ | ||
var defaultWipOverrideReason = "WIP Override performed by external system"; | ||
var url = buildUrl(account); | ||
if (!options.baseUrl && !options.uri && !options.url) { | ||
options.baseUrl = url; | ||
} | ||
if (options.proxy && (options.proxy.indexOf("localhost") > -1 || options.proxy.indexOf("127.0.0.1") > -1)) { | ||
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = "0"; | ||
} | ||
if (!options.headers) { | ||
options.headers = {}; | ||
} | ||
if (!options.headers["User-Agent"]) { | ||
var version = undefined; | ||
if (jetpack.exists(__dirname + "/package.json")) { | ||
var pkg = jetpack.read(__dirname + "/package.json", "json"); | ||
version = pkg.version; | ||
} else { | ||
version = "1.0.0"; | ||
} | ||
options.headers["User-Agent"] = "leankit-node-client/" + version; | ||
} | ||
if (password) { | ||
var cred = email + ":" + password; | ||
var basicAuth = new Buffer(cred).toString("base64"); | ||
options.headers.authorization = "Basic " + basicAuth; | ||
} | ||
options.json = true; | ||
if (!options.headers.accept) { | ||
options.headers.accept = "application/json"; | ||
} | ||
if (!options.headers["Content-Type"]) { | ||
options.headers["Content-Type"] = "application/json"; | ||
} | ||
var client = request.defaults(options); | ||
var parseReplyData = function parseReplyData(error, response, callback, cacheCallback) { | ||
@@ -67,19 +131,2 @@ if (error) { | ||
var buildUrl = function buildUrl(account) { | ||
var url = ""; | ||
if (account.indexOf("http://") !== 0 && account.indexOf("https://") !== 0) { | ||
url = "https://" + account; | ||
// Assume leankit.com if no domain is specified | ||
if (account.indexOf(".") === -1) { | ||
url += ".leankit.com"; | ||
} | ||
} else { | ||
url = account; | ||
} | ||
if (url.indexOf("/", account.length - 1) !== 0) { | ||
url += "/"; | ||
} | ||
return url + "kanban/api/"; | ||
}; | ||
var clientGet = function clientGet(path, callback) { | ||
@@ -111,3 +158,3 @@ var p = when.promise(function (resolve, reject) { | ||
return callback(null, res); | ||
}, function (err) { | ||
}).catch(function (err) { | ||
return callback(err); | ||
@@ -122,3 +169,3 @@ }); | ||
var p = when.promise(function (resolve, reject) { | ||
client.post(path, data, function (err, res, body) { | ||
client.post(path, { body: data }, function (err, res, body) { | ||
if (err) { | ||
@@ -140,6 +187,4 @@ reject(err); | ||
return callback(null, res); | ||
}, function (err) { | ||
}).catch(function (err) { | ||
return callback(err, null); | ||
})["catch"](function (err) { | ||
return callback(err, null); | ||
}); | ||
@@ -151,10 +196,9 @@ } else { | ||
var clientSaveFile = function clientSaveFile(path, filePath, callback) { | ||
var clientSaveFile = function clientSaveFile(path, file, callback) { | ||
var p = when.promise(function (resolve, reject) { | ||
client.saveFile(path, filePath, function (err, res, body) { | ||
if (err) { | ||
reject(err); | ||
} else { | ||
resolve(body); | ||
} | ||
var f = typeof file === "string" ? fs.createWriteStream(file) : file; | ||
var res = client.get(path); | ||
res.pipe(f); | ||
res.on("end", function () { | ||
resolve(f); | ||
}); | ||
@@ -165,3 +209,3 @@ }); | ||
return callback(null, res); | ||
}, function (err) { | ||
}).catch(function (err) { | ||
return callback(err); | ||
@@ -174,5 +218,16 @@ }); | ||
var sendFile = function sendFile(path, file, attachmentData, callback) { | ||
if (typeof file === "string") { | ||
attachmentData.file = fs.createReadStream(file); | ||
} else { | ||
attachmentData.file = file; | ||
} | ||
client.post({ url: path, formData: attachmentData }, function (err, res, body) { | ||
callback(err, res, body); | ||
}); | ||
}; | ||
var clientSendFile = function clientSendFile(path, file, attachmentData, callback) { | ||
var p = when.promise(function (resolve, reject) { | ||
client.sendFile(path, file, attachmentData, function (err, res, body) { | ||
sendFile(path, file, attachmentData, function (err, res, body) { | ||
if (err) { | ||
@@ -193,3 +248,3 @@ reject(err); | ||
return callback(null, res); | ||
}, function (err) { | ||
}).catch(function (err) { | ||
return callback(err); | ||
@@ -215,6 +270,4 @@ }); | ||
var getBoardByName = function getBoardByName(boardToFind, callback) { | ||
var _this = this; | ||
var p = when.promise(function (resolve, reject) { | ||
_this.getBoards().then(function (boards) { | ||
getBoards().then(function (boards) { | ||
if (boards && boards.length > 0) { | ||
@@ -225,3 +278,3 @@ var board = boards.find(function (b) { | ||
if (board && board.Id > 0) { | ||
_this.getBoard(board.Id).then(function (b) { | ||
getBoard(board.Id).then(function (b) { | ||
resolve(b); | ||
@@ -318,3 +371,3 @@ }, function (err) { | ||
var addCards = function addCards(boardId, cards, callback) { | ||
return this.addCardsWithWipOverride(boardId, cards, defaultWipOverrideReason, callback); | ||
return addCardsWithWipOverride(boardId, cards, defaultWipOverrideReason, callback); | ||
}; | ||
@@ -435,4 +488,4 @@ | ||
var downloadAttachment = function downloadAttachment(boardId, attachmentId, filePath, callback) { | ||
return clientSaveFile("card/DownloadAttachment/" + boardId + "/" + attachmentId, filePath, callback); | ||
var downloadAttachment = function downloadAttachment(boardId, attachmentId, file, callback) { | ||
return clientSaveFile("card/DownloadAttachment/" + boardId + "/" + attachmentId, file, callback); | ||
}; | ||
@@ -460,9 +513,2 @@ | ||
var defaultWipOverrideReason = "WIP Override performed by external system"; | ||
var url = buildUrl(account); | ||
var client = request.createClient(url, options); | ||
if (password) { | ||
client.setBasicAuth(email, password); | ||
} | ||
return { | ||
@@ -512,7 +558,6 @@ addAttachment: addAttachment, | ||
updateTask: updateTask, | ||
_client: client | ||
_options: options | ||
}; | ||
}; | ||
exports["default"] = LeanKitClient; | ||
module.exports = exports["default"]; | ||
exports.default = LeanKitClient; |
"use strict"; | ||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); | ||
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; | ||
Object.defineProperty(exports, "__esModule", { | ||
@@ -7,8 +11,8 @@ value: true | ||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); | ||
function _typeof(obj) { return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; } | ||
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } | ||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | ||
@@ -26,9 +30,11 @@ | ||
_get(Object.getPrototypeOf(LeanKitNotifier.prototype), "constructor", this).call(this); | ||
this.timer = 0; | ||
this.client = client; | ||
this.boardId = boardId; | ||
this.version = version || 0; | ||
this.pollInterval = pollInterval || 30; | ||
var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(LeanKitNotifier).call(this)); | ||
_this.timer = 0; | ||
_this.client = client; | ||
_this.boardId = boardId; | ||
_this.version = version || 0; | ||
_this.pollInterval = pollInterval || 30; | ||
// super.call( this ); | ||
return _this; | ||
} | ||
@@ -39,6 +45,6 @@ | ||
value: function waitForNextPoll() { | ||
var _this = this; | ||
var _this2 = this; | ||
return setTimeout(function () { | ||
_this.getUpdates(); | ||
_this2.getUpdates(); | ||
}, this.pollInterval * 1000); | ||
@@ -52,3 +58,3 @@ } | ||
var val = obj[key]; | ||
if (val && typeof val === "object") { | ||
if (val && (typeof val === "undefined" ? "undefined" : _typeof(val)) === "object") { | ||
val = this.camelClone(val); | ||
@@ -63,3 +69,3 @@ } | ||
value: function getUpdates(callback) { | ||
var _this2 = this; | ||
var _this3 = this; | ||
@@ -72,4 +78,4 @@ this.timer = 0; | ||
} else { | ||
_this2.version = board.Version; | ||
_this2.getUpdates(callback); | ||
_this3.version = board.Version; | ||
_this3.getUpdates(callback); | ||
} | ||
@@ -81,3 +87,3 @@ }); | ||
if (err) { | ||
_get(Object.getPrototypeOf(LeanKitNotifier.prototype), "emit", _this2).call(_this2, "error", err); | ||
_get(Object.getPrototypeOf(LeanKitNotifier.prototype), "emit", _this3).call(_this3, "error", err); | ||
if (typeof callback === "function") { | ||
@@ -88,14 +94,14 @@ callback(err); | ||
(function () { | ||
_this2.version = res.CurrentBoardVersion; | ||
_this3.version = res.CurrentBoardVersion; | ||
var events = []; | ||
res.Events.forEach(function (e) { | ||
var n = _this2.camelClone(e); | ||
n.boardVersion = _this2.version; | ||
var n = _this3.camelClone(e); | ||
n.boardVersion = _this3.version; | ||
n.eventType = changeCase.param(e.EventType).replace("-event", ""); | ||
if (n.eventType === "board-edit" && res.NewPayload) { | ||
n.board = _this2.camelClone(res.NewPayload); | ||
n.board = _this3.camelClone(res.NewPayload); | ||
// console.log( n ); | ||
} | ||
events.push(n); | ||
_get(Object.getPrototypeOf(LeanKitNotifier.prototype), "emit", _this2).call(_this2, n.eventType, n); | ||
_get(Object.getPrototypeOf(LeanKitNotifier.prototype), "emit", _this3).call(_this3, n.eventType, n); | ||
}); | ||
@@ -106,7 +112,7 @@ | ||
} else { | ||
_this2.timer = _this2.waitForNextPoll(); | ||
_this3.timer = _this3.waitForNextPoll(); | ||
} | ||
})(); | ||
} else { | ||
_this2.timer = _this2.waitForNextPoll(); | ||
_this3.timer = _this3.waitForNextPoll(); | ||
} | ||
@@ -124,6 +130,6 @@ }); | ||
value: function waitForNextUpdate() { | ||
var _this3 = this; | ||
var _this4 = this; | ||
return when.promise(function (resolve, reject) { | ||
_this3.getUpdates(function (err, res) { | ||
_this4.getUpdates(function (err, res) { | ||
if (err) { | ||
@@ -150,3 +156,2 @@ reject(err); | ||
exports["default"] = LeanKitNotifier; | ||
module.exports = exports["default"]; | ||
exports.default = LeanKitNotifier; |
{ | ||
"name": "leankit-client", | ||
"description": "API client for use with LeanKit Kanban", | ||
"description": "Node.js API client for use with LeanKit", | ||
"readme": "https://github.com/LeanKit/leankit-node-client/blob/master/README.md", | ||
@@ -18,3 +18,3 @@ "keywords": [ | ||
"license": "SEE LICENSE IN https://github.com/LeanKit/leankit-node-client/blob/master/LICENSE", | ||
"version": "1.0.0-beta.4", | ||
"version": "1.0.0-beta.6", | ||
"homepage": "https://github.com/LeanKit/leankit-node-client/", | ||
@@ -38,8 +38,10 @@ "bugs": { | ||
"dependencies": { | ||
"babel": "~5.0", | ||
"change-case": "^2.3.0", | ||
"request-json": "~0.5.2", | ||
"request": "^2.67.0", | ||
"when": "~3.7.4" | ||
}, | ||
"devDependencies": { | ||
"babel-cli": "^6.3.17", | ||
"babel-core": "^6.3.26", | ||
"babel-preset-es2015": "^6.3.13", | ||
"chai": "^3.4.1", | ||
@@ -54,6 +56,7 @@ "chai-as-promised": "^5.1.0", | ||
"scripts": { | ||
"test": "./node_modules/mocha/bin/mocha --compilers js:babel/register --reporter spec", | ||
"test-events": "./node_modules/mocha/bin/mocha ./test/event-tests.js --compilers js:babel/register --reporter spec", | ||
"test-client": "./node_modules/mocha/bin/mocha ./test/client-tests.js --compilers js:babel/register --reporter spec", | ||
"compile": "babel ./src --out-dir ./" | ||
"compile": "./node_modules/.bin/babel ./src -d ./", | ||
"prepublish": "npm run compile", | ||
"test": "npm run compile && ./node_modules/mocha/bin/mocha --compilers js:babel-core/register --reporter spec ./test/*.js", | ||
"test-events": "npm run compile && ./node_modules/mocha/bin/mocha ./test/event-tests.js --compilers js:babel-core/register --reporter spec", | ||
"test-client": "npm run compile && ./node_modules/mocha/bin/mocha ./test/client-tests.js --compilers js:babel-core/register --reporter spec" | ||
}, | ||
@@ -60,0 +63,0 @@ "repository": { |
const path = require( "path" ); | ||
const request = require( "request-json" ); | ||
const request = require( "request" ); | ||
const when = require( "when" ); | ||
const fs = require( "fs" ); | ||
const jetpack = require( "fs-jetpack" ); | ||
let LeanKitClient = function( account, email, password, options ) { | ||
const LeanKitClient = ( account, email, password, options ) => { | ||
if ( arguments.length === 2 ) { | ||
@@ -11,2 +13,20 @@ options = arguments[ 1 ]; | ||
} | ||
const buildUrl = ( account ) => { | ||
let url = ""; | ||
if ( account.indexOf( "http://" ) !== 0 && account.indexOf( "https://" ) !== 0 ) { | ||
url = "https://" + account; | ||
// Assume leankit.com if no domain is specified | ||
if ( account.indexOf( "." ) === -1 ) { | ||
url += ".leankit.com"; | ||
} | ||
} else { | ||
url = account; | ||
} | ||
if ( url.indexOf( "/", account.length - 1 ) !== 0 ) { | ||
url += "/"; | ||
} | ||
return url + "kanban/api/"; | ||
}; | ||
let boardIdentifiers = {}; | ||
@@ -16,3 +36,46 @@ | ||
let parseReplyData = function( error, response, callback, cacheCallback ) { | ||
const defaultWipOverrideReason = "WIP Override performed by external system"; | ||
const url = buildUrl( account ); | ||
if ( !options.baseUrl && !options.uri && !options.url ) { | ||
options.baseUrl = url; | ||
} | ||
if ( options.proxy && ( options.proxy.indexOf( "localhost" ) > -1 || options.proxy.indexOf( "127.0.0.1" ) > -1 ) ) { | ||
process.env[ "NODE_TLS_REJECT_UNAUTHORIZED" ] = "0"; | ||
} | ||
if ( !options.headers ) { | ||
options.headers = {}; | ||
} | ||
if ( !options.headers["User-Agent"] ) { | ||
let version; | ||
if ( jetpack.exists( __dirname + "/package.json" ) ) { | ||
let pkg = jetpack.read( __dirname + "/package.json", "json" ); | ||
version = pkg.version; | ||
} else { | ||
version = "1.0.0"; | ||
} | ||
options.headers["User-Agent"] = `leankit-node-client/${version}`; | ||
} | ||
if ( password ) { | ||
let cred = `${email}:${password}`; | ||
let basicAuth = new Buffer( cred ).toString( "base64" ); | ||
options.headers.authorization = `Basic ${basicAuth}`; | ||
} | ||
options.json = true; | ||
if ( !options.headers.accept ) { | ||
options.headers.accept = "application/json"; | ||
} | ||
if ( !options.headers["Content-Type"] ) { | ||
options.headers["Content-Type"] = "application/json"; | ||
} | ||
const client = request.defaults( options ); | ||
const parseReplyData = ( error, response, callback, cacheCallback ) => { | ||
if ( error ) { | ||
@@ -46,3 +109,3 @@ if ( error instanceof Error ) { | ||
let parseBody = function( body ) { | ||
const parseBody = ( body ) => { | ||
let err, parsed; | ||
@@ -62,20 +125,3 @@ if ( typeof body === "string" && body !== "" ) { | ||
let buildUrl = function( account ) { | ||
let url = ""; | ||
if ( account.indexOf( "http://" ) !== 0 && account.indexOf( "https://" ) !== 0 ) { | ||
url = "https://" + account; | ||
// Assume leankit.com if no domain is specified | ||
if ( account.indexOf( "." ) === -1 ) { | ||
url += ".leankit.com"; | ||
} | ||
} else { | ||
url = account; | ||
} | ||
if ( url.indexOf( "/", account.length - 1 ) !== 0 ) { | ||
url += "/"; | ||
} | ||
return url + "kanban/api/"; | ||
}; | ||
let clientGet = function( path, callback ) { | ||
const clientGet = ( path, callback ) => { | ||
let p = when.promise( ( resolve, reject ) => { | ||
@@ -106,3 +152,3 @@ client.get( path, ( err, res, body ) => { | ||
return callback( null, res ); | ||
}, ( err ) => { | ||
} ).catch( ( err ) => { | ||
return callback( err ); | ||
@@ -115,5 +161,5 @@ } ); | ||
let clientPost = function( path, data, callback ) { | ||
const clientPost = ( path, data, callback ) => { | ||
let p = when.promise( ( resolve, reject ) => { | ||
client.post( path, data, ( err, res, body ) => { | ||
client.post( path, { body: data }, ( err, res, body ) => { | ||
if ( err ) { | ||
@@ -135,6 +181,5 @@ reject( err ); | ||
return callback( null, res ); | ||
}, ( err ) => { | ||
} ) | ||
.catch( ( err ) => { | ||
return callback( err, null ); | ||
} ).catch( ( err ) => { | ||
return callback( err, null ); | ||
} ); | ||
@@ -146,10 +191,9 @@ } else { | ||
let clientSaveFile = function( path, filePath, callback ) { | ||
const clientSaveFile = ( path, file, callback ) => { | ||
let p = when.promise( ( resolve, reject ) => { | ||
client.saveFile( path, filePath, ( err, res, body ) => { | ||
if ( err ) { | ||
reject( err ); | ||
} else { | ||
resolve( body ); | ||
} | ||
let f = ( typeof file === "string" ) ? fs.createWriteStream( file ) : file; | ||
let res = client.get( path ); | ||
res.pipe( f ); | ||
res.on( "end", () => { | ||
resolve( f ); | ||
} ); | ||
@@ -160,3 +204,3 @@ } ); | ||
return callback( null, res ); | ||
}, ( err ) => { | ||
} ).catch( ( err ) => { | ||
return callback( err ); | ||
@@ -169,5 +213,16 @@ } ); | ||
let clientSendFile = function( path, file, attachmentData, callback ) { | ||
const sendFile = ( path, file, attachmentData, callback ) => { | ||
if ( typeof file === "string" ) { | ||
attachmentData.file = fs.createReadStream( file ); | ||
} else { | ||
attachmentData.file = file; | ||
} | ||
client.post( { url: path, formData: attachmentData }, ( err, res, body ) => { | ||
callback( err, res, body ); | ||
} ); | ||
}; | ||
const clientSendFile = ( path, file, attachmentData, callback ) => { | ||
let p = when.promise( ( resolve, reject ) => { | ||
client.sendFile( path, file, attachmentData, ( err, res, body ) => { | ||
sendFile( path, file, attachmentData, ( err, res, body ) => { | ||
if ( err ) { | ||
@@ -188,3 +243,3 @@ reject( err ); | ||
return callback( null, res ); | ||
}, ( err ) => { | ||
} ).catch( ( err ) => { | ||
return callback( err ); | ||
@@ -197,17 +252,17 @@ } ); | ||
let getBoards = function( callback ) { | ||
const getBoards = ( callback ) => { | ||
return clientGet( "boards", callback ); | ||
}; | ||
let getNewBoards = function( callback ) { | ||
const getNewBoards = ( callback ) => { | ||
return clientGet( "ListNewBoards", callback ); | ||
}; | ||
let getBoard = function( boardId, callback ) { | ||
const getBoard = ( boardId, callback ) => { | ||
return clientGet( `boards/${boardId}`, callback ); | ||
}; | ||
let getBoardByName = function( boardToFind, callback ) { | ||
const getBoardByName = ( boardToFind, callback ) => { | ||
let p = when.promise( ( resolve, reject ) => { | ||
this.getBoards().then( ( boards ) => { | ||
getBoards().then( ( boards ) => { | ||
if ( boards && boards.length > 0 ) { | ||
@@ -218,3 +273,3 @@ let board = boards.find( ( b ) => { | ||
if ( board && board.Id > 0 ) { | ||
this.getBoard( board.Id ).then( ( b ) => { | ||
getBoard( board.Id ).then( ( b ) => { | ||
resolve( b ); | ||
@@ -245,3 +300,3 @@ }, ( err ) => { | ||
let getBoardIdentifiers = function( boardId, callback ) { | ||
const getBoardIdentifiers = ( boardId, callback ) => { | ||
let p = when.promise( ( resolve, reject ) => { | ||
@@ -270,39 +325,39 @@ if ( boardId in boardIdentifiers ) { | ||
let getBoardBacklogLanes = function( boardId, callback ) { | ||
const getBoardBacklogLanes = ( boardId, callback ) => { | ||
return clientGet( `board/${boardId}/backlog`, callback ); | ||
}; | ||
let getBoardArchiveLanes = function( boardId, callback ) { | ||
const getBoardArchiveLanes = ( boardId, callback ) => { | ||
return clientGet( `board/${boardId}/archive`, callback ); | ||
}; | ||
let getBoardArchiveCards = function( boardId, callback ) { | ||
const getBoardArchiveCards = ( boardId, callback ) => { | ||
return clientGet( `board/${boardId}/archivecards`, callback ); | ||
}; | ||
let getNewerIfExists = function( boardId, version, callback ) { | ||
const getNewerIfExists = ( boardId, version, callback ) => { | ||
return clientGet( `board/${boardId}/boardversion/${version}/getnewerifexists`, callback ); | ||
}; | ||
let getBoardHistorySince = function( boardId, version, callback ) { | ||
const getBoardHistorySince = ( boardId, version, callback ) => { | ||
return clientGet( `board/${boardId}/boardversion/${version}/getboardhistorysince`, callback ); | ||
}; | ||
let getBoardUpdates = function( boardId, version, callback ) { | ||
const getBoardUpdates = ( boardId, version, callback ) => { | ||
return clientGet( `board/${boardId}/boardversion/${version}/checkforupdates`, callback ); | ||
}; | ||
let getCard = function( boardId, cardId, callback ) { | ||
const getCard = ( boardId, cardId, callback ) => { | ||
return clientGet( `board/${boardId}/getcard/${cardId}`, callback ); | ||
}; | ||
let getCardByExternalId = function( boardId, externalCardId, callback ) { | ||
const getCardByExternalId = ( boardId, externalCardId, callback ) => { | ||
return clientGet( `board/${boardId}/getcardbyexternalid/${encodeURIComponent( externalCardId )}`, callback ); | ||
}; | ||
let addCard = function( boardId, laneId, position, card, callback ) { | ||
const addCard = ( boardId, laneId, position, card, callback ) => { | ||
return addCardWithWipOverride( boardId, laneId, position, defaultWipOverrideReason, card, callback ); | ||
}; | ||
let addCardWithWipOverride = function( boardId, laneId, position, wipOverrideReason, card, callback ) { | ||
const addCardWithWipOverride = ( boardId, laneId, position, wipOverrideReason, card, callback ) => { | ||
card.UserWipOverrideComment = wipOverrideReason; | ||
@@ -312,11 +367,11 @@ return clientPost( `board/${boardId}/AddCardWithWipOverride/Lane/${laneId}/Position/${position}`, card, callback ); | ||
let addCards = function( boardId, cards, callback ) { | ||
return this.addCardsWithWipOverride( boardId, cards, defaultWipOverrideReason, callback ); | ||
const addCards = ( boardId, cards, callback ) => { | ||
return addCardsWithWipOverride( boardId, cards, defaultWipOverrideReason, callback ); | ||
}; | ||
let addCardsWithWipOverride = function( boardId, cards, wipOverrideReason, callback ) { | ||
const addCardsWithWipOverride = ( boardId, cards, wipOverrideReason, callback ) => { | ||
return clientPost( `board/${boardId}/AddCards?wipOverrideComment=${encodeURIComponent( wipOverrideReason )}`, cards, callback ); | ||
}; | ||
let moveCard = function( boardId, cardId, toLaneId, position, wipOverrideReason, callback ) { | ||
const moveCard = ( boardId, cardId, toLaneId, position, wipOverrideReason, callback ) => { | ||
return clientPost( `board/${boardId}/movecardwithwipoverride/${cardId}/lane/${toLaneId}/position/${position}`, { | ||
@@ -327,3 +382,3 @@ comment: wipOverrideReason | ||
let moveCardByExternalId = function( boardId, externalCardId, toLaneId, position, wipOverrideReason, callback ) { | ||
const moveCardByExternalId = ( boardId, externalCardId, toLaneId, position, wipOverrideReason, callback ) => { | ||
return clientPost( `board/${boardId}/movecardbyexternalid/${encodeURIComponent( externalCardId )}/lane/${toLaneId}/position/${position}`, { | ||
@@ -334,7 +389,7 @@ comment: wipOverrideReason | ||
let moveCardToBoard = function( cardId, destinationBoardId, callback ) { | ||
const moveCardToBoard = ( cardId, destinationBoardId, callback ) => { | ||
return clientPost( `card/movecardtoanotherboard/${cardId}/${destinationBoardId}`, null, callback ); | ||
}; | ||
let updateCard = function( boardId, card, callback ) { | ||
const updateCard = ( boardId, card, callback ) => { | ||
card.UserWipOverrideComment = defaultWipOverrideReason; | ||
@@ -344,15 +399,15 @@ return clientPost( `board/${boardId}/UpdateCardWithWipOverride`, card, callback ); | ||
let updateCardFields = function( updateFields, callback ) { | ||
const updateCardFields = ( updateFields, callback ) => { | ||
return clientPost( "card/update", updateFields, callback ); | ||
}; | ||
let updateCards = function( boardId, cards, callback ) { | ||
const updateCards = ( boardId, cards, callback ) => { | ||
return clientPost( `board/${boardId}/updatecards?wipoverridecomment=${encodeURIComponent( defaultWipOverrideReason )}`, cards, callback ); | ||
}; | ||
let getComments = function( boardId, cardId, callback ) { | ||
const getComments = ( boardId, cardId, callback ) => { | ||
return clientGet( `card/getcomments/${boardId}/${cardId}`, callback ); | ||
}; | ||
let addComment = function( boardId, cardId, userId, comment, callback ) { | ||
const addComment = ( boardId, cardId, userId, comment, callback ) => { | ||
let data; | ||
@@ -366,3 +421,3 @@ data = { | ||
let addCommentByExternalId = function( boardId, externalCardId, userId, comment, callback ) { | ||
const addCommentByExternalId = ( boardId, externalCardId, userId, comment, callback ) => { | ||
let data; | ||
@@ -376,27 +431,27 @@ data = { | ||
let getCardHistory = function( boardId, cardId, callback ) { | ||
const getCardHistory = ( boardId, cardId, callback ) => { | ||
return clientGet( `card/history/${boardId}/${cardId}`, callback ); | ||
}; | ||
let searchCards = function( boardId, options, callback ) { | ||
const searchCards = ( boardId, options, callback ) => { | ||
return clientPost( `board/${boardId}/searchcards`, options, callback ); | ||
}; | ||
let getNewCards = function( boardId, callback ) { | ||
const getNewCards = ( boardId, callback ) => { | ||
return clientGet( `board/${boardId}/listnewcards`, callback ); | ||
}; | ||
let deleteCard = function( boardId, cardId, callback ) { | ||
const deleteCard = ( boardId, cardId, callback ) => { | ||
return clientPost( `board/${boardId}/deletecard/${cardId}`, null, callback ); | ||
}; | ||
let deleteCards = function( boardId, cardIds, callback ) { | ||
const deleteCards = ( boardId, cardIds, callback ) => { | ||
return clientPost( `board/${boardId}/deletecards`, cardIds, callback ); | ||
}; | ||
let getTaskboard = function( boardId, cardId, callback ) { | ||
const getTaskboard = ( boardId, cardId, callback ) => { | ||
return clientGet( `v1/board/${boardId}/card/${cardId}/taskboard`, callback ); | ||
}; | ||
let addTask = function( boardId, cardId, taskCard, callback ) { | ||
const addTask = ( boardId, cardId, taskCard, callback ) => { | ||
taskCard.UserWipOverrideComment = defaultWipOverrideReason; | ||
@@ -406,3 +461,3 @@ return clientPost( `v1/board/${boardId}/card/${cardId}/tasks/lane/${taskCard.LaneId}/position/${taskCard.Index}`, taskCard, callback ); | ||
let updateTask = function( boardId, cardId, taskCard, callback ) { | ||
const updateTask = ( boardId, cardId, taskCard, callback ) => { | ||
taskCard.UserWipOverrideComment = defaultWipOverrideReason; | ||
@@ -412,35 +467,35 @@ return clientPost( `v1/board/${boardId}/update/card/${cardId}/tasks/${taskCard.Id}`, taskCard, callback ); | ||
let deleteTask = function( boardId, cardId, taskId, callback ) { | ||
const deleteTask = ( boardId, cardId, taskId, callback ) => { | ||
return clientPost( `v1/board/${boardId}/delete/card/${cardId}/tasks/${taskId}`, null, callback ); | ||
}; | ||
let getTaskBoardUpdates = function( boardId, cardId, version, callback ) { | ||
const getTaskBoardUpdates = ( boardId, cardId, version, callback ) => { | ||
return clientGet( `v1/board/${boardId}/card/${cardId}/tasks/boardversion/${version}`, callback ); | ||
}; | ||
let moveTask = function( boardId, cardId, taskId, toLaneId, position, callback ) { | ||
const moveTask = ( boardId, cardId, taskId, toLaneId, position, callback ) => { | ||
return clientPost( `v1/board/${boardId}/move/card/${cardId}/tasks/${taskId}/lane/${toLaneId}/position/${position}`, null, callback ); | ||
}; | ||
let getAttachmentCount = function( boardId, cardId, callback ) { | ||
const getAttachmentCount = ( boardId, cardId, callback ) => { | ||
return clientGet( `card/GetAttachmentsCount/${boardId}/${cardId}`, callback ); | ||
}; | ||
let getAttachments = function( boardId, cardId, callback ) { | ||
const getAttachments = ( boardId, cardId, callback ) => { | ||
return clientGet( `card/GetAttachments/${boardId}/${cardId}`, callback ); | ||
}; | ||
let getAttachment = function( boardId, cardId, attachmentId, callback ) { | ||
const getAttachment = ( boardId, cardId, attachmentId, callback ) => { | ||
return clientGet( `card/GetAttachments/${boardId}/${cardId}/${attachmentId}`, callback ); | ||
}; | ||
let downloadAttachment = function( boardId, attachmentId, filePath, callback ) { | ||
return clientSaveFile( `card/DownloadAttachment/${boardId}/${attachmentId}`, filePath, callback ); | ||
const downloadAttachment = ( boardId, attachmentId, file, callback ) => { | ||
return clientSaveFile( `card/DownloadAttachment/${boardId}/${attachmentId}`, file, callback ); | ||
}; | ||
let deleteAttachment = function( boardId, cardId, attachmentId, callback ) { | ||
const deleteAttachment = ( boardId, cardId, attachmentId, callback ) => { | ||
return clientPost( `card/DeleteAttachment/${boardId}/${cardId}/${attachmentId}`, null, callback ); | ||
}; | ||
let addAttachment = function( boardId, cardId, description, file, callback ) { | ||
const addAttachment = ( boardId, cardId, description, file, callback ) => { | ||
let attachmentData, fileName; | ||
@@ -460,9 +515,2 @@ if ( typeof file === "string" ) { | ||
let defaultWipOverrideReason = "WIP Override performed by external system"; | ||
const url = buildUrl( account ); | ||
let client = request.createClient( url, options ); | ||
if ( password ) { | ||
client.setBasicAuth( email, password ); | ||
} | ||
return { | ||
@@ -512,3 +560,3 @@ addAttachment: addAttachment, | ||
updateTask: updateTask, | ||
_client: client | ||
_options: options | ||
}; | ||
@@ -515,0 +563,0 @@ }; |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
110063
3
27
3118
10
6
+ Addedrequest@^2.67.0
+ Addedajv@6.12.6(transitive)
+ Addedasynckit@0.4.0(transitive)
+ Addedaws-sign2@0.7.0(transitive)
+ Addedcaseless@0.12.0(transitive)
+ Addedfast-deep-equal@3.1.3(transitive)
+ Addedfast-json-stable-stringify@2.1.0(transitive)
+ Addedform-data@2.3.3(transitive)
+ Addedhar-schema@2.0.0(transitive)
+ Addedhar-validator@5.1.5(transitive)
+ Addedhttp-signature@1.2.0(transitive)
+ Addedjson-schema-traverse@0.4.1(transitive)
+ Addedoauth-sign@0.9.0(transitive)
+ Addedperformance-now@2.1.0(transitive)
+ Addedpsl@1.9.0(transitive)
+ Addedpunycode@2.3.1(transitive)
+ Addedqs@6.5.3(transitive)
+ Addedrequest@2.88.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedtough-cookie@2.5.0(transitive)
+ Addedtunnel-agent@0.6.0(transitive)
+ Addeduri-js@4.4.1(transitive)
+ Addeduuid@3.4.0(transitive)
- Removedbabel@~5.0
- Removedrequest-json@~0.5.2
- Removedacorn@5.7.4(transitive)
- Removedalign-text@0.1.4(transitive)
- Removedalter@0.2.0(transitive)
- Removedamdefine@1.0.1(transitive)
- Removedansi-regex@2.1.1(transitive)
- Removedansi-styles@2.2.1(transitive)
- Removedanymatch@1.3.2(transitive)
- Removedarr-diff@2.0.04.0.0(transitive)
- Removedarr-flatten@1.1.0(transitive)
- Removedarr-union@3.1.0(transitive)
- Removedarray-unique@0.2.10.3.2(transitive)
- Removedassert-plus@0.2.0(transitive)
- Removedassign-symbols@1.0.0(transitive)
- Removedast-traverse@0.1.1(transitive)
- Removedast-types@0.8.120.9.6(transitive)
- Removedasync@2.6.4(transitive)
- Removedasync-each@1.0.6(transitive)
- Removedatob@2.1.2(transitive)
- Removedaws-sign2@0.6.0(transitive)
- Removedbabel@5.0.13(transitive)
- Removedbabel-core@5.8.38(transitive)
- Removedbabel-plugin-constant-folding@1.0.1(transitive)
- Removedbabel-plugin-dead-code-elimination@1.0.2(transitive)
- Removedbabel-plugin-eval@1.0.1(transitive)
- Removedbabel-plugin-inline-environment-variables@1.0.1(transitive)
- Removedbabel-plugin-jscript@1.0.4(transitive)
- Removedbabel-plugin-member-expression-literals@1.0.1(transitive)
- Removedbabel-plugin-property-literals@1.0.1(transitive)
- Removedbabel-plugin-proto-to-assign@1.0.4(transitive)
- Removedbabel-plugin-react-constant-elements@1.0.3(transitive)
- Removedbabel-plugin-react-display-name@1.0.3(transitive)
- Removedbabel-plugin-remove-console@1.0.1(transitive)
- Removedbabel-plugin-remove-debugger@1.0.1(transitive)
- Removedbabel-plugin-runtime@1.0.7(transitive)
- Removedbabel-plugin-undeclared-variables-check@1.0.2(transitive)
- Removedbabel-plugin-undefined-to-void@1.1.6(transitive)
- Removedbabylon@5.8.38(transitive)
- Removedbalanced-match@1.0.2(transitive)
- Removedbase@0.11.2(transitive)
- Removedbinary-extensions@1.13.1(transitive)
- Removedbindings@1.5.0(transitive)
- Removedbl@1.1.2(transitive)
- Removedbluebird@2.11.0(transitive)
- Removedboom@2.10.1(transitive)
- Removedbrace-expansion@1.1.11(transitive)
- Removedbraces@1.8.52.3.2(transitive)
- Removedbreakable@1.0.0(transitive)
- Removedcache-base@1.0.1(transitive)
- Removedcamelcase@1.2.1(transitive)
- Removedcaseless@0.11.0(transitive)
- Removedcenter-align@0.1.3(transitive)
- Removedchalk@1.1.3(transitive)
- Removedchokidar@1.7.0(transitive)
- Removedclass-utils@0.3.6(transitive)
- Removedcliui@2.1.0(transitive)
- Removedcollection-visit@1.0.0(transitive)
- Removedcommander@2.20.3(transitive)
- Removedcommoner@0.10.8(transitive)
- Removedcomponent-emitter@1.3.1(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removedconvert-source-map@0.5.11.9.0(transitive)
- Removedcopy-descriptor@0.1.1(transitive)
- Removedcore-js@1.2.7(transitive)
- Removedcore-util-is@1.0.3(transitive)
- Removedcryptiles@2.0.5(transitive)
- Removeddebug@2.6.9(transitive)
- Removeddecamelize@1.2.0(transitive)
- Removeddecode-uri-component@0.2.2(transitive)
- Removeddefine-property@0.2.51.0.02.0.2(transitive)
- Removeddefined@1.0.1(transitive)
- Removeddefs@1.1.1(transitive)
- Removeddepd@1.1.0(transitive)
- Removeddetect-indent@3.0.1(transitive)
- Removeddetective@4.7.1(transitive)
- Removedescape-string-regexp@1.0.5(transitive)
- Removedesprima@2.7.33.1.3(transitive)
- Removedesprima-fb@15001.1001.0-dev-harmony-fb(transitive)
- Removedesutils@2.0.3(transitive)
- Removedexpand-brackets@0.1.52.1.4(transitive)
- Removedexpand-range@1.8.2(transitive)
- Removedextend-shallow@2.0.13.0.2(transitive)
- Removedextglob@0.3.22.0.4(transitive)
- Removedfile-uri-to-path@1.0.0(transitive)
- Removedfilename-regex@2.0.1(transitive)
- Removedfill-range@2.2.44.0.0(transitive)
- Removedfor-in@1.0.2(transitive)
- Removedfor-own@0.1.5(transitive)
- Removedform-data@1.0.1(transitive)
- Removedfragment-cache@0.2.1(transitive)
- Removedfs-readdir-recursive@0.1.2(transitive)
- Removedfsevents@1.2.13(transitive)
- Removedfunction-bind@1.1.2(transitive)
- Removedgenerate-function@2.3.1(transitive)
- Removedgenerate-object-property@1.2.0(transitive)
- Removedget-stdin@4.0.1(transitive)
- Removedget-value@2.0.6(transitive)
- Removedglob@5.0.15(transitive)
- Removedglob-base@0.3.0(transitive)
- Removedglob-parent@2.0.0(transitive)
- Removedglobals@6.4.1(transitive)
- Removedgraceful-fs@4.2.11(transitive)
- Removedhar-validator@2.0.6(transitive)
- Removedhas-ansi@2.0.0(transitive)
- Removedhas-value@0.3.11.0.0(transitive)
- Removedhas-values@0.1.41.0.0(transitive)
- Removedhasown@2.0.2(transitive)
- Removedhawk@3.1.3(transitive)
- Removedhoek@2.16.3(transitive)
- Removedhome-or-tmp@1.0.0(transitive)
- Removedhttp-signature@1.1.1(transitive)
- Removediconv-lite@0.4.24(transitive)
- Removedinflight@1.0.6(transitive)
- Removedinherits@2.0.4(transitive)
- Removedinvert-kv@1.0.0(transitive)
- Removedis-accessor-descriptor@1.0.1(transitive)
- Removedis-binary-path@1.0.1(transitive)
- Removedis-buffer@1.1.6(transitive)
- Removedis-core-module@2.13.1(transitive)
- Removedis-data-descriptor@1.0.1(transitive)
- Removedis-descriptor@0.1.71.0.3(transitive)
- Removedis-dotfile@1.0.3(transitive)
- Removedis-equal-shallow@0.1.3(transitive)
- Removedis-extendable@0.1.11.0.1(transitive)
- Removedis-extglob@1.0.0(transitive)
- Removedis-finite@1.1.0(transitive)
- Removedis-glob@2.0.1(transitive)
- Removedis-integer@1.0.7(transitive)
- Removedis-my-ip-valid@1.0.1(transitive)
- Removedis-my-json-valid@2.20.6(transitive)
- Removedis-number@2.1.03.0.04.0.0(transitive)
- Removedis-plain-object@2.0.4(transitive)
- Removedis-posix-bracket@0.1.1(transitive)
- Removedis-primitive@2.0.0(transitive)
- Removedis-property@1.0.2(transitive)
- Removedis-windows@1.0.2(transitive)
- Removedisarray@1.0.0(transitive)
- Removedisobject@2.1.03.0.1(transitive)
- Removedjs-tokens@1.0.1(transitive)
- Removedjsesc@0.5.0(transitive)
- Removedjson5@0.4.0(transitive)
- Removedjsonpointer@5.0.1(transitive)
- Removedkind-of@3.2.24.0.06.0.3(transitive)
- Removedlazy-cache@1.0.4(transitive)
- Removedlcid@1.0.0(transitive)
- Removedleven@1.0.2(transitive)
- Removedlodash@3.10.14.17.21(transitive)
- Removedlongest@1.0.1(transitive)
- Removedmap-cache@0.2.2(transitive)
- Removedmap-visit@1.0.0(transitive)
- Removedmath-random@1.0.4(transitive)
- Removedmicromatch@2.3.113.1.10(transitive)
- Removedminimatch@2.0.10(transitive)
- Removedminimist@1.2.8(transitive)
- Removedmixin-deep@1.3.2(transitive)
- Removedmkdirp@0.5.6(transitive)
- Removedms@2.0.0(transitive)
- Removednan@2.19.0(transitive)
- Removednanomatch@1.2.13(transitive)
- Removednode-uuid@1.4.8(transitive)
- Removednormalize-path@2.1.1(transitive)
- Removedoauth-sign@0.8.2(transitive)
- Removedobject-assign@4.1.1(transitive)
- Removedobject-copy@0.1.0(transitive)
- Removedobject-visit@1.0.1(transitive)
- Removedobject.omit@2.0.1(transitive)
- Removedobject.pick@1.3.0(transitive)
- Removedonce@1.4.0(transitive)
- Removedos-locale@1.4.0(transitive)
- Removedos-tmpdir@1.0.2(transitive)
- Removedoutput-file-sync@1.1.2(transitive)
- Removedparse-glob@3.0.4(transitive)
- Removedpascalcase@0.1.1(transitive)
- Removedpath-exists@1.0.0(transitive)
- Removedpath-is-absolute@1.0.1(transitive)
- Removedpath-parse@1.0.7(transitive)
- Removedpinkie@2.0.4(transitive)
- Removedpinkie-promise@2.0.1(transitive)
- Removedposix-character-classes@0.1.1(transitive)
- Removedpreserve@0.2.0(transitive)
- Removedprivate@0.1.8(transitive)
- Removedprocess-nextick-args@1.0.72.0.1(transitive)
- Removedq@1.5.1(transitive)
- Removedqs@6.1.2(transitive)
- Removedrandomatic@3.1.1(transitive)
- Removedreadable-stream@2.0.62.3.8(transitive)
- Removedreaddirp@2.2.1(transitive)
- Removedrecast@0.10.330.11.23(transitive)
- Removedregenerate@1.4.2(transitive)
- Removedregenerator@0.8.40(transitive)
- Removedregex-cache@0.4.4(transitive)
- Removedregex-not@1.0.2(transitive)
- Removedregexpu@1.3.0(transitive)
- Removedregjsgen@0.2.0(transitive)
- Removedregjsparser@0.1.5(transitive)
- Removedremove-trailing-separator@1.1.0(transitive)
- Removedrepeat-element@1.1.4(transitive)
- Removedrepeat-string@1.6.1(transitive)
- Removedrepeating@1.1.3(transitive)
- Removedrequest@2.72.0(transitive)
- Removedrequest-json@0.5.6(transitive)
- Removedresolve@1.22.8(transitive)
- Removedresolve-url@0.2.1(transitive)
- Removedret@0.1.15(transitive)
- Removedright-align@0.1.3(transitive)
- Removedsafe-buffer@5.1.2(transitive)
- Removedsafe-regex@1.1.0(transitive)
- Removedset-value@2.0.1(transitive)
- Removedshebang-regex@1.0.0(transitive)
- Removedsimple-fmt@0.1.0(transitive)
- Removedsimple-is@0.2.0(transitive)
- Removedslash@1.0.0(transitive)
- Removedsnapdragon@0.8.2(transitive)
- Removedsnapdragon-node@2.1.1(transitive)
- Removedsnapdragon-util@3.0.1(transitive)
- Removedsntp@1.0.9(transitive)
- Removedsource-map@0.1.320.4.40.5.7(transitive)
- Removedsource-map-resolve@0.5.3(transitive)
- Removedsource-map-support@0.2.10(transitive)
- Removedsource-map-url@0.4.1(transitive)
- Removedsplit-string@3.1.0(transitive)
- Removedstable@0.1.8(transitive)
- Removedstatic-extend@0.1.2(transitive)
- Removedstring_decoder@0.10.311.1.1(transitive)
- Removedstringmap@0.2.2(transitive)
- Removedstringset@0.2.1(transitive)
- Removedstringstream@0.0.6(transitive)
- Removedstrip-ansi@3.0.1(transitive)
- Removedsupports-color@2.0.0(transitive)
- Removedsupports-preserve-symlinks-flag@1.0.0(transitive)
- Removedthrough@2.3.8(transitive)
- Removedto-fast-properties@1.0.3(transitive)
- Removedto-object-path@0.3.0(transitive)
- Removedto-regex@3.0.2(transitive)
- Removedto-regex-range@2.1.1(transitive)
- Removedtough-cookie@2.2.2(transitive)
- Removedtrim-right@1.0.1(transitive)
- Removedtry-resolve@1.0.1(transitive)
- Removedtryor@0.1.2(transitive)
- Removedtunnel-agent@0.4.3(transitive)
- Removedunion-value@1.0.1(transitive)
- Removedunset-value@1.0.0(transitive)
- Removedurix@0.1.0(transitive)
- Removeduse@3.1.1(transitive)
- Removeduser-home@1.1.1(transitive)
- Removedutil-deprecate@1.0.2(transitive)
- Removedwindow-size@0.1.4(transitive)
- Removedwordwrap@0.0.2(transitive)
- Removedwrappy@1.0.2(transitive)
- Removedxtend@4.0.2(transitive)
- Removedy18n@3.2.2(transitive)
- Removedyargs@3.27.0(transitive)