diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md index e1e689bbd8f81..fc1a6bb303057 100644 --- a/DEPENDENCIES.md +++ b/DEPENDENCIES.md @@ -577,6 +577,7 @@ graph LR; npm-->sigstore; npm-->spawk; npm-->ssri; + npm-->supports-color; npm-->tap; npm-->tar; npm-->text-table; diff --git a/lib/commands/doctor.js b/lib/commands/doctor.js index fa491ae6177ff..96e343701d1d5 100644 --- a/lib/commands/doctor.js +++ b/lib/commands/doctor.js @@ -371,7 +371,8 @@ class Doctor extends BaseCommand { output (row) { const t = new Table({ - chars: { top: '', + chars: { + top: '', 'top-mid': '', 'top-left': '', 'top-right': '', @@ -385,8 +386,17 @@ class Doctor extends BaseCommand { 'mid-mid': '', right: '', 'right-mid': '', - middle: ' ' }, - style: { 'padding-left': 0, 'padding-right': 0 }, + middle: ' ', + }, + style: { + 'padding-left': 0, + 'padding-right': 0, + // setting border here is not necessary visually since we've already + // zeroed out all the chars above, but without it cli-table3 will wrap + // some of the separator spaces with ansi codes which show up in + // snapshots. + border: 0, + }, colWidths: [this.#checkWidth, 6], }) t.push(row) diff --git a/lib/commands/install.js b/lib/commands/install.js index 2bfd20a72658f..75f0e2f175b61 100644 --- a/lib/commands/install.js +++ b/lib/commands/install.js @@ -27,6 +27,7 @@ class Install extends ArboristWorkspaceCmd { 'strict-peer-deps', 'prefer-dedupe', 'package-lock', + 'package-lock-only', 'foreground-scripts', 'ignore-scripts', 'audit', diff --git a/lib/npm.js b/lib/npm.js index 36118fe345019..14706629e79c2 100644 --- a/lib/npm.js +++ b/lib/npm.js @@ -194,12 +194,19 @@ class Npm { await this.time('npm:load:configload', () => this.config.load()) - const { Chalk, supportsColor, supportsColorStderr } = await import('chalk') + // get createSupportsColor from chalk directly if this lands + // https://github.com/chalk/chalk/pull/600 + const [{ Chalk }, { createSupportsColor }] = await Promise.all([ + import('chalk'), + import('supports-color'), + ]) this.#noColorChalk = new Chalk({ level: 0 }) - this.#chalk = this.color ? new Chalk({ level: supportsColor.level }) - : this.#noColorChalk - this.#logChalk = this.logColor ? new Chalk({ level: supportsColorStderr.level }) - : this.#noColorChalk + // we get the chalk level based on a null stream meaning chalk will only use + // what it knows about the environment to get color support since we already + // determined in our definitions that we want to show colors. + const level = Math.max(createSupportsColor(null).level, 1) + this.#chalk = this.color ? new Chalk({ level }) : this.#noColorChalk + this.#logChalk = this.logColor ? new Chalk({ level }) : this.#noColorChalk // mkdir this separately since the logs dir can be set to // a different location. if this fails, then we don't have diff --git a/node_modules/.gitignore b/node_modules/.gitignore index 0919145b131a3..1db4a271b386c 100644 --- a/node_modules/.gitignore +++ b/node_modules/.gitignore @@ -283,6 +283,7 @@ !/string-width !/strip-ansi-cjs !/strip-ansi +!/supports-color !/tar !/tar/node_modules/ /tar/node_modules/* diff --git a/node_modules/supports-color/browser.js b/node_modules/supports-color/browser.js new file mode 100644 index 0000000000000..1ffde642ae2ea --- /dev/null +++ b/node_modules/supports-color/browser.js @@ -0,0 +1,30 @@ +/* eslint-env browser */ + +const level = (() => { + if (navigator.userAgentData) { + const brand = navigator.userAgentData.brands.find(({brand}) => brand === 'Chromium'); + if (brand?.version > 93) { + return 3; + } + } + + if (/\b(Chrome|Chromium)\//.test(navigator.userAgent)) { + return 1; + } + + return 0; +})(); + +const colorSupport = level !== 0 && { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3, +}; + +const supportsColor = { + stdout: colorSupport, + stderr: colorSupport, +}; + +export default supportsColor; diff --git a/node_modules/supports-color/index.js b/node_modules/supports-color/index.js new file mode 100644 index 0000000000000..ca95e9f2202a6 --- /dev/null +++ b/node_modules/supports-color/index.js @@ -0,0 +1,182 @@ +import process from 'node:process'; +import os from 'node:os'; +import tty from 'node:tty'; + +// From: https://github.com/sindresorhus/has-flag/blob/main/index.js +/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) { +function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) { + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf('--'); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); +} + +const {env} = process; + +let flagForceColor; +if ( + hasFlag('no-color') + || hasFlag('no-colors') + || hasFlag('color=false') + || hasFlag('color=never') +) { + flagForceColor = 0; +} else if ( + hasFlag('color') + || hasFlag('colors') + || hasFlag('color=true') + || hasFlag('color=always') +) { + flagForceColor = 1; +} + +function envForceColor() { + if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === 'true') { + return 1; + } + + if (env.FORCE_COLOR === 'false') { + return 0; + } + + return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); + } +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3, + }; +} + +function _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) { + const noFlagForceColor = envForceColor(); + if (noFlagForceColor !== undefined) { + flagForceColor = noFlagForceColor; + } + + const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; + + if (forceColor === 0) { + return 0; + } + + if (sniffFlags) { + if (hasFlag('color=16m') + || hasFlag('color=full') + || hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + } + + // Check for Azure DevOps pipelines. + // Has to be above the `!streamIsTTY` check. + if ('TF_BUILD' in env && 'AGENT_NAME' in env) { + return 1; + } + + if (haveStream && !streamIsTTY && forceColor === undefined) { + return 0; + } + + const min = forceColor || 0; + + if (env.TERM === 'dumb') { + return min; + } + + if (process.platform === 'win32') { + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(osRelease[0]) >= 10 + && Number(osRelease[2]) >= 10_586 + ) { + return Number(osRelease[2]) >= 14_931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if ('GITHUB_ACTIONS' in env) { + return 3; + } + + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if (env.TERM === 'xterm-kitty') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': { + return version >= 3 ? 3 : 2; + } + + case 'Apple_Terminal': { + return 2; + } + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + return min; +} + +export function createSupportsColor(stream, options = {}) { + const level = _supportsColor(stream, { + streamIsTTY: stream && stream.isTTY, + ...options, + }); + + return translateLevel(level); +} + +const supportsColor = { + stdout: createSupportsColor({isTTY: tty.isatty(1)}), + stderr: createSupportsColor({isTTY: tty.isatty(2)}), +}; + +export default supportsColor; diff --git a/node_modules/supports-color/license b/node_modules/supports-color/license new file mode 100644 index 0000000000000..fa7ceba3eb4a9 --- /dev/null +++ b/node_modules/supports-color/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/supports-color/package.json b/node_modules/supports-color/package.json new file mode 100644 index 0000000000000..eb6011c6bcdc6 --- /dev/null +++ b/node_modules/supports-color/package.json @@ -0,0 +1,61 @@ +{ + "name": "supports-color", + "version": "9.3.1", + "description": "Detect whether a terminal supports color", + "license": "MIT", + "repository": "chalk/supports-color", + "funding": "https://github.com/chalk/supports-color?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": { + "node": "./index.js", + "default": "./browser.js" + }, + "engines": { + "node": ">=12" + }, + "scripts": { + "//test": "xo && ava && tsd", + "test": "xo && tsd" + }, + "files": [ + "index.js", + "index.d.ts", + "browser.js", + "browser.d.ts" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "devDependencies": { + "@types/node": "^16.11.7", + "ava": "^3.15.0", + "import-fresh": "^3.3.0", + "tsd": "^0.18.0", + "typescript": "^4.4.3", + "xo": "^0.49.0" + } +} diff --git a/package-lock.json b/package-lock.json index 2f8e49bceb07f..629f05d6ab000 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,6 +66,7 @@ "semver", "sigstore", "ssri", + "supports-color", "tar", "text-table", "tiny-relative-date", @@ -141,6 +142,7 @@ "semver": "^7.5.1", "sigstore": "^1.5.0", "ssri": "^10.0.4", + "supports-color": "^9.3.1", "tar": "^6.1.14", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", @@ -789,6 +791,18 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@commitlint/format/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@commitlint/is-ignored": { "version": "17.4.4", "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.4.4.tgz", @@ -885,6 +899,18 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@commitlint/load/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@commitlint/message": { "version": "17.4.2", "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz", @@ -1006,6 +1032,18 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@commitlint/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@conventional-commits/parser": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@conventional-commits/parser/-/parser-0.4.1.tgz", @@ -1513,6 +1551,18 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@lerna/child-process/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@lerna/collect-updates": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-4.0.0.tgz", @@ -5220,6 +5270,19 @@ "node": "*" } }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/espree": { "version": "9.5.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", @@ -7052,6 +7115,18 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", @@ -11035,6 +11110,18 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/release-please/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/release-please/node_modules/type-fest": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", @@ -12082,15 +12169,15 @@ } }, "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.3.1.tgz", + "integrity": "sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q==", + "inBundle": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { diff --git a/package.json b/package.json index c11da5b05417e..cca9bde90c4da 100644 --- a/package.json +++ b/package.json @@ -109,6 +109,7 @@ "semver": "^7.5.1", "sigstore": "^1.5.0", "ssri": "^10.0.4", + "supports-color": "^9.3.1", "tar": "^6.1.14", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", @@ -176,6 +177,7 @@ "semver", "sigstore", "ssri", + "supports-color", "tar", "text-table", "tiny-relative-date", @@ -209,6 +211,7 @@ "dumpconf": "env | grep npm | sort | uniq", "licenses": "licensee --production --errors-only", "test": "tap", + "test:nocolor": "CI=true tap -Rclassic", "test-all": "node . run test -ws -iwr --if-present", "snap": "tap", "prepack": "node . run build -w docs", @@ -225,7 +228,6 @@ "test-env": [ "LC_ALL=sk" ], - "color": 1, "timeout": 600, "nyc-arg": [ "--exclude", diff --git a/tap-snapshots/test/lib/commands/doctor.js.test.cjs b/tap-snapshots/test/lib/commands/doctor.js.test.cjs index a9f58b8854569..0cf7133bdc4bf 100644 --- a/tap-snapshots/test/lib/commands/doctor.js.test.cjs +++ b/tap-snapshots/test/lib/commands/doctor.js.test.cjs @@ -53,35 +53,35 @@ Object { ` exports[`test/lib/commands/doctor.js TAP all clear > output 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP all clear in color > everything is ok in color 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP all clear in color > logs 1`] = ` @@ -179,35 +179,35 @@ Object { ` exports[`test/lib/commands/doctor.js TAP bad proxy > output 1`] = ` -Check  Value  Recommendation/Notes -npm ping  not ok unsupported proxy protocol: 'ssh:' -npm -v  not ok Error: unsupported proxy protocol: 'ssh:' -node -v  not ok Error: unsupported proxy protocol: 'ssh:' -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping not ok unsupported proxy protocol: 'ssh:' +npm -v not ok Error: unsupported proxy protocol: 'ssh:' +node -v not ok Error: unsupported proxy protocol: 'ssh:' +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP cacache badContent > corrupted cache content 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 2 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 2 tarballs ` exports[`test/lib/commands/doctor.js TAP cacache badContent > logs 1`] = ` @@ -323,35 +323,35 @@ Object { ` exports[`test/lib/commands/doctor.js TAP cacache missingContent > missing content 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 2 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 2 tarballs ` exports[`test/lib/commands/doctor.js TAP cacache reclaimedCount > content garbage collected 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 2 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 2 tarballs ` exports[`test/lib/commands/doctor.js TAP cacache reclaimedCount > logs 1`] = ` @@ -438,9 +438,9 @@ Object { ` exports[`test/lib/commands/doctor.js TAP discrete checks cache > output 1`] = ` -Check  Value  Recommendation/Notes -Perms check on cached files ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +Perms check on cached files ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP discrete checks git > logs 1`] = ` @@ -456,7 +456,7 @@ Object { ` exports[`test/lib/commands/doctor.js TAP discrete checks git > output 1`] = ` -Check Value  Recommendation/Notes +Check Value Recommendation/Notes ` exports[`test/lib/commands/doctor.js TAP discrete checks invalid environment > logs 1`] = ` @@ -480,9 +480,9 @@ Object { ` exports[`test/lib/commands/doctor.js TAP discrete checks invalid environment > output 1`] = ` -Check  Value  Recommendation/Notes -git executable in PATH  ok  /path/to/git -global bin folder in PATH not ok Error: Add {CWD}/global/bin to your $PATH +Check Value Recommendation/Notes +git executable in PATH ok /path/to/git +global bin folder in PATH not ok Error: Add {CWD}/global/bin to your $PATH ` exports[`test/lib/commands/doctor.js TAP discrete checks permissions - not windows > logs 1`] = ` @@ -498,12 +498,12 @@ Object { ` exports[`test/lib/commands/doctor.js TAP discrete checks permissions - not windows > output 1`] = ` -Check  Value  Recommendation/Notes -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   +Check Value Recommendation/Notes +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok ` exports[`test/lib/commands/doctor.js TAP discrete checks permissions - windows > logs 1`] = ` @@ -519,7 +519,7 @@ Object { ` exports[`test/lib/commands/doctor.js TAP discrete checks permissions - windows > output 1`] = ` -Check Value  Recommendation/Notes +Check Value Recommendation/Notes ` exports[`test/lib/commands/doctor.js TAP discrete checks ping > logs 1`] = ` @@ -539,8 +539,8 @@ Object { ` exports[`test/lib/commands/doctor.js TAP discrete checks ping > output 1`] = ` -Check  Value  Recommendation/Notes -npm ping ok   +Check Value Recommendation/Notes +npm ping ok ` exports[`test/lib/commands/doctor.js TAP discrete checks registry > logs 1`] = ` @@ -560,9 +560,9 @@ Object { ` exports[`test/lib/commands/doctor.js TAP discrete checks registry > output 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm config get registry ok  using default registry (https://registry.npmjs.org/) +Check Value Recommendation/Notes +npm ping ok +npm config get registry ok using default registry (https://registry.npmjs.org/) ` exports[`test/lib/commands/doctor.js TAP discrete checks versions > logs 1`] = ` @@ -586,9 +586,9 @@ Object { ` exports[`test/lib/commands/doctor.js TAP discrete checks versions > output 1`] = ` -Check  Value  Recommendation/Notes -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v ok  current: v1.0.0, recommended: v1.0.0 +Check Value Recommendation/Notes +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 ` exports[`test/lib/commands/doctor.js TAP error reading directory > logs 1`] = ` @@ -660,35 +660,35 @@ Object { ` exports[`test/lib/commands/doctor.js TAP error reading directory > readdir error 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  not ok Check the permissions of files in {CWD}/cache (should be owned by current user) -Perms check on local node_modules  not ok Check the permissions of files in {CWD}/prefix/node_modules (should be owned by current user) -Perms check on global node_modules not ok Check the permissions of files in {CWD}/global/node_modules -Perms check on local bin folder  not ok Check the permissions of files in {CWD}/prefix/node_modules/.bin -Perms check on global bin folder  not ok Check the permissions of files in {CWD}/global/bin -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files not ok Check the permissions of files in {CWD}/cache (should be owned by current user) +Perms check on local node_modules not ok Check the permissions of files in {CWD}/prefix/node_modules (should be owned by current user) +Perms check on global node_modules not ok Check the permissions of files in {CWD}/global/node_modules +Perms check on local bin folder not ok Check the permissions of files in {CWD}/prefix/node_modules/.bin +Perms check on global bin folder not ok Check the permissions of files in {CWD}/global/bin +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP incorrect owner > incorrect owner 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  not ok Check the permissions of files in {CWD}/cache (should be owned by current user) -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files not ok Check the permissions of files in {CWD}/cache (should be owned by current user) +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP incorrect owner > logs 1`] = ` @@ -744,19 +744,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP incorrect permissions > incorrect owner 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  not ok Check the permissions of files in {CWD}/cache (should be owned by current user) -Perms check on local node_modules  not ok Check the permissions of files in {CWD}/prefix/node_modules (should be owned by current user) -Perms check on global node_modules not ok Check the permissions of files in {CWD}/global/node_modules -Perms check on local bin folder  not ok Check the permissions of files in {CWD}/prefix/node_modules/.bin -Perms check on global bin folder  not ok Check the permissions of files in {CWD}/global/bin -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files not ok Check the permissions of files in {CWD}/cache (should be owned by current user) +Perms check on local node_modules not ok Check the permissions of files in {CWD}/prefix/node_modules (should be owned by current user) +Perms check on global node_modules not ok Check the permissions of files in {CWD}/global/node_modules +Perms check on local bin folder not ok Check the permissions of files in {CWD}/prefix/node_modules/.bin +Perms check on global bin folder not ok Check the permissions of files in {CWD}/global/bin +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP incorrect permissions > logs 1`] = ` @@ -879,19 +879,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP missing git > missing git 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  not ok Error: Install git and ensure it's in your PATH. -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH not ok Error: Install git and ensure it's in your PATH. +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP missing global directories > logs 1`] = ` @@ -951,19 +951,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP missing global directories > missing global directories 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules not ok Check the permissions of files in {CWD}/global/node_modules -Perms check on local bin folder  ok   -Perms check on global bin folder  not ok Check the permissions of files in {CWD}/global/bin -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules not ok Check the permissions of files in {CWD}/global/node_modules +Perms check on local bin folder ok +Perms check on global bin folder not ok Check the permissions of files in {CWD}/global/bin +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP missing local node_modules > logs 1`] = ` @@ -1014,19 +1014,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP missing local node_modules > missing local node_modules 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP node out of date - current > logs 1`] = ` @@ -1077,19 +1077,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP node out of date - current > node is out of date 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  not ok Use node v2.0.1 (current: v2.0.0) -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v not ok Use node v2.0.1 (current: v2.0.0) +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP node out of date - lts > logs 1`] = ` @@ -1140,19 +1140,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP node out of date - lts > node is out of date 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  not ok Use node v1.0.0 (current: v0.0.1) -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v not ok Use node v1.0.0 (current: v0.0.1) +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP non-default registry > logs 1`] = ` @@ -1203,19 +1203,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP non-default registry > non default registry 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  not ok Try \`npm config set registry=https://registry.npmjs.org/\` -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry not ok Try \`npm config set registry=https://registry.npmjs.org/\` +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP npm out of date > logs 1`] = ` @@ -1266,19 +1266,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP npm out of date > npm is out of date 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  not ok Use npm v2.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping ok +npm -v not ok Use npm v2.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP ping 404 > logs 1`] = ` @@ -1329,19 +1329,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP ping 404 > ping 404 1`] = ` -Check  Value  Recommendation/Notes -npm ping  not ok 404 404 Not Found - GET https://registry.npmjs.org/-/ping?write=true -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping not ok 404 404 Not Found - GET https://registry.npmjs.org/-/ping?write=true +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP ping 404 in color > logs 1`] = ` @@ -1392,19 +1392,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP ping 404 in color > ping 404 in color 1`] = ` -Check  Value  Recommendation/Notes -npm ping  not ok 404 404 Not Found - GET https://registry.npmjs.org/-/ping?write=true -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping not ok 404 404 Not Found - GET https://registry.npmjs.org/-/ping?write=true +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP ping exception with code > logs 1`] = ` @@ -1455,19 +1455,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP ping exception with code > ping failure 1`] = ` -Check  Value  Recommendation/Notes -npm ping  not ok request to https://registry.npmjs.org/-/ping?write=true failed, reason: Test Error -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping not ok request to https://registry.npmjs.org/-/ping?write=true failed, reason: Test Error +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP ping exception without code > logs 1`] = ` @@ -1518,19 +1518,19 @@ Object { ` exports[`test/lib/commands/doctor.js TAP ping exception without code > ping failure 1`] = ` -Check  Value  Recommendation/Notes -npm ping  not ok request to https://registry.npmjs.org/-/ping?write=true failed, reason: Test Error -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH  ok  {CWD}/global/bin -Perms check on cached files  ok   -Perms check on local node_modules  ok   -Perms check on global node_modules ok   -Perms check on local bin folder  ok   -Perms check on global bin folder  ok   -Verify cache contents  ok  verified 0 tarballs +Check Value Recommendation/Notes +npm ping not ok request to https://registry.npmjs.org/-/ping?write=true failed, reason: Test Error +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global/bin +Perms check on cached files ok +Perms check on local node_modules ok +Perms check on global node_modules ok +Perms check on local bin folder ok +Perms check on global bin folder ok +Verify cache contents ok verified 0 tarballs ` exports[`test/lib/commands/doctor.js TAP silent errors > logs 1`] = ` @@ -1637,11 +1637,11 @@ Object { ` exports[`test/lib/commands/doctor.js TAP windows skips permissions checks > no permissions checks 1`] = ` -Check  Value  Recommendation/Notes -npm ping  ok   -npm -v  ok  current: v1.0.0, latest: v1.0.0 -node -v  ok  current: v1.0.0, recommended: v1.0.0 -npm config get registry  ok  using default registry (https://registry.npmjs.org/) -git executable in PATH  ok  /path/to/git -global bin folder in PATH ok  {CWD}/global +Check Value Recommendation/Notes +npm ping ok +npm -v ok current: v1.0.0, latest: v1.0.0 +node -v ok current: v1.0.0, recommended: v1.0.0 +npm config get registry ok using default registry (https://registry.npmjs.org/) +git executable in PATH ok /path/to/git +global bin folder in PATH ok {CWD}/global ` diff --git a/tap-snapshots/test/lib/docs.js.test.cjs b/tap-snapshots/test/lib/docs.js.test.cjs index 3986b74f72561..d89d5840b7825 100644 --- a/tap-snapshots/test/lib/docs.js.test.cjs +++ b/tap-snapshots/test/lib/docs.js.test.cjs @@ -3202,8 +3202,9 @@ Options: [-E|--save-exact] [-g|--global] [--install-strategy ] [--legacy-bundling] [--global-style] [--omit [--omit ...]] -[--strict-peer-deps] [--prefer-dedupe] [--no-package-lock] [--foreground-scripts] -[--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] +[--strict-peer-deps] [--prefer-dedupe] [--no-package-lock] [--package-lock-only] +[--foreground-scripts] [--ignore-scripts] [--no-audit] [--no-bin-links] +[--no-fund] [--dry-run] [-w|--workspace [-w|--workspace ...]] [-ws|--workspaces] [--include-workspace-root] [--install-links] @@ -3227,6 +3228,7 @@ aliases: add, i, in, ins, inst, insta, instal, isnt, isnta, isntal, isntall #### \`strict-peer-deps\` #### \`prefer-dedupe\` #### \`package-lock\` +#### \`package-lock-only\` #### \`foreground-scripts\` #### \`ignore-scripts\` #### \`audit\` @@ -3291,8 +3293,9 @@ Options: [-E|--save-exact] [-g|--global] [--install-strategy ] [--legacy-bundling] [--global-style] [--omit [--omit ...]] -[--strict-peer-deps] [--prefer-dedupe] [--no-package-lock] [--foreground-scripts] -[--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] +[--strict-peer-deps] [--prefer-dedupe] [--no-package-lock] [--package-lock-only] +[--foreground-scripts] [--ignore-scripts] [--no-audit] [--no-bin-links] +[--no-fund] [--dry-run] [-w|--workspace [-w|--workspace ...]] [-ws|--workspaces] [--include-workspace-root] [--install-links] @@ -3316,6 +3319,7 @@ alias: it #### \`strict-peer-deps\` #### \`prefer-dedupe\` #### \`package-lock\` +#### \`package-lock-only\` #### \`foreground-scripts\` #### \`ignore-scripts\` #### \`audit\` diff --git a/test/lib/docs.js b/test/lib/docs.js index 30279d0e9184c..7ace9b9995701 100644 --- a/test/lib/docs.js +++ b/test/lib/docs.js @@ -44,6 +44,8 @@ t.test('flat options', async t => { 'package.json': JSON.stringify({ version: '1.1.1' }), }, globals: { + 'process.stdout.isTTY': false, + 'process.stderr.isTTY': false, 'process.env': { EDITOR: '{EDITOR}', SHELL: '{SHELL}',