Socket
Socket
Sign inDemoInstall

heroku-cli-util

Package Overview
Dependencies
Maintainers
2
Versions
155
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

heroku-cli-util - npm Package Compare versions

Comparing version 5.4.6 to 5.4.7

node_modules/heroku-client/node_modules/concat-stream/index.js

32

lib/errors.js

@@ -67,2 +67,3 @@ 'use strict';

function errorHandler(options) {
options = options || {};
function exit () {

@@ -75,19 +76,22 @@ if (options.exit !== false) {

if (cli.raiseErrors) { throw err; }
options = options || {};
if (err !== '') { error(err); }
if (options.logPath) {
if (err.stack) {
log(err.stack, options.logPath);
if (options.debug) {
console.error(err.stack);
try {
if (err !== '') { error(err); }
if (options.logPath) {
if (err.stack) {
log(err.stack, options.logPath);
if (options.debug) {
console.error(err.stack);
}
}
if (err.body) {
log(JSON.stringify(err.body), options.logPath);
}
}
if (err.body) {
log(JSON.stringify(err.body), options.logPath);
}
//error(`See ${options.logPath} for more info.`);
if (options.dev) exit();
else if (options.rollbar) options.rollbar.error(err).then(exit, exit);
else exit();
} catch (err) {
console.error(err.stack);
process.exit(-1);
}
if (options.dev) exit();
else if (options.rollbar) options.rollbar.error(err).then(exit, exit);
else exit();
};

@@ -94,0 +98,0 @@ }

@@ -30,3 +30,3 @@ 'use strict';

let input = '';
process.stdin.on('data', function (c) {
let fn = function (c) {
switch(c) {

@@ -39,2 +39,3 @@ case "\u0004": // Ctrl-d

stop();
process.stdin.removeListener('data', fn);
fulfill(input);

@@ -46,2 +47,3 @@ return;

stop();
process.stdin.removeListener('data', fn);
return;

@@ -55,3 +57,4 @@ default:

}
});
};
process.stdin.on('data', fn);
});

@@ -58,0 +61,0 @@ }

@@ -39,3 +39,3 @@ 'use strict';

function build(_styles) {
var builder = function builder() {
var builder = function () {
return applyStyle.apply(builder, arguments);

@@ -48,3 +48,3 @@ };

// no way to create a function with a different prototype.
/*eslint no-proto: 0 */
/* eslint-disable no-proto */
builder.__proto__ = proto;

@@ -51,0 +51,0 @@

{
"name": "chalk",
"version": "1.1.0",
"version": "1.1.1",
"description": "Terminal string styling done right. Much color.",

@@ -28,3 +28,3 @@ "license": "MIT",

"scripts": {
"test": "mocha",
"test": "xo && mocha",
"bench": "matcha benchmark.js",

@@ -74,25 +74,32 @@ "coverage": "nyc npm test && nyc report",

"resolve-from": "^1.0.0",
"semver": "^4.3.3"
"semver": "^4.3.3",
"xo": "*"
},
"gitHead": "e9bb6e6000b1c5d4508afabfdc85dd70f582f515",
"xo": {
"envs": [
"node",
"mocha"
]
},
"gitHead": "8b554e254e89c85c1fd04dcc444beeb15824e1a5",
"bugs": {
"url": "https://github.com/chalk/chalk/issues"
},
"homepage": "https://github.com/chalk/chalk",
"_id": "chalk@1.1.0",
"_shasum": "09b453cec497a75520e4a60ae48214a8700e0921",
"homepage": "https://github.com/chalk/chalk#readme",
"_id": "chalk@1.1.1",
"_shasum": "509afb67066e7499f7eb3535c77445772ae2d019",
"_from": "chalk@>=1.1.0 <2.0.0",
"_npmVersion": "2.10.1",
"_nodeVersion": "0.12.4",
"_npmVersion": "2.13.5",
"_nodeVersion": "0.12.7",
"_npmUser": {
"name": "jbnicolai",
"email": "jappelman@xebia.com"
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
"dist": {
"shasum": "09b453cec497a75520e4a60ae48214a8700e0921",
"tarball": "http://registry.npmjs.org/chalk/-/chalk-1.1.0.tgz"
"shasum": "509afb67066e7499f7eb3535c77445772ae2d019",
"tarball": "http://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.0.tgz",
"_resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz",
"readme": "ERROR: No README data found!"
}

@@ -33,3 +33,3 @@ <h1 align="center">

- Actively maintained
- [Used by ~4000 modules](https://www.npmjs.com/browse/depended/chalk) as of May 24, 2015
- [Used by ~4500 modules](https://www.npmjs.com/browse/depended/chalk) as of July 15, 2015

@@ -193,3 +193,3 @@

Chalk does not support support anything other than the base eight colors, which guarantees it will work on all terminals and systems. Some terminals, specifically `xterm` compliant ones, will support the full range of 8-bit colors. For this the lower level [ansi-256-colors](https://github.com/jbnicolai/ansi-256-colors) package can be used.
Chalk does not support anything other than the base eight colors, which guarantees it will work on all terminals and systems. Some terminals, specifically `xterm` compliant ones, will support the full range of 8-bit colors. For this the lower level [ansi-256-colors](https://github.com/jbnicolai/ansi-256-colors) package can be used.

@@ -210,2 +210,3 @@

- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
- [wrap-ansi](https://github.com/chalk/wrap-ansi) - Wordwrap a string with ANSI escape codes

@@ -212,0 +213,0 @@

'use strict';
var Request = require('./request');
var extend = require('util')._extend;

@@ -26,4 +25,11 @@ module.exports = Heroku;

this.options = this.options || {};
if (options.headers) {
options.headers = extend(this.options.headers || {}, options.headers);
// merge headers
if (options.headers && this.options.headers) {
for (key in this.options.headers) {
if (this.options.headers.hasOwnProperty(key)) {
if (!options.headers.hasOwnProperty(key)) {
options[key] = this.options.headers[key];
}
}
}
}

@@ -30,0 +36,0 @@ for (key in this.options) {

@@ -81,2 +81,11 @@ 'use strict';

// remove null|undefined headers
for (var k in headers) {
if (headers.hasOwnProperty(k)) {
if (headers[k] === null || headers[k] === undefined) {
delete headers[k];
}
}
}
var requestOptions = {

@@ -181,3 +190,4 @@ agent: this.agent,

if (this.options.body) {
var body = JSON.stringify(this.options.body);
var body = this.options.body;
if (this.options.json !== false) { body = JSON.stringify(body); }
if (this.debug) {

@@ -184,0 +194,0 @@ console.error('--> ' + body);

@@ -112,7 +112,7 @@ {

"shasum": "cbd160da9f75b14c3cc63578d4f396784bf3014e",
"tarball": "http://heroku-npm.herokuapp.com/inflection/-/inflection-1.3.8.tgz"
"tarball": "http://d1wpeoceq2hoqd.cloudfront.net/inflection/-/inflection-1.3.8.tgz"
},
"directories": {},
"_resolved": "https://heroku-npm.herokuapp.com/inflection/-/inflection-1.3.8.tgz",
"_resolved": "https://d1wpeoceq2hoqd.cloudfront.net/inflection/-/inflection-1.3.8.tgz",
"readme": "ERROR: No README data found!"
}

@@ -36,3 +36,3 @@ {

"shasum": "18e8a36859fc9d2f1a53b48dee138543c020de5e",
"tarball": "http://heroku-npm.herokuapp.com/path-proxy/-/path-proxy-1.0.0.tgz"
"tarball": "http://d1wpeoceq2hoqd.cloudfront.net/path-proxy/-/path-proxy-1.0.0.tgz"
},

@@ -53,3 +53,3 @@ "_from": "path-proxy@>=1.0.0 <2.0.0",

"_shasum": "18e8a36859fc9d2f1a53b48dee138543c020de5e",
"_resolved": "https://heroku-npm.herokuapp.com/path-proxy/-/path-proxy-1.0.0.tgz"
"_resolved": "https://d1wpeoceq2hoqd.cloudfront.net/path-proxy/-/path-proxy-1.0.0.tgz"
}

@@ -116,6 +116,6 @@ {

"shasum": "55705bcd93c5f3673530c2c2cbc0c2b3addc286e",
"tarball": "http://localhost:3000/q/-/q-1.4.1.tgz"
"tarball": "http://d1wpeoceq2hoqd.cloudfront.net/q/-/q-1.4.1.tgz"
},
"_resolved": "http://localhost:3000/q/-/q-1.4.1.tgz",
"_resolved": "https://d1wpeoceq2hoqd.cloudfront.net/q/-/q-1.4.1.tgz",
"readme": "ERROR: No README data found!"
}

@@ -84,3 +84,3 @@ 'use strict'

// We are over limit so we'll add it to the queue.
self.requests.push({host: options.host, port: options.port, request: req})
self.requests.push({host: host, port: port, request: req})
return

@@ -90,20 +90,14 @@ }

// If we are under maxSockets create a new one.
self.createConnection({host: options.host, port: options.port, request: req})
}
TunnelingAgent.prototype.createConnection = function createConnection(pending) {
var self = this
self.createSocket(pending, function(socket) {
self.createSocket({host: options.host, port: options.port, request: req}, function(socket) {
socket.on('free', onFree)
socket.on('close', onCloseOrRemove)
socket.on('agentRemove', onCloseOrRemove)
pending.request.onSocket(socket)
req.onSocket(socket)
function onFree() {
self.emit('free', socket, pending.host, pending.port)
self.emit('free', socket, options.host, options.port)
}
function onCloseOrRemove(err) {
self.removeSocket(socket)
self.removeSocket()
socket.removeListener('free', onFree)

@@ -193,3 +187,5 @@ socket.removeListener('close', onCloseOrRemove)

// needs to be created to take over in the pool for the one that closed.
this.createConnection(pending)
this.createSocket(pending, function(socket) {
pending.request.onSocket(socket)
})
}

@@ -207,3 +203,2 @@ }

))
self.sockets[self.sockets.indexOf(socket)] = secureSocket
cb(secureSocket)

@@ -210,0 +205,0 @@ })

@@ -9,3 +9,3 @@ {

"description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.",
"version": "0.4.1",
"version": "0.4.0",
"repository": {

@@ -21,21 +21,17 @@ "url": "git+https://github.com/mikeal/tunnel-agent.git"

},
"gitHead": "912a7a6d00e10ec76baf9c9369de280fa5badef3",
"bugs": {
"url": "https://github.com/mikeal/tunnel-agent/issues"
},
"homepage": "https://github.com/mikeal/tunnel-agent#readme",
"_id": "tunnel-agent@0.4.1",
"scripts": {},
"_shasum": "bbeecff4d679ce753db9462761a88dfcec3c5ab3",
"_from": "tunnel-agent@>=0.4.0 <0.5.0",
"_npmVersion": "2.11.2",
"_nodeVersion": "0.12.5",
"homepage": "https://github.com/mikeal/tunnel-agent",
"_id": "tunnel-agent@0.4.0",
"dist": {
"shasum": "b1184e312ffbcf70b3b4c78e8c219de7ebb1c550",
"tarball": "http://heroku-npm.herokuapp.com/tunnel-agent/-/tunnel-agent-0.4.0.tgz"
},
"_from": "tunnel-agent@*",
"_npmVersion": "1.3.21",
"_npmUser": {
"name": "simov",
"email": "simeonvelichkov@gmail.com"
"name": "mikeal",
"email": "mikeal.rogers@gmail.com"
},
"dist": {
"shasum": "bbeecff4d679ce753db9462761a88dfcec3c5ab3",
"tarball": "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz"
},
"maintainers": [

@@ -45,19 +41,8 @@ {

"email": "mikeal.rogers@gmail.com"
},
{
"name": "nylen",
"email": "jnylen@gmail.com"
},
{
"name": "fredkschott",
"email": "fkschott@gmail.com"
},
{
"name": "simov",
"email": "simeonvelichkov@gmail.com"
}
],
"directories": {},
"_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz",
"_shasum": "b1184e312ffbcf70b3b4c78e8c219de7ebb1c550",
"_resolved": "https://heroku-npm.herokuapp.com/tunnel-agent/-/tunnel-agent-0.4.0.tgz",
"readme": "ERROR: No README data found!"
}
{
"name": "heroku-client",
"description": "A wrapper for the Heroku v3 API",
"version": "2.1.0",
"author": {
"name": "Jonathan Clem"
},
"version": "2.2.0",
"author": "Jonathan Clem",
"bugs": {

@@ -12,14 +10,6 @@ "url": "https://github.com/heroku/node-heroku-client/issues"

"contributors": [
{
"name": "Jonathan Clem"
},
{
"name": "Ray McDermott"
},
{
"name": "Bob Zoller"
},
{
"name": "Sehrope Sarkuni"
}
"Jonathan Clem",
"Ray McDermott",
"Bob Zoller",
"Sehrope Sarkuni"
],

@@ -64,14 +54,7 @@ "dependencies": {

"type": "git",
"url": "git+https://github.com/heroku/node-heroku-client.git"
"url": "https://github.com/heroku/node-heroku-client"
},
"scripts": {
"test": "jasmine-node spec && jshint lib spec"
},
"readme": "# heroku-client [![Build Status](https://travis-ci.org/heroku/node-heroku-client.png?branch=master)](https://travis-ci.org/heroku/node-heroku-client)\n\nA wrapper around the [v3 Heroku API][platform-api-reference].\n\n- [Install](#install)\n- [Documentation](#documentation)\n- [Usage](#usage)\n - [Generic Requests](#generic-requests)\n - [Promises](#promises)\n - [Generators](#generators)\n - [HTTP Proxies](#http-proxies)\n- [Caching](#caching)\n - [Custom caching](#custom-caching)\n- [Contributing](#contributing)\n - [Updating resources](#updating-resources)\n - [Generating documentation](#generating-documentation)\n - [Running tests](#running-tests)\n\n## Install\n\n```sh\n$ npm install heroku-client --save\n```\n\n## Documentation\n\nDocs are auto-generated and live in the\n[docs directory](https://github.com/heroku/node-heroku-client/tree/master/docs).\n\n## Usage\n\n`heroku-client` works by providing functions that return proxy objects for\ninteracting with different resources through the Heroku API.\n\nTo begin, require the Heroku module and create a client, passing in an API\ntoken:\n\n```javascript\nvar Heroku = require('heroku-client'),\n heroku = new Heroku({ token: process.env.HEROKU_API_TOKEN });\n```\n\nThe simplest example is listing a user's apps. First, we call `heroku.apps()`,\nwhich returns a proxy object to the /apps endpoint, then we call `list()` to\nactually perform the API call:\n\n```javascript\nheroku.apps().list(function (err, apps) {\n // `apps` is a parsed JSON response from the API\n});\n```\n\nThe advantage of using proxy objects is that they are reusable. Let's get the\ninfo for the user's app \"my-app\", get the dynos for the app, and\nremove a collaborator:\n\n```javascript\nvar app = heroku.apps('my-app');\n\napp.info(function (err, app) {\n // Details about the `app`\n});\n\napp.dynos().list(function (err, dynos) {\n // List of the app's `dynos`\n});\n\napp.collaborators('user@example.com').delete(function (err, collaborator) {\n // The `collaborator` has been removed unless `err`\n});\n```\n\nRequests that require a body are easy, as well. Let's add a collaborator to\nthe user's app \"another-app\":\n\n```javascript\nvar app = heroku.apps('another-app'),\n user = { email: 'new-user@example.com' };\n\napp.collaborators().create({ user: user }, function (err, collaborator) {\n // `collaborator` is the newly added collaborator unless `err`\n});\n```\n\n### Generic Requests\n\nheroku-client has `get`, `post`, `patch`, and `delete` functions which can make\nrequests with the specified HTTP method to any endpoint:\n\n```javascript\nheroku.get('/apps', function (err, apps) {\n});\n\n// Request body is optional on both `post` and `patch`\nheroku.post('/apps', function (err, app) {\n});\n\nheroku.post('/apps', { name: 'my-new-app' }, function (err, app) {\n});\n\nheroku.patch('/apps/my-app', { name: 'my-renamed-app' }, function (err, app) {\n});\n\nheroku.delete('/apps/my-old-app', function (err, app) {\n});\n```\n\nThere is also an even more generic `request` function that can accept many more\noptions:\n\n```javascript\nheroku.request({\n method: 'GET',\n path: '/apps',\n headers: {\n 'Foo': 'Bar'\n },\n parseJSON: false\n}, function (err, responseBody) {\n});\n```\n\n### Promises\n\nheroku-client works with Node-style callbacks, but also implements promises with\nthe [Q][q] library.\n\n```javascript\nvar q = require('q');\n\n// Fetches dynos for all of my apps.\nheroku.apps().list().then(function (apps) {\n\n return q.all(apps.map(function (app) {\n return heroku.apps(app.name).dynos().list();\n }));\n\n}).then(function (dynos) {\n\n console.log(dynos);\n\n});\n```\n\n### Generators\n\nIt's easy to get heroku-client working with [generators][generators]. In this\nexample, I'll use the [co][co] library to wrap a function that will get the list\nof all of my apps, and then get the dynos for each of those apps:\n\n```javascript\nlet co = require('co');\nlet heroku = require('heroku-client');\nlet hk = heroku.createClient({ token: process.env.HEROKU_API_KEY });\n\nlet main = function* () {\n let apps = yield hk.apps().list();\n let dynos = yield apps.map(getDynos);\n\n console.log(dynos);\n\n function getDynos(app) {\n return hk.apps(app.name).dynos().list();\n }\n};\n\nco(main)();\n```\n\nAs long as you're using Node >= 0.11, you can run this script with:\n\n```sh\n$ node --harmony --use-strict file.js\n```\n\nHooray, no callbacks or promises in sight!\n\n### HTTP Proxies\n\nIf you'd like to make requests through an HTTP proxy, set the\n`HEROKU_HTTP_PROXY_HOST` environment variable with your proxy host, and\n`HEROKU_HTTP_PROXY_PORT` with the desired port (defaults to 8080). heroku-client\nwill then make requests through this proxy instead of directly to\napi.heroku.com.\n\n## Caching\n\nheroku-client can optionally perform caching of API requests.\n\nheroku-client will cache any response from the Heroku API that comes with an\n`ETag` header, and each response is cached individually (i.e. even though the\nclient might make multiple calls for a user's apps and then aggregate them into\na single JSON array, each required API call is individually cached). For each\nAPI request it performs, heroku-client sends an `If-None-Match` header if there\nis a cached response for the API request. If API returns a 304 response code,\nheroku-client returns the cached response. Otherwise, it writes the new API\nresponse to the cache and returns that.\n\nTo tell heroku-client to perform caching, add a config object to the options\nwith store and encryptor objects. These can be instances of memjs and\nsimple-encryptor, respectively.\n\n```js\nvar Heroku = require('heroku-client');\nvar memjs = require('memjs').Client.create();\nvar encryptor = require('simple-encryptor')(SECRET_CACHE_KEY);\nvar hk = new Heroku({\n cache: { store: memjs, encryptor: encryptor }\n});\n```\n\n### Custom caching\n\nAlternatively you can specify a custom cache implementation. Your custom implementation must define `get(key, cb(err, value))` and `set(key, value)` functions.\n\nHere's a sample implementation that uses Redis to cache API responses for 5-minutes each:\n\n```javascript\nvar redis = require('redis');\nvar client = redis.createClient();\nvar cacheTtlSecs = 5 * 60; // 5 minutes\n\nvar redisStore = {\n get: function(key, cb) {\n // Namespace the keys:\n var redisKey = 'heroku:api:' + key;\n client.GET(redisKey, cb);\n },\n\n set: function(key, value) {\n // Namespace the keys:\n var redisKey = 'heroku:api:' + key;\n client.SETEX(redisKey, cacheTtlSecs, value, function(err) {\n // ignore errors on set\n });\n }\n};\n\nvar encryptor = require('simple-encryptor')(SECRET_CACHE_KEY);\nvar Heroku = require('heroku-client');\nvar hk = new Heroku({\n cache: {store: redisStore, encryptor: encryptor}\n});\n```\n\n## Contributing\n\n### Updating resources\n\nTo fetch the latest schema, generate documentation, and run the tests:\n\n```sh\n$ bin/update\n```\n\nInspect your changes, and\n[bump the version number accordingly](http://semver.org/) when cutting a\nrelease.\n\n### Generating documentation\n\nDocumentation for heroku-client is auto-generated from\n[the API schema](https://github.com/heroku/node-heroku-client/blob/master/lib/schema.js).\n\nDocs are generated like so:\n\n```bash\n$ bin/docs\n```\n\nGenerating docs also runs a cursory test, ensuring that every documented\nfunction *is* a function that can be called.\n\n### Running tests\n\nheroku-client uses [jasmine-node][jasmine-node] for tests:\n\n```bash\n$ npm test\n```\n\n[platform-api-reference]: https://devcenter.heroku.com/articles/platform-api-reference\n[q]: https://github.com/kriskowal/q\n[memjs]: https://github.com/alevy/memjs\n[bin_secret]: https://github.com/heroku/node-heroku-client/blob/master/bin/secret\n[memcachier]: https://www.memcachier.com\n[jasmine-node]: https://github.com/mhevery/jasmine-node\n[generators]: https://github.com/JustinDrake/node-es6-examples#generators\n[co]: https://github.com/visionmedia/co\n",
"readmeFilename": "README.md",
"gitHead": "7be4d59227942f82ec7509abc5f6169bf8f40d83",
"homepage": "https://github.com/heroku/node-heroku-client#readme",
"_id": "heroku-client@2.1.0",
"_shasum": "f39fd0949bb83da5410622acb090e915ce8b9410",
"_from": "heroku-client@>=2.1.0 <3.0.0"
}
}
{
"name": "heroku-cli-util",
"version": "5.4.6",
"version": "5.4.7",
"description": "Set of helpful CLI utilities",

@@ -25,6 +25,6 @@ "main": "index.js",

"dependencies": {
"chalk": "^1.1.0",
"co": "^4.5.4",
"heroku-client": "^2.1.0",
"inflection": "^1.7.1"
"chalk": "1.1.1",
"co": "4.6.0",
"heroku-client": "2.2.0",
"inflection": "1.7.1"
},

@@ -31,0 +31,0 @@ "bundledDependencies": [

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc