JezK
Edit File: console-reporter.js.map
{"version":3,"file":"console-reporter.js","names":["require","inspect","readline","chalk","stripAnsi","read","tty","AUDIT_COL_WIDTHS","auditSeverityColors","info","bold","low","moderate","yellow","high","red","critical","bgRed","process","platform","env","TERM","test","_styles","close","ConsoleReporter","opts","_lastCategorySize","_spinners","Set","format","stripColor","isSilent","msg","emoji","isTTY","category","color","length","_log","_logCategory","uptime","obj","spinner","stop","clear","stopProgress","head","body","map","field","underline","rows","concat","cols","widths","row","i","Math","max","builtRows","padding","repeat","join","log","current","total","_prependEmoji","endsWith","removeSuffix","dim","value","breakLength","colors","depth","maxArrayLength","String","force","key","items","hints","gutterWidth","item","command","pkg","name","version","showPeakMemory","totalTime","getTotalTime","toFixed","peakMemory","clearLine","stdout","write","stderr","question","options","Promise","reject","Error","resolve","prompt","silent","password","output","input","stdin","err","answer","message","exitCode","required","error","lang","trees","titlePrefix","childrenPrefix","children","hint","formatter","out","getFormattedOutput","prefix","recurseTree","sortTrees","workers","noProgress","spinners","reporterSpinners","Spinner","add","start","updatePrefix","setPrefix","setText","unshift","_current","_prefix","tick","end","moveCursor","header","rl","createInterface","terminal","questions","opt","answers","toIndex","index","indexOf","ask","isNaN","count","bar","_progressBar","Progress","progress","render","choices","WriteStream","pageSize","inquirer","createPromptModule","type","validate","auditMetadata","totalDependencies","vulnerabilities","totalVulnerabilities","summary","rawText","toString","severities","push","recommendation","label","action","resolves","inverse","cmd","isBreaking","tableOptions","colWidths","table","Table","content","vAlign","hAlign","resolution","auditAdvisory","colorSeverity","severity","makeAdvisoryTableRow","patchedIn","patchRows","title","Package","module_name","path","split","dev","Path","id","wordWrap","patched_versions","replace","BaseReporter"],"sourceRoot":"../../../src","sources":["reporters/console/console-reporter.js"],"sourcesContent":["/* @flow */\n\nimport type {\n ReporterSetSpinner,\n ReporterSpinnerSet,\n Package,\n Trees,\n ReporterSpinner,\n ReporterSelectOption,\n QuestionOptions,\n PromptOptions,\n} from '../types.js';\nimport type {FormatKeys} from '../format.js';\nimport type {AuditMetadata, AuditActionRecommendation, AuditAdvisory, AuditResolution} from '../../cli/commands/audit';\n\nimport BaseReporter from '../base-reporter.js';\nimport Progress from './progress-bar.js';\nimport Spinner from './spinner-progress.js';\nimport {clearLine} from './util.js';\nimport {removeSuffix} from '../../util/misc.js';\nimport {sortTrees, recurseTree, getFormattedOutput} from './helpers/tree-helper.js';\nimport inquirer from 'inquirer';\nimport Table from 'cli-table';\n\nconst {inspect} = require('util');\nconst readline = require('readline');\nconst chalk = require('chalk');\nconst stripAnsi = require('strip-ansi');\nconst read = require('read');\nconst tty = require('tty');\n\nconst AUDIT_COL_WIDTHS = [15, 62];\n\nconst auditSeverityColors = {\n info: chalk.bold,\n low: chalk.bold,\n moderate: chalk.yellow,\n high: chalk.red,\n critical: chalk.bgRed,\n};\n\ntype Row = Array<string>;\ntype InquirerResponses<K, T> = {[key: K]: Array<T>};\n\n// fixes bold on windows\nif (process.platform === 'win32' && !(process.env.TERM && /^xterm/i.test(process.env.TERM))) {\n chalk.bold._styles[0].close += '\\u001b[m';\n}\n\nexport default class ConsoleReporter extends BaseReporter {\n constructor(opts: Object) {\n super(opts);\n\n this._lastCategorySize = 0;\n this._spinners = new Set();\n this.format = (chalk: any);\n this.format.stripColor = stripAnsi;\n this.isSilent = !!opts.isSilent;\n }\n\n _lastCategorySize: number;\n _progressBar: ?Progress;\n _spinners: Set<Spinner>;\n\n _prependEmoji(msg: string, emoji: ?string): string {\n if (this.emoji && emoji && this.isTTY) {\n msg = `${emoji} ${msg}`;\n }\n return msg;\n }\n\n _logCategory(category: string, color: FormatKeys, msg: string) {\n this._lastCategorySize = category.length;\n this._log(`${this.format[color](category)} ${msg}`);\n }\n\n _verbose(msg: string) {\n this._logCategory('verbose', 'grey', `${process.uptime()} ${msg}`);\n }\n\n _verboseInspect(obj: any) {\n this.inspect(obj);\n }\n\n close() {\n for (const spinner of this._spinners) {\n spinner.stop();\n }\n this._spinners.clear();\n this.stopProgress();\n super.close();\n }\n\n table(head: Array<string>, body: Array<Row>) {\n //\n head = head.map((field: string): string => this.format.underline(field));\n\n //\n const rows = [head].concat(body);\n\n // get column widths\n const cols: Array<number> = [];\n for (let i = 0; i < head.length; i++) {\n const widths = rows.map((row: Row): number => this.format.stripColor(row[i]).length);\n cols[i] = Math.max(...widths);\n }\n\n //\n const builtRows = rows.map((row: Row): string => {\n for (let i = 0; i < row.length; i++) {\n const field = row[i];\n const padding = cols[i] - this.format.stripColor(field).length;\n\n row[i] = field + ' '.repeat(padding);\n }\n return row.join(' ');\n });\n\n this.log(builtRows.join('\\n'));\n }\n\n step(current: number, total: number, msg: string, emoji?: string) {\n msg = this._prependEmoji(msg, emoji);\n\n if (msg.endsWith('?')) {\n msg = `${removeSuffix(msg, '?')}...?`;\n } else {\n msg += '...';\n }\n\n this.log(`${this.format.dim(`[${current}/${total}]`)} ${msg}`);\n }\n\n inspect(value: mixed) {\n if (typeof value !== 'number' && typeof value !== 'string') {\n value = inspect(value, {\n breakLength: 0,\n colors: this.isTTY,\n depth: null,\n maxArrayLength: null,\n });\n }\n\n this.log(String(value), {force: true});\n }\n\n list(key: string, items: Array<string>, hints?: Object) {\n const gutterWidth = (this._lastCategorySize || 2) - 1;\n\n if (hints) {\n for (const item of items) {\n this._log(`${' '.repeat(gutterWidth)}- ${this.format.bold(item)}`);\n this._log(` ${' '.repeat(gutterWidth)} ${hints[item]}`);\n }\n } else {\n for (const item of items) {\n this._log(`${' '.repeat(gutterWidth)}- ${item}`);\n }\n }\n }\n\n header(command: string, pkg: Package) {\n this.log(this.format.bold(`${pkg.name} ${command} v${pkg.version}`));\n }\n\n footer(showPeakMemory?: boolean) {\n this.stopProgress();\n\n const totalTime = (this.getTotalTime() / 1000).toFixed(2);\n let msg = `Done in ${totalTime}s.`;\n if (showPeakMemory) {\n const peakMemory = (this.peakMemory / 1024 / 1024).toFixed(2);\n msg += ` Peak memory usage ${peakMemory}MB.`;\n }\n this.log(this._prependEmoji(msg, '✨'));\n }\n\n log(msg: string, {force = false}: {force?: boolean} = {}) {\n this._lastCategorySize = 0;\n this._log(msg, {force});\n }\n\n _log(msg: string, {force = false}: {force?: boolean} = {}) {\n if (this.isSilent && !force) {\n return;\n }\n clearLine(this.stdout);\n this.stdout.write(`${msg}\\n`);\n }\n\n success(msg: string) {\n this._logCategory('success', 'green', msg);\n }\n\n error(msg: string) {\n clearLine(this.stderr);\n this.stderr.write(`${this.format.red('error')} ${msg}\\n`);\n }\n\n info(msg: string) {\n this._logCategory('info', 'blue', msg);\n }\n\n command(command: string) {\n this.log(this.format.dim(`$ ${command}`));\n }\n\n warn(msg: string) {\n clearLine(this.stderr);\n this.stderr.write(`${this.format.yellow('warning')} ${msg}\\n`);\n }\n\n question(question: string, options?: QuestionOptions = {}): Promise<string> {\n if (!process.stdout.isTTY) {\n return Promise.reject(new Error(\"Can't answer a question unless a user TTY\"));\n }\n\n return new Promise((resolve, reject) => {\n read(\n {\n prompt: `${this.format.dim('question')} ${question}: `,\n silent: !!options.password,\n output: this.stdout,\n input: this.stdin,\n },\n (err, answer) => {\n if (err) {\n if (err.message === 'canceled') {\n process.exitCode = 1;\n }\n reject(err);\n } else {\n if (!answer && options.required) {\n this.error(this.lang('answerRequired'));\n resolve(this.question(question, options));\n } else {\n resolve(answer);\n }\n }\n },\n );\n });\n }\n // handles basic tree output to console\n tree(key: string, trees: Trees, {force = false}: {force?: boolean} = {}) {\n this.stopProgress();\n //\n if (this.isSilent && !force) {\n return;\n }\n const output = ({name, children, hint, color}, titlePrefix, childrenPrefix) => {\n const formatter = this.format;\n const out = getFormattedOutput({\n prefix: titlePrefix,\n hint,\n color,\n name,\n formatter,\n });\n this.stdout.write(out);\n\n if (children && children.length) {\n recurseTree(sortTrees(children), childrenPrefix, output);\n }\n };\n recurseTree(sortTrees(trees), '', output);\n }\n\n activitySet(total: number, workers: number): ReporterSpinnerSet {\n if (!this.isTTY || this.noProgress) {\n return super.activitySet(total, workers);\n }\n\n const spinners: Array<ReporterSetSpinner> = [];\n const reporterSpinners = this._spinners;\n\n for (let i = 1; i < workers; i++) {\n this.log('');\n }\n\n for (let i = 0; i < workers; i++) {\n const spinner = new Spinner(this.stderr, i);\n reporterSpinners.add(spinner);\n spinner.start();\n\n let prefix: ?string = null;\n let current = 0;\n const updatePrefix = () => {\n spinner.setPrefix(`${this.format.dim(`[${current === 0 ? '-' : current}/${total}]`)} `);\n };\n const clear = () => {\n prefix = null;\n current = 0;\n updatePrefix();\n spinner.setText('waiting...');\n };\n clear();\n\n spinners.unshift({\n clear,\n\n setPrefix(_current: number, _prefix: string) {\n current = _current;\n prefix = _prefix;\n spinner.setText(prefix);\n updatePrefix();\n },\n\n tick(msg: string) {\n if (prefix) {\n msg = `${prefix}: ${msg}`;\n }\n spinner.setText(msg);\n },\n\n end() {\n spinner.stop();\n reporterSpinners.delete(spinner);\n },\n });\n }\n\n return {\n spinners,\n end: () => {\n for (const spinner of spinners) {\n spinner.end();\n }\n readline.moveCursor(this.stdout, 0, -workers + 1);\n },\n };\n }\n\n activity(): ReporterSpinner {\n if (!this.isTTY) {\n return {\n tick() {},\n end() {},\n };\n }\n const reporterSpinners = this._spinners;\n\n const spinner = new Spinner(this.stderr);\n spinner.start();\n\n reporterSpinners.add(spinner);\n\n return {\n tick(name: string) {\n spinner.setText(name);\n },\n\n end() {\n spinner.stop();\n reporterSpinners.delete(spinner);\n },\n };\n }\n\n select(header: string, question: string, options: Array<ReporterSelectOption>): Promise<string> {\n if (!this.isTTY) {\n return Promise.reject(new Error(\"Can't answer a question unless a user TTY\"));\n }\n\n const rl = readline.createInterface({\n input: this.stdin,\n output: this.stdout,\n terminal: true,\n });\n\n const questions = options.map((opt): string => opt.name);\n const answers = options.map((opt): string => opt.value);\n\n function toIndex(input: string): number {\n const index = answers.indexOf(input);\n\n if (index >= 0) {\n return index;\n } else {\n return +input;\n }\n }\n\n return new Promise(resolve => {\n this.info(header);\n\n for (let i = 0; i < questions.length; i++) {\n this.log(` ${this.format.dim(`${i + 1})`)} ${questions[i]}`);\n }\n\n const ask = () => {\n rl.question(`${question}: `, input => {\n let index = toIndex(input);\n\n if (isNaN(index)) {\n this.log('Not a number');\n ask();\n return;\n }\n\n if (index <= 0 || index > options.length) {\n this.log('Outside answer range');\n ask();\n return;\n }\n\n // get index\n index--;\n rl.close();\n resolve(answers[index]);\n });\n };\n\n ask();\n });\n }\n\n progress(count: number): () => void {\n if (this.noProgress || count <= 0) {\n return function() {\n // noop\n };\n }\n\n if (!this.isTTY) {\n return function() {\n // TODO what should the behaviour here be? we could buffer progress messages maybe\n };\n }\n\n // Clear any potentially old progress bars\n this.stopProgress();\n\n const bar = (this._progressBar = new Progress(count, this.stderr, (progress: Progress) => {\n if (progress === this._progressBar) {\n this._progressBar = null;\n }\n }));\n\n bar.render();\n\n return function() {\n bar.tick();\n };\n }\n\n stopProgress() {\n if (this._progressBar) {\n this._progressBar.stop();\n }\n }\n\n async prompt<T>(message: string, choices: Array<*>, options?: PromptOptions = {}): Promise<Array<T>> {\n if (!process.stdout.isTTY) {\n return Promise.reject(new Error(\"Can't answer a question unless a user TTY\"));\n }\n\n let pageSize;\n if (process.stdout instanceof tty.WriteStream) {\n pageSize = process.stdout.rows - 2;\n }\n\n const rl = readline.createInterface({\n input: this.stdin,\n output: this.stdout,\n terminal: true,\n });\n\n // $FlowFixMe: Need to update the type of Inquirer\n const prompt = inquirer.createPromptModule({\n input: this.stdin,\n output: this.stdout,\n });\n\n const {name = 'prompt', type = 'input', validate} = options;\n const answers: InquirerResponses<string, T> = await prompt([{name, type, message, choices, pageSize, validate}]);\n\n rl.close();\n\n return answers[name];\n }\n\n auditSummary(auditMetadata: AuditMetadata) {\n const {totalDependencies, vulnerabilities} = auditMetadata;\n const totalVulnerabilities =\n vulnerabilities.info +\n vulnerabilities.low +\n vulnerabilities.moderate +\n vulnerabilities.high +\n vulnerabilities.critical;\n const summary = this.lang(\n 'auditSummary',\n totalVulnerabilities > 0 ? this.rawText(chalk.red(totalVulnerabilities.toString())) : totalVulnerabilities,\n totalDependencies,\n );\n this._log(summary);\n\n if (totalVulnerabilities) {\n const severities = [];\n if (vulnerabilities.info) {\n severities.push(this.lang('auditInfo', vulnerabilities.info));\n }\n if (vulnerabilities.low) {\n severities.push(this.lang('auditLow', vulnerabilities.low));\n }\n if (vulnerabilities.moderate) {\n severities.push(this.lang('auditModerate', vulnerabilities.moderate));\n }\n if (vulnerabilities.high) {\n severities.push(this.lang('auditHigh', vulnerabilities.high));\n }\n if (vulnerabilities.critical) {\n severities.push(this.lang('auditCritical', vulnerabilities.critical));\n }\n this._log(`${this.lang('auditSummarySeverity')} ${severities.join(' | ')}`);\n }\n }\n\n auditAction(recommendation: AuditActionRecommendation) {\n const label = recommendation.action.resolves.length === 1 ? 'vulnerability' : 'vulnerabilities';\n this._log(\n this.lang(\n 'auditResolveCommand',\n this.rawText(chalk.inverse(recommendation.cmd)),\n recommendation.action.resolves.length,\n this.rawText(label),\n ),\n );\n if (recommendation.isBreaking) {\n this._log(this.lang('auditSemverMajorChange'));\n }\n }\n\n auditManualReview() {\n const tableOptions = {\n colWidths: [78],\n };\n const table = new Table(tableOptions);\n table.push([\n {\n content: this.lang('auditManualReview'),\n vAlign: 'center',\n hAlign: 'center',\n },\n ]);\n\n this._log(table.toString());\n }\n\n auditAdvisory(resolution: AuditResolution, auditAdvisory: AuditAdvisory) {\n function colorSeverity(severity: string, message: ?string): string {\n return auditSeverityColors[severity](message || severity);\n }\n\n function makeAdvisoryTableRow(patchedIn: ?string): Array<Object> {\n const patchRows = [];\n\n if (patchedIn) {\n patchRows.push({'Patched in': patchedIn});\n }\n\n return [\n {[chalk.bold(colorSeverity(auditAdvisory.severity))]: chalk.bold(auditAdvisory.title)},\n {Package: auditAdvisory.module_name},\n ...patchRows,\n {'Dependency of': `${resolution.path.split('>')[0]} ${resolution.dev ? '[dev]' : ''}`},\n {Path: resolution.path.split('>').join(' > ')},\n {'More info': `https://www.npmjs.com/advisories/${auditAdvisory.id}`},\n ];\n }\n\n const tableOptions = {\n colWidths: AUDIT_COL_WIDTHS,\n wordWrap: true,\n };\n const table = new Table(tableOptions);\n const patchedIn =\n auditAdvisory.patched_versions.replace(' ', '') === '<0.0.0'\n ? 'No patch available'\n : auditAdvisory.patched_versions;\n table.push(...makeAdvisoryTableRow(patchedIn));\n this._log(table.toString());\n }\n}\n"],"mappings":"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"}