‰PNG  IHDRèèÂÁC³×IDATxÚíÖ1 À°ù7 89šTÁ®5<'wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ; wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ»`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸KÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãHÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãHÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜÀ¸Æ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`ÜãÆ0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãw0î€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŒ;wÀ¸€qŒ;`ÜÀ¸Æ0î`Üãw0î€qãwÀ¸€qŒ;`ÜÀ¸ÆŒ;`ÜãÆ0î€qãwÀ¸€qŒ;wÀ¸ÆŒ;`ÜãÆ0î`Üãw0î€qŽºÆá¾d“é­IEND®B`‚ FM / lib
/usr/lib/node_modules/npm/lib
NameSizeModeActions
auth/-0755rm
config/-0755rm
doctor/-0755rm
install/-0755rm
search/-0755rm
utils/-0755rm
access.js56720644editdlrm
adduser.js13370644editdlrm
audit.js108110644editdlrm
bin.js5150644editdlrm
bugs.js8640644editdlrm
build.js45450644editdlrm
cache.js47730644editdlrm
ci.js13410644editdlrm
completion.js72780644editdlrm
config.js76120644editdlrm
dedupe.js49990644editdlrm
deprecate.js21570644editdlrm
dist-tag.js42040644editdlrm
docs.js10630644editdlrm
doctor.js40750644editdlrm
edit.js14070644editdlrm
explore.js17090644editdlrm
fetch-package-metadata.js40640644editdlrm
fetch-package-metadata.md18110644editdlrm
fund.js50260644editdlrm
get.js2350644editdlrm
help-search.js57770644editdlrm
help.js65070644editdlrm
hook.js47270644editdlrm
init.js28050644editdlrm
install-ci-test.js4860644editdlrm
install-test.js5070644editdlrm
install.js373450644editdlrm
link.js57390644editdlrm
logout.js12890644editdlrm
ls.js164800644editdlrm
npm.js147190644editdlrm
org.js42760644editdlrm
outdated.js125720644editdlrm
owner.js67540644editdlrm
pack.js120680644editdlrm
ping.js11410644editdlrm
prefix.js3300644editdlrm
profile.js114010644editdlrm
prune.js22810644editdlrm
publish.js52640644editdlrm
rebuild.js21430644editdlrm
repo.js14710644editdlrm
restart.js640644editdlrm
root.js3200644editdlrm
run-script.js55400644editdlrm
search.js34420644editdlrm
set.js2760644editdlrm
shrinkwrap.js100560644editdlrm
star.js21570644editdlrm
stars.js10540644editdlrm
start.js620644editdlrm
stop.js610644editdlrm
substack.js5090644editdlrm
team.js47240644editdlrm
test.js3740644editdlrm
token.js68180644editdlrm
unbuild.js43740644editdlrm
uninstall.js22610644editdlrm
unpublish.js35940644editdlrm
update.js22130644editdlrm
version.js100290644editdlrm
view.js154730644editdlrm
visnup.js41040644editdlrm
whoami.js18090644editdlrm
xmas.js16630644editdlrm
Edit: /usr/lib/node_modules/npm/lib/doctor.js (4075B)
'use strict' const ansiTrim = require('./utils/ansi-trim') const chain = require('slide').chain const color = require('ansicolors') const defaultRegistry = require('./config/defaults').defaults.registry const log = require('npmlog') const npm = require('./npm') const output = require('./utils/output') const path = require('path') const semver = require('semver') const styles = require('ansistyles') const table = require('text-table') // steps const checkFilesPermission = require('./doctor/check-files-permission') const checkPing = require('./doctor/check-ping') const getGitPath = require('./doctor/get-git-path') const getLatestNodejsVersion = require('./doctor/get-latest-nodejs-version') const getLatestNpmVersion = require('./doctor/get-latest-npm-version') const verifyCachedFiles = require('./doctor/verify-cached-files') const globalNodeModules = path.join(npm.config.globalPrefix, 'lib', 'node_modules') const localNodeModules = path.join(npm.config.localPrefix, 'node_modules') module.exports = doctor doctor.usage = 'npm doctor' function doctor (args, silent, cb) { args = args || {} if (typeof cb !== 'function') { cb = silent silent = false } const actionsToRun = [ [checkPing], [getLatestNpmVersion], [getLatestNodejsVersion, args['node-url']], [getGitPath], [checkFilesPermission, npm.cache, 4, 6], [checkFilesPermission, globalNodeModules, 4, 4], [checkFilesPermission, localNodeModules, 6, 6], [verifyCachedFiles, path.join(npm.cache, '_cacache')] ] log.info('doctor', 'Running checkup') chain(actionsToRun, function (stderr, stdout) { if (stderr && stderr.message !== 'not found: git') return cb(stderr) const list = makePretty(stdout) let outHead = ['Check', 'Value', 'Recommendation'] let outBody = list if (npm.color) { outHead = outHead.map(function (item) { return styles.underline(item) }) outBody = outBody.map(function (item) { if (item[2]) { item[0] = color.red(item[0]) item[2] = color.magenta(item[2]) } return item }) } const outTable = [outHead].concat(outBody) const tableOpts = { stringLength: function (s) { return ansiTrim(s).length } } if (!silent) output(table(outTable, tableOpts)) cb(null, list) }) } function makePretty (p) { const ping = p[1] const npmLTS = p[2] const nodeLTS = p[3].replace('v', '') const whichGit = p[4] || 'not installed' const readbleCaches = p[5] ? 'ok' : 'notOk' const executableGlobalModules = p[6] ? 'ok' : 'notOk' const executableLocalModules = p[7] ? 'ok' : 'notOk' const cacheStatus = p[8] ? `verified ${p[8].verifiedContent} tarballs` : 'notOk' const npmV = npm.version const nodeV = process.version.replace('v', '') const registry = npm.config.get('registry') || '' const list = [ ['npm ping', ping], ['npm -v', 'v' + npmV], ['node -v', 'v' + nodeV], ['npm config get registry', registry], ['which git', whichGit], ['Perms check on cached files', readbleCaches], ['Perms check on global node_modules', executableGlobalModules], ['Perms check on local node_modules', executableLocalModules], ['Verify cache contents', cacheStatus] ] if (p[0] !== 200) list[0][2] = 'Check your internet connection' if (!semver.satisfies(npmV, '>=' + npmLTS)) list[1][2] = 'Use npm v' + npmLTS if (!semver.satisfies(nodeV, '>=' + nodeLTS)) list[2][2] = 'Use node v' + nodeLTS if (registry !== defaultRegistry) list[3][2] = 'Try `npm config set registry ' + defaultRegistry + '`' if (whichGit === 'not installed') list[4][2] = 'Install git and ensure it\'s in your PATH.' if (readbleCaches !== 'ok') list[5][2] = 'Check the permissions of your files in ' + npm.config.get('cache') if (executableGlobalModules !== 'ok') list[6][2] = globalNodeModules + ' must be readable and writable by the current user.' if (executableLocalModules !== 'ok') list[7][2] = localNodeModules + ' must be readable and writable by the current user.' return list }