Comparing version 0.0.3 to 0.0.7
@@ -1,94 +0,107 @@ | ||
var https = require('https'); | ||
var deferred = require("node-promise").defer; | ||
var request = require("request"); | ||
'use strict'; | ||
var deferred = require('node-promise').defer; | ||
var request = require('request'); | ||
var qs = require('querystring'); | ||
var Closeio = function(api_key){ | ||
var Closeio = function(apiKey) { | ||
var closeio = this; | ||
this.api_key = api_key; | ||
this.apiKey = apiKey; | ||
this.lead = { | ||
search: function(options){ | ||
search: function(options) { | ||
var parameters = {}; | ||
if(options.limit) { | ||
if('limit' in options) { | ||
parameters._limit = options.limit; | ||
delete options.limit; | ||
} | ||
if(options.skip) { | ||
if('skip' in options) { | ||
parameters._skip = options.skip; | ||
delete options.skip; | ||
} | ||
if(options.fields) { | ||
if('fields' in options) { | ||
parameters._fields = options.fields; | ||
delete options.fields; | ||
} | ||
parameters.query = qs.stringify(options, " ", ":"); | ||
return closeio._get("/lead/", parameters); | ||
var option_keys = Object.keys(options); | ||
if (option_keys.length > 0) { | ||
parameters.query = ''; | ||
option_keys.forEach(function(option) { | ||
var option_wrapper = (!/^".*"$/.test(option) && / +/.test(option)) ? '"' : ''; | ||
parameters.query += option_wrapper + option + option_wrapper + ':' + options[option] + ' '; | ||
}); | ||
} | ||
return closeio._get('/lead/', parameters); | ||
}, | ||
create: function(options){ | ||
return closeio._post("/lead/", options); | ||
create: function(options) { | ||
return closeio._post('/lead/', options); | ||
}, | ||
merge: function(options){ | ||
return closeio._post("/lead/merge/", options); | ||
}, | ||
read: function(id) { | ||
return closeio._get("/lead/" + id + "/"); | ||
return closeio._get('/lead/' + id + '/'); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put("/lead/" + id + "/", options); | ||
return closeio._put('/lead/' + id + '/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete("/lead/" + id + "/"); | ||
return closeio._delete('/lead/' + id + '/'); | ||
} | ||
}; | ||
this.contact = { | ||
search: function(){ | ||
return closeio._get("/contact/"); | ||
search: function() { | ||
return closeio._get('/contact/'); | ||
}, | ||
create: function(options){ | ||
return closeio._post("/contact/", options); | ||
create: function(options) { | ||
return closeio._post('/contact/', options); | ||
}, | ||
read: function(id) { | ||
return closeio._get("/contact/" + id + "/"); | ||
return closeio._get('/contact/' + id + '/'); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put("/contact/" + id + "/", options); | ||
return closeio._put('/contact/' + id + '/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete("/contact/" + id + "/"); | ||
return closeio._delete('/contact/' + id + '/'); | ||
} | ||
}; | ||
this.activity = { | ||
search: function(options){ | ||
return closeio._get("/activity/", options); | ||
search: function(options) { | ||
return closeio._get('/activity/', options); | ||
}, | ||
note: { | ||
search: function(options){ | ||
return closeio._get("/activity/note/", options); | ||
search: function(options) { | ||
return closeio._get('/activity/note/', options); | ||
}, | ||
create: function(options){ | ||
return closeio._post("/activity/note/", options); | ||
create: function(options) { | ||
return closeio._post('/activity/note/', options); | ||
}, | ||
update: function(id, options){ | ||
return closeio._put("/activity/note/" + id, options); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put('/activity/note/' + id + '/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete("/activity/note/" + id + "/"); | ||
return closeio._delete('/activity/note/' + id + '/'); | ||
} | ||
}, | ||
email: { | ||
search: function(options){ | ||
return closeio._get("/activity/email/", options); | ||
search: function(options) { | ||
return closeio._get('/activity/email/', options); | ||
}, | ||
create: function(options){ | ||
return closeio._post("/activity/email/", options); | ||
create: function(options) { | ||
return closeio._post('/activity/email/', options); | ||
}, | ||
update: function(id, options){ | ||
return closeio._put("/activity/email/" + id, options); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put('/activity/email/' + id + '/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete("/activity/email/" + id + "/"); | ||
return closeio._delete('/activity/email/' + id + '/'); | ||
} | ||
}, | ||
call: { | ||
search: function(options){ | ||
return closeio._get("/activity/call/", options); | ||
search: function(options) { | ||
return closeio._get('/activity/call/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete("/activity/call/" + id + "/"); | ||
return closeio._delete('/activity/call/' + id + '/'); | ||
} | ||
@@ -98,41 +111,41 @@ } | ||
this.opportunity = { | ||
search: function(options){ | ||
return closeio._get("/opportunity/", options); | ||
search: function(options) { | ||
return closeio._get('/opportunity/', options); | ||
}, | ||
create: function(options){ | ||
return closeio._post("/opportunity/", options); | ||
create: function(options) { | ||
return closeio._post('/opportunity/', options); | ||
}, | ||
read: function(id) { | ||
return closeio._get("/opportunity/" + id + "/"); | ||
return closeio._get('/opportunity/' + id + '/'); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put("/opportunity/" + id + "/", options); | ||
return closeio._put('/opportunity/' + id + '/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete("/opportunity/" + id + "/"); | ||
return closeio._delete('/opportunity/' + id + '/'); | ||
} | ||
}; | ||
this.task = { | ||
search: function(options){ | ||
return closeio._get("/task/", options); | ||
search: function(options) { | ||
return closeio._get('/task/', options); | ||
}, | ||
create: function(options){ | ||
return closeio._post("/task/", options); | ||
create: function(options) { | ||
return closeio._post('/task/', options); | ||
}, | ||
read: function(id) { | ||
return closeio._get("/task/" + id + "/"); | ||
return closeio._get('/task/' + id + '/'); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put("/task/" + id + "/", options); | ||
return closeio._put('/task/' + id + '/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete("/task/" + id + "/"); | ||
return closeio._delete('/task/' + id + '/'); | ||
} | ||
}; | ||
this.user = { | ||
me: function(){ | ||
return closeio._get("/me/"); | ||
me: function() { | ||
return closeio._get('/me/'); | ||
}, | ||
read: function(id) { | ||
return closeio._get("/user/" + id + "/"); | ||
return closeio._get('/user/' + id + '/'); | ||
} | ||
@@ -142,51 +155,88 @@ }; | ||
read: function(id) { | ||
return closeio._get("/organization/" + id + "/"); | ||
return closeio._get('/organization/' + id + '/'); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put("/organization/" + id + "/", options); | ||
return closeio._put('/organization/' + id + '/', options); | ||
} | ||
}; | ||
this.report = { | ||
read: function(organization_id, options) { | ||
return closeio._get("/report/" + organization_id + "/", options); | ||
read: function(id, options) { | ||
return closeio._get('/report/' + id + '/', options); | ||
} | ||
}; | ||
this.email_template = { | ||
search: function(){ | ||
return closeio._get("/email_template/"); | ||
search: function() { | ||
return closeio._get('/email_template/'); | ||
}, | ||
create: function(options){ | ||
return closeio._post("/email_template/", options); | ||
create: function(options) { | ||
return closeio._post('/email_template/', options); | ||
}, | ||
read: function(id) { | ||
return closeio._get("/email_template/" + id + "/"); | ||
return closeio._get('/email_template/' + id + '/'); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put("/email_template/" + id + "/", options); | ||
return closeio._put('/email_template/' + id + '/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete("/email_template/" + id + "/"); | ||
return closeio._delete('/email_template/' + id + '/'); | ||
} | ||
}; | ||
this.saved_search = { | ||
search: function(){ | ||
return closeio._get("/saved_search/"); | ||
search: function() { | ||
return closeio._get('/saved_search/'); | ||
}, | ||
create: function(options){ | ||
return closeio._post("/saved_search/", options); | ||
create: function(options) { | ||
return closeio._post('/saved_search/', options); | ||
}, | ||
read: function(id) { | ||
return closeio._get("/saved_search/" + id + "/"); | ||
return closeio._get('/saved_search/' + id + '/'); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put("/saved_search/" + id + "/", options); | ||
return closeio._put('/saved_search/' + id + '/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete("/saved_search/" + id + "/"); | ||
return closeio._delete('/saved_search/' + id + '/'); | ||
} | ||
}; | ||
this.status = { | ||
lead: { | ||
list: function() { | ||
return closeio._get('/status/lead/'); | ||
}, | ||
create: function(options) { | ||
return closeio._post('/status/lead/', options); | ||
}, | ||
read: function(id) { | ||
return closeio._get('/status/lead/' + id + '/'); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put('/status/lead/' + id + '/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete('/status/lead/' + id + '/'); | ||
} | ||
}, | ||
opportunity: { | ||
list: function() { | ||
return closeio._get('/status/opportunity/'); | ||
}, | ||
create: function(options) { | ||
return closeio._post('/status/opportunity/', options); | ||
}, | ||
read: function(id) { | ||
return closeio._get('/status/opportunity/' + id + '/'); | ||
}, | ||
update: function(id, options) { | ||
return closeio._put('/status/opportunity/' + id + '/', options); | ||
}, | ||
delete: function(id) { | ||
return closeio._delete('/status/opportunity/' + id + '/'); | ||
} | ||
} | ||
}; | ||
}; | ||
Closeio.prototype._request = function(options) { | ||
options.auth = { | ||
user: this.api_key, | ||
user: this.apiKey, | ||
pass: '' | ||
@@ -197,27 +247,37 @@ }; | ||
request(options, function(error, response, body) { | ||
if (!error && response.statusCode == 200) { | ||
if (!error && response.statusCode === 200) { | ||
d.resolve(JSON.parse(body)); | ||
return; | ||
} | ||
if(error){ | ||
if (error) { | ||
d.reject(error); | ||
return; | ||
} | ||
d.reject(JSON.parse(body)); | ||
var rejection; | ||
try { | ||
rejection = JSON.parse(body); | ||
}catch(e){ | ||
rejection = response.statusCode == 200 ? body : response.statusCode; | ||
} | ||
d.reject(rejection); | ||
}); | ||
return d.promise; | ||
}; | ||
Closeio.prototype._post = function(path, options) { | ||
var options = { | ||
uri: "https://app.close.io/api/v1" + path, | ||
options = { | ||
uri: 'https://app.close.io/api/v1' + path, | ||
body: JSON.stringify(options), | ||
headers: {"Content-type": "application/json"}, | ||
method: "POST" | ||
headers: { | ||
'Content-type': 'application/json' | ||
}, | ||
method: 'POST' | ||
}; | ||
return this._request(options); | ||
}; | ||
Closeio.prototype._get = function(path, parameters) { | ||
var options = { | ||
uri: "https://app.close.io/api/v1" + path, | ||
method: "GET", | ||
uri: 'https://app.close.io/api/v1' + path, | ||
method: 'GET', | ||
qs: parameters | ||
@@ -227,18 +287,23 @@ }; | ||
}; | ||
Closeio.prototype._put = function(path, options) { | ||
var options = { | ||
uri: "https://app.close.io/api/v1" + path, | ||
options = { | ||
uri: 'https://app.close.io/api/v1' + path, | ||
body: JSON.stringify(options), | ||
headers: {"Content-type": "application/json"}, | ||
method: "PUT" | ||
headers: { | ||
'Content-type': 'application/json' | ||
}, | ||
method: 'PUT' | ||
}; | ||
return this._request(options); | ||
}; | ||
Closeio.prototype._delete = function(path) { | ||
var options = { | ||
uri: "https://app.close.io/api/v1" + path, | ||
method: "DELETE" | ||
uri: 'https://app.close.io/api/v1' + path, | ||
method: 'DELETE' | ||
}; | ||
return this._request(options); | ||
}; | ||
module.exports = exports = Closeio; | ||
module.exports = exports = Closeio; |
{ | ||
"name": "close.io", | ||
"preferGlobal": "false", | ||
"version": "0.0.3", | ||
"version": "0.0.7", | ||
"author": "John Wehr <johnwehr@gmail.com>", | ||
"description": "", | ||
"contributors": [ | ||
"contributors": [ | ||
{ | ||
"name": "John Wehr", | ||
"email": "johnwehr@gmail.com" | ||
} | ||
}, | ||
{ | ||
"name": "Paul Cothenet", | ||
"email": "paul@madkudu.com" | ||
} | ||
], | ||
@@ -16,9 +20,8 @@ "main": "./lib/close.io.js", | ||
"type": "git", | ||
"url": "https://github.com/wehriam/Close.io.git" | ||
"url": "git@github.com:closeio/closeio-node.git" | ||
}, | ||
"keywords": [], | ||
"dependencies" : { | ||
"node-promise": "*", | ||
"request": "2.21.0" | ||
}, | ||
"keywords": [ | ||
"close.io", | ||
"closeio" | ||
], | ||
"noAnalyze": true, | ||
@@ -30,4 +33,11 @@ "license": "MIT", | ||
"scripts": { | ||
"test": "mocha" | ||
"test": "./node_modules/mocha/bin/mocha --recursive test/" | ||
}, | ||
"dependencies": { | ||
"node-promise": "0.5.8", | ||
"request": "2.69.0" | ||
}, | ||
"devDependencies": { | ||
"mocha": "^3.3.0" | ||
} | ||
} |
@@ -8,12 +8,14 @@ Close.io | ||
```npm install close.io``` | ||
```npm install --save close.io``` | ||
**Usage** | ||
The module uses [kriszyp/node-promise](https://github.com/kriszyp/node-promise) promises. | ||
``` | ||
npm install | ||
mocha test | ||
``` | ||
Get an API key from your settings page: https://app.close.io/settings/ | ||
``` | ||
```javascript | ||
var Closeio = require('close.io'); | ||
@@ -23,3 +25,4 @@ | ||
closeio.lead.create({name: "Spider Man"}).then(function(lead){ | ||
closeio.lead.create({name: "Spider Man"}) | ||
.then(function(lead){ | ||
return closeio.lead.read(lead.id); | ||
@@ -30,3 +33,3 @@ }).then(function(lead){ | ||
return closeio.lead.delete(lead.id); | ||
}).then(function(){ | ||
}).then(function(){ | ||
return closeio.lead.search({name:"Bruce Wayne"}); | ||
@@ -37,3 +40,2 @@ }).then(function(search_results){}, function(err){ | ||
}); | ||
``` |
@@ -1,30 +0,135 @@ | ||
var Closeio = require('../lib/close.io.js'); | ||
var config = require('../config.json'); | ||
'use strict'; | ||
var Closeio = require('../lib/close.io.js'), | ||
config = require('../config.json'), | ||
assert = require('assert'); | ||
describe('Close.io API', function() { | ||
it('should create, read, updated, delete and search for leads.', function(done) { | ||
this.timeout(10000); | ||
var closeio = new Closeio(config.api_key); | ||
closeio.lead.create({name: "John Wehr"}).then(function(data){ | ||
function randomString() { | ||
return Math.floor(Math.random() * 10000).toString(); | ||
} | ||
describe('Close.io API', function () { | ||
this.timeout(5000); | ||
var closeio | ||
beforeEach(() => { | ||
closeio = new Closeio(config.apiKey); | ||
}) | ||
it('should create, read, updated, delete and search for leads.', function () { | ||
return closeio.lead.create({ | ||
name: 'John Wehr' | ||
}).then(function (data) { | ||
return closeio.lead.read(data.id); | ||
}).then(function(data){ | ||
return closeio.lead.update(data.id, {name: "John Wehr 2"}); | ||
}).then(function(data){ | ||
}).then(function (data) { | ||
return closeio.lead.update(data.id, { | ||
name: 'John Wehr 2' | ||
}); | ||
}).then(function (data) { | ||
assert(data.name === 'John Wehr 2'); | ||
return closeio.lead.delete(data.id); | ||
}).then(function(data){ | ||
return closeio.lead.search({name:"Wayne"}); | ||
}).then(function(data){ | ||
done(); | ||
}, function(){ | ||
throw Error("Could not updated leads."); | ||
}).then(function () { | ||
return closeio.lead.search({ | ||
name: 'Wayne' | ||
}); | ||
}); | ||
}); | ||
it('should throw a verbose error', function(done) { | ||
var closeio = new Closeio(config.api_key); | ||
closeio.lead.create({contacts:[{emails:[{email:"test@example.com"}]}]}).then(function(data){ | ||
}).then(function(data){ | ||
}, function(err){ | ||
it('should throw an error if attempting to create a lead without email', function (done) { | ||
closeio.lead.create({ | ||
contacts: [{ | ||
emails: [{ | ||
email: '' | ||
}] | ||
}] | ||
}).then(function () { | ||
done(new Error('This should have failed')) | ||
}, function (err) { | ||
done(); | ||
}); | ||
}); | ||
}); | ||
it('should create, read, update, delete lead statuses', function () { | ||
var randomVal = randomString(); // for confirming update | ||
return closeio.status.lead.create({ | ||
label: randomString() | ||
}).then(function (data) { | ||
return closeio.status.lead.read(data.id); | ||
}).then(function (data) { | ||
return closeio.status.lead.update(data.id, { | ||
label: randomVal | ||
}); | ||
}).then(function (data) { | ||
assert(data.label === randomVal); | ||
return closeio.status.lead.delete(data.id); | ||
}); | ||
}); | ||
it('should create, read, update, delete opportunity statuses', function () { | ||
var randomVal = randomString(); // for confirming update | ||
return closeio.status.opportunity.create({ | ||
label: randomString() | ||
}).then(function (data) { | ||
return closeio.status.opportunity.read(data.id); | ||
}).then(function (data) { | ||
return closeio.status.opportunity.update(data.id, { | ||
label: randomVal | ||
}); | ||
}).then(function (data) { | ||
assert(data.label === randomVal); | ||
return closeio.status.opportunity.delete(data.id); | ||
}); | ||
}); | ||
describe('search', function () { | ||
var lead_id; | ||
before(function () { | ||
return closeio.lead.create({ | ||
name: 'John Wehr', | ||
custom: { | ||
foo: 'bar', | ||
'Lead initials': 'JW' | ||
} | ||
}).then(function (data) { | ||
assert(data.id); | ||
lead_id = data.id; | ||
}) | ||
}) | ||
it('should return all leads if no option is passed', function () { | ||
var lead_id; | ||
return closeio.lead.search({}) | ||
.then(function (data) { | ||
// console.log(data) | ||
assert(data.data.length > 0); | ||
}); | ||
}); | ||
it('should search a lead by name', function () { | ||
var lead_id; | ||
return closeio.lead.search({ name: 'John Wehr'}) | ||
.then(function (data) { | ||
// console.log(data) | ||
assert(data.data.length > 0); | ||
}); | ||
}); | ||
it('should search for leads with custom field containing spaces.', function () { | ||
return closeio.lead.search({ 'custom.Lead initials': 'JW' }) | ||
.then(function (data) { | ||
// console.log(data) | ||
assert(data.data.length > 0); | ||
}); | ||
}); | ||
after(function () { | ||
return closeio.lead.delete(lead_id) | ||
}) | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Wildcard dependency
QualityPackage has a dependency with a floating version range. This can cause issues if the dependency publishes a new major version.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
14842
7
412
0
38
1
2
+ Addedansi-regex@2.1.1(transitive)
+ Addedansi-styles@2.2.1(transitive)
+ Addedasn1@0.2.6(transitive)
+ Addedassert-plus@0.2.01.0.0(transitive)
+ Addedasync@2.6.4(transitive)
+ Addedaws-sign2@0.6.0(transitive)
+ Addedaws4@1.13.2(transitive)
+ Addedbcrypt-pbkdf@1.0.2(transitive)
+ Addedbl@1.0.3(transitive)
+ Addedboom@2.10.1(transitive)
+ Addedcaseless@0.11.0(transitive)
+ Addedchalk@1.1.3(transitive)
+ Addedcombined-stream@1.0.8(transitive)
+ Addedcommander@2.20.3(transitive)
+ Addedcore-util-is@1.0.21.0.3(transitive)
+ Addedcryptiles@2.0.5(transitive)
+ Addeddashdash@1.14.1(transitive)
+ Addeddelayed-stream@1.0.0(transitive)
+ Addedecc-jsbn@0.1.2(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedextend@3.0.2(transitive)
+ Addedextsprintf@1.3.0(transitive)
+ Addedforever-agent@0.6.1(transitive)
+ Addedform-data@1.0.1(transitive)
+ Addedgenerate-function@2.3.1(transitive)
+ Addedgenerate-object-property@1.2.0(transitive)
+ Addedgetpass@0.1.7(transitive)
+ Addedhar-validator@2.0.6(transitive)
+ Addedhas-ansi@2.0.0(transitive)
+ Addedhawk@3.1.3(transitive)
+ Addedhoek@2.16.3(transitive)
+ Addedhttp-signature@1.1.1(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedis-my-ip-valid@1.0.1(transitive)
+ Addedis-my-json-valid@2.20.6(transitive)
+ Addedis-property@1.0.2(transitive)
+ Addedis-typedarray@1.0.0(transitive)
+ Addedisarray@1.0.0(transitive)
+ Addedisstream@0.1.2(transitive)
+ Addedjsbn@0.1.1(transitive)
+ Addedjson-schema@0.4.0(transitive)
+ Addedjson-stringify-safe@5.0.1(transitive)
+ Addedjsonpointer@5.0.1(transitive)
+ Addedjsprim@1.4.2(transitive)
+ Addedlodash@4.17.21(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addednode-promise@0.5.8(transitive)
+ Addedoauth-sign@0.8.2(transitive)
+ Addedpinkie@2.0.4(transitive)
+ Addedpinkie-promise@2.0.1(transitive)
+ Addedprocess-nextick-args@1.0.7(transitive)
+ Addedqs@6.0.4(transitive)
+ Addedreadable-stream@2.0.6(transitive)
+ Addedrequest@2.69.0(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
+ Addedsntp@1.0.9(transitive)
+ Addedsshpk@1.18.0(transitive)
+ Addedstring_decoder@0.10.31(transitive)
+ Addedstringstream@0.0.6(transitive)
+ Addedstrip-ansi@3.0.1(transitive)
+ Addedsupports-color@2.0.0(transitive)
+ Addedtough-cookie@2.2.2(transitive)
+ Addedtunnel-agent@0.4.3(transitive)
+ Addedtweetnacl@0.14.5(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedverror@1.10.0(transitive)
+ Addedxtend@4.0.2(transitive)
- Removedasn1@0.1.11(transitive)
- Removedassert-plus@0.1.2(transitive)
- Removedasync@0.2.10(transitive)
- Removedaws-sign@0.3.0(transitive)
- Removedboom@0.4.2(transitive)
- Removedcombined-stream@0.0.7(transitive)
- Removedcookie-jar@0.3.0(transitive)
- Removedcryptiles@0.2.2(transitive)
- Removedctype@0.5.2(transitive)
- Removeddelayed-stream@0.0.5(transitive)
- Removedforever-agent@0.5.2(transitive)
- Removedform-data@0.0.8(transitive)
- Removedhawk@0.13.1(transitive)
- Removedhoek@0.8.50.9.1(transitive)
- Removedhttp-signature@0.9.11(transitive)
- Removedjson-stringify-safe@4.0.0(transitive)
- Removedmime@1.2.11(transitive)
- Removednode-promise@0.5.14(transitive)
- Removedoauth-sign@0.3.0(transitive)
- Removedqs@0.6.6(transitive)
- Removedrequest@2.21.0(transitive)
- Removedsntp@0.2.4(transitive)
- Removedtunnel-agent@0.3.0(transitive)
Updatednode-promise@0.5.8
Updatedrequest@2.69.0