summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/npm-audit-report/reporters/install.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/npm-audit-report/reporters/install.js')
-rw-r--r--deps/npm/node_modules/npm-audit-report/reporters/install.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/deps/npm/node_modules/npm-audit-report/reporters/install.js b/deps/npm/node_modules/npm-audit-report/reporters/install.js
new file mode 100644
index 0000000000..00d3583936
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/reporters/install.js
@@ -0,0 +1,70 @@
+'use strict'
+
+const Utils = require('../lib/utils')
+
+module.exports = report
+function report (data, options) {
+ let msg = summary(data, options)
+ if (!Object.keys(data.advisories).length) {
+ return {
+ report: msg,
+ exitCode: 0
+ }
+ } else {
+ msg += '\n run `npm audit fix` to fix them, or `npm audit` for details'
+ return {
+ report: msg,
+ exitCode: 1
+ }
+ }
+}
+
+module.exports.summary = summary
+function summary (data, options) {
+ const defaults = {
+ severityThreshold: 'info'
+ }
+
+ const config = Object.assign({}, defaults, options)
+
+ function clr (str, clr) { return Utils.color(str, clr, config.withColor) }
+ function green (str) { return clr(str, 'brightGreen') }
+ function red (str) { return clr(str, 'brightRed') }
+
+ let output = ''
+
+ const log = function (value) {
+ output = output + value + '\n'
+ }
+
+ output += 'found '
+
+ if (Object.keys(data.advisories).length === 0) {
+ log(`${green('0')} vulnerabilities`)
+ return output
+ } else {
+ let total = 0
+ const sev = []
+
+ const keys = Object.keys(data.metadata.vulnerabilities)
+ for (let key of keys) {
+ const value = data.metadata.vulnerabilities[key]
+ total = total + value
+ if (value > 0) {
+ sev.push([key, value])
+ }
+ }
+
+ if (sev.length > 1) {
+ const severities = sev.map((value) => {
+ return `${value[1]} ${Utils.severityLabel(value[0], config.withColor).toLowerCase()}`
+ }).join(', ')
+ log(`${red(total)} vulnerabilities (${severities})`)
+ } else {
+ const vulnCount = sev[0][1]
+ const vulnLabel = Utils.severityLabel(sev[0][0], config.withColor).toLowerCase()
+ log(`${vulnCount} ${vulnLabel} severity vulnerabilit${vulnCount === 1 ? 'y' : 'ies'}`)
+ }
+ }
+ return output.trim()
+}