heroku-cli-util
Advanced tools
Comparing version 5.9.3 to 5.10.0
@@ -36,1 +36,2 @@ 'use strict'; | ||
exports.linewrap = require('./lib/linewrap'); | ||
exports.Spinner = require('./lib/spinner'); |
@@ -12,4 +12,7 @@ 'use strict'; | ||
options = options || {}; | ||
cli.console.writeError(message + '... '); | ||
let spinner = new cli.Spinner({text: `${message}... `}); | ||
spinner.start(); | ||
return promise.then(function (result) { | ||
spinner.stop(); | ||
if (options.success !== false) { | ||
@@ -20,2 +23,3 @@ cli.console.error(options.success || 'done'); | ||
}).catch(function (err) { | ||
spinner.stop(); | ||
if (err.body && err.body.id === 'two_factor') { | ||
@@ -22,0 +26,0 @@ cli.console.error(cli.color.yellow.bold('!')); |
@@ -15,3 +15,4 @@ 'use strict'; | ||
errtermwidth(), { | ||
skipScheme: 'ansi-color' | ||
skipScheme: 'ansi-color', | ||
skip: /^\$ .*$/, | ||
})(msg || ''); | ||
@@ -18,0 +19,0 @@ } |
@@ -6,2 +6,5 @@ 'use strict'; | ||
let tunnel = require('tunnel-agent'); | ||
let fs = require('fs'); | ||
let path = require('path'); | ||
let hush = require('./console').hush; | ||
@@ -27,3 +30,3 @@ function findProxy(urlParsed) { | ||
function agent(urlParsed, proxyParsed) { | ||
function agent(urlParsed, proxyParsed, certs) { | ||
let tunnelMethod = findTunnel(urlParsed); | ||
@@ -41,12 +44,54 @@ let opts = { | ||
return tunnelMethod(opts); | ||
if (certs.length > 0) { | ||
opts.ca = certs; | ||
} | ||
let tunnelAgent = tunnelMethod(opts); | ||
if (urlParsed.protocol === 'https:') { | ||
tunnelAgent.defaultPort = 443; | ||
} | ||
return tunnelAgent; | ||
} | ||
function addProxyToOpts(url, opts) { | ||
function sslCertFile() { | ||
return process.env.SSL_CERT_FILE ? [process.env.SSL_CERT_FILE] : []; | ||
} | ||
function sslCertDir() { | ||
let cert_dir = process.env.SSL_CERT_DIR; | ||
if (cert_dir) { | ||
return fs.readdirSync(cert_dir).map(f => path.join(cert_dir, f)); | ||
} else { | ||
return []; | ||
} | ||
} | ||
function getCerts() { | ||
let filenames = sslCertFile().concat(sslCertDir()); | ||
if (filenames.length > 0) { | ||
hush('Adding the following trusted certificate authorities'); | ||
} | ||
return filenames.map(function(filename) { | ||
hush(' ' + filename); | ||
return fs.readFileSync(filename); | ||
}); | ||
} | ||
function addToOpts(url, opts) { | ||
let urlParsed = urlLib.parse(url); | ||
let proxy = findProxy(urlParsed); | ||
let certs = getCerts(); | ||
if (proxy) { | ||
let proxyParsed = urlLib.parse(proxy); | ||
opts = Object.assign({}, opts, {agent: agent(urlParsed, proxyParsed)}); | ||
opts = Object.assign({}, opts, {agent: agent(urlParsed, proxyParsed, certs)}); | ||
} | ||
if (certs.length > 0) { | ||
opts = Object.assign({}, opts, {ca: certs}); | ||
} | ||
return opts; | ||
@@ -56,7 +101,7 @@ } | ||
function got(url, opts) { | ||
return gotDelegate(url, addProxyToOpts(url, opts)); | ||
return gotDelegate(url, addToOpts(url, opts)); | ||
} | ||
got.stream = function (url, opts) { | ||
return gotDelegate.stream(url, addProxyToOpts(url, opts)); | ||
return gotDelegate.stream(url, addToOpts(url, opts)); | ||
}; | ||
@@ -63,0 +108,0 @@ |
{ | ||
"name": "heroku-cli-util", | ||
"version": "5.9.3", | ||
"version": "5.10.0", | ||
"description": "Set of helpful CLI utilities", | ||
@@ -26,3 +26,5 @@ "main": "index.js", | ||
"nock": "7.7.2", | ||
"proxyquire": "1.7.4" | ||
"proxyquire": "1.7.4", | ||
"sinon": "1.17.2", | ||
"sinon-chai": "2.8.0" | ||
}, | ||
@@ -32,2 +34,3 @@ "dependencies": { | ||
"chalk": "1.1.3", | ||
"cli-cursor": "1.0.2", | ||
"co": "4.6.0", | ||
@@ -38,4 +41,5 @@ "got": "6.2.0", | ||
"opn": "3.0.3", | ||
"supports-color": "3.1.2", | ||
"tunnel-agent": "0.4.2" | ||
} | ||
} |
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
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 4 instances 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
80310
27
2552
10
9
24
+ Addedcli-cursor@1.0.2
+ Addedsupports-color@3.1.2
+ Addedcli-cursor@1.0.2(transitive)
+ Addedexit-hook@1.1.1(transitive)
+ Addedhas-flag@1.0.0(transitive)
+ Addedonetime@1.1.0(transitive)
+ Addedrestore-cursor@1.0.1(transitive)
+ Addedsupports-color@3.1.2(transitive)