summaryrefslogtreecommitdiff
path: root/deps/npm/lib
diff options
context:
space:
mode:
authorRebecca Turner <me@re-becca.org>2016-05-06 15:22:02 -0700
committerJeremiah Senkpiel <fishrock123@rocketmail.com>2016-05-10 14:45:28 -0400
commit5c36cfc8438d28ee5050ee6d5c383cf9c5b895fb (patch)
tree6165b1b2ee92982a1e157ac29c924b516771780d /deps/npm/lib
parent101dd1ed789175311ab22f9a32dfc480f127bc68 (diff)
downloadandroid-node-v8-5c36cfc8438d28ee5050ee6d5c383cf9c5b895fb.tar.gz
android-node-v8-5c36cfc8438d28ee5050ee6d5c383cf9c5b895fb.tar.bz2
android-node-v8-5c36cfc8438d28ee5050ee6d5c383cf9c5b895fb.zip
deps: upgrade npm to 3.8.9
Contains the following three npm releases: https://github.com/npm/npm/releases/tag/v3.8.7 https://github.com/npm/npm/releases/tag/v3.8.8 https://github.com/npm/npm/releases/tag/v3.8.9 PR-URL: https://github.com/nodejs/node/pull/6664 Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Diffstat (limited to 'deps/npm/lib')
-rw-r--r--deps/npm/lib/adduser.js6
-rw-r--r--deps/npm/lib/bugs.js8
-rw-r--r--deps/npm/lib/config.js20
-rw-r--r--deps/npm/lib/config/cmd-list.js3
-rw-r--r--deps/npm/lib/dedupe.js6
-rw-r--r--deps/npm/lib/dist-tag.js12
-rw-r--r--deps/npm/lib/docs.js9
-rw-r--r--deps/npm/lib/fetch-package-metadata.js7
-rw-r--r--deps/npm/lib/install-test.js9
-rw-r--r--deps/npm/lib/install.js31
-rw-r--r--deps/npm/lib/link.js9
-rw-r--r--deps/npm/lib/ls.js7
-rw-r--r--deps/npm/lib/owner.js13
-rw-r--r--deps/npm/lib/rebuild.js6
-rw-r--r--deps/npm/lib/run-script.js7
-rw-r--r--deps/npm/lib/search.js7
-rw-r--r--deps/npm/lib/star.js8
-rw-r--r--deps/npm/lib/uninstall.js9
-rw-r--r--deps/npm/lib/update.js8
-rw-r--r--deps/npm/lib/utils/lifecycle.js10
-rw-r--r--deps/npm/lib/utils/tar.js74
-rw-r--r--deps/npm/lib/utils/usage.js27
-rw-r--r--deps/npm/lib/view.js11
23 files changed, 166 insertions, 141 deletions
diff --git a/deps/npm/lib/adduser.js b/deps/npm/lib/adduser.js
index b012371b33..3a7425d471 100644
--- a/deps/npm/lib/adduser.js
+++ b/deps/npm/lib/adduser.js
@@ -4,13 +4,17 @@ var log = require('npmlog')
var npm = require('./npm.js')
var read = require('read')
var userValidate = require('npm-user-validate')
+var usage = require('./utils/usage')
var crypto
try {
crypto = require('crypto')
} catch (ex) {}
-adduser.usage = 'npm adduser [--registry=url] [--scope=@orgname] [--always-auth]'
+adduser.usage = usage(
+ 'adduser',
+ 'npm adduser [--registry=url] [--scope=@orgname] [--always-auth]'
+)
function adduser (args, cb) {
if (!crypto) {
diff --git a/deps/npm/lib/bugs.js b/deps/npm/lib/bugs.js
index d42e68faa5..003ce7f8cb 100644
--- a/deps/npm/lib/bugs.js
+++ b/deps/npm/lib/bugs.js
@@ -1,11 +1,15 @@
module.exports = bugs
-bugs.usage = 'npm bugs [<pkgname>]'
-
var npm = require('./npm.js')
var log = require('npmlog')
var opener = require('opener')
var fetchPackageMetadata = require('./fetch-package-metadata.js')
+var usage = require('./utils/usage')
+
+bugs.usage = usage(
+ 'bugs',
+ 'npm bugs [<pkgname>]'
+)
bugs.completion = function (opts, cb) {
// FIXME: there used to be registry completion here, but it stopped making
diff --git a/deps/npm/lib/config.js b/deps/npm/lib/config.js
index 65bd9feced..80958ec5fc 100644
--- a/deps/npm/lib/config.js
+++ b/deps/npm/lib/config.js
@@ -1,14 +1,5 @@
-
module.exports = config
-config.usage = 'npm config set <key> <value>' +
- '\nnpm config get [<key>]' +
- '\nnpm config delete <key>' +
- '\nnpm config list' +
- '\nnpm config edit' +
- '\nnpm set <key> <value>' +
- '\nnpm get [<key>]'
-
var log = require('npmlog')
var npm = require('./npm.js')
var npmconf = require('./config/core.js')
@@ -19,7 +10,18 @@ var ini = require('ini')
var editor = require('editor')
var os = require('os')
var umask = require('./utils/umask')
+var usage = require('./utils/usage')
+config.usage = usage(
+ 'config',
+ 'npm config set <key> <value>' +
+ '\nnpm config get [<key>]' +
+ '\nnpm config delete <key>' +
+ '\nnpm config list' +
+ '\nnpm config edit' +
+ '\nnpm set <key> <value>' +
+ '\nnpm get [<key>]'
+)
config.completion = function (opts, cb) {
var argv = opts.conf.argv.remain
if (argv[1] !== 'config') argv.unshift('config')
diff --git a/deps/npm/lib/config/cmd-list.js b/deps/npm/lib/config/cmd-list.js
index 9cf975c54a..34ebeed448 100644
--- a/deps/npm/lib/config/cmd-list.js
+++ b/deps/npm/lib/config/cmd-list.js
@@ -16,7 +16,8 @@ var shorthands = {
'tst': 'test',
't': 'test',
'ddp': 'dedupe',
- 'v': 'view'
+ 'v': 'view',
+ 'run': 'run-script'
}
var affordances = {
diff --git a/deps/npm/lib/dedupe.js b/deps/npm/lib/dedupe.js
index 3159d41391..b99a9a1fd1 100644
--- a/deps/npm/lib/dedupe.js
+++ b/deps/npm/lib/dedupe.js
@@ -19,11 +19,15 @@ var sortActions = require('./install/diff-trees.js').sortActions
var moduleName = require('./utils/module-name.js')
var packageId = require('./utils/package-id.js')
var childPath = require('./utils/child-path.js')
+var usage = require('./utils/usage')
module.exports = dedupe
module.exports.Deduper = Deduper
-dedupe.usage = 'npm dedupe'
+dedupe.usage = usage(
+ 'dedupe',
+ 'npm dedupe'
+)
function dedupe (args, cb) {
validate('AF', arguments)
diff --git a/deps/npm/lib/dist-tag.js b/deps/npm/lib/dist-tag.js
index d0bae9ab44..0e9d914d39 100644
--- a/deps/npm/lib/dist-tag.js
+++ b/deps/npm/lib/dist-tag.js
@@ -7,10 +7,14 @@ var semver = require('semver')
var npm = require('./npm.js')
var mapToRegistry = require('./utils/map-to-registry.js')
var readLocalPkg = require('./utils/read-local-package.js')
-
-distTag.usage = 'npm dist-tag add <pkg>@<version> [<tag>]' +
- '\nnpm dist-tag rm <pkg> <tag>' +
- '\nnpm dist-tag ls [<pkg>]'
+var usage = require('./utils/usage')
+
+distTag.usage = usage(
+ 'dist-tag',
+ 'npm dist-tag add <pkg>@<version> [<tag>]' +
+ '\nnpm dist-tag rm <pkg> <tag>' +
+ '\nnpm dist-tag ls [<pkg>]'
+)
distTag.completion = function (opts, cb) {
var argv = opts.conf.argv.remain
diff --git a/deps/npm/lib/docs.js b/deps/npm/lib/docs.js
index ea4bd56107..19dcce163c 100644
--- a/deps/npm/lib/docs.js
+++ b/deps/npm/lib/docs.js
@@ -1,13 +1,16 @@
module.exports = docs
-docs.usage = 'npm docs <pkgname>' +
- '\nnpm docs .'
-
var npm = require('./npm.js')
var opener = require('opener')
var log = require('npmlog')
var fetchPackageMetadata = require('./fetch-package-metadata.js')
+var usage = require('./utils/usage')
+docs.usage = usage(
+ 'docs',
+ 'npm docs <pkgname>' +
+ '\nnpm docs .'
+)
docs.completion = function (opts, cb) {
// FIXME: there used to be registry completion here, but it stopped making
// sense somewhere around 50,000 packages on the registry
diff --git a/deps/npm/lib/fetch-package-metadata.js b/deps/npm/lib/fetch-package-metadata.js
index 9e62cacd91..8965a561aa 100644
--- a/deps/npm/lib/fetch-package-metadata.js
+++ b/deps/npm/lib/fetch-package-metadata.js
@@ -111,9 +111,10 @@ function fetchNamedPackageData (dep, next) {
npm.registry.get(url, {auth: auth}, pulseTillDone('fetchMetadata', iferr(next, pickVersionFromRegistryDocument)))
}
function returnAndAddMetadata (pkg) {
- delete pkg._from
- delete pkg._resolved
- delete pkg._shasum
+ pkg._from = dep.raw
+ pkg._resolved = pkg.dist.tarball
+ pkg._shasum = pkg.dist.shasum
+
next(null, pkg)
}
function pickVersionFromRegistryDocument (pkg) {
diff --git a/deps/npm/lib/install-test.js b/deps/npm/lib/install-test.js
index feadb25d69..f66dfd4015 100644
--- a/deps/npm/lib/install-test.js
+++ b/deps/npm/lib/install-test.js
@@ -6,10 +6,13 @@
module.exports = installTest
var install = require('./install.js')
var test = require('./test.js')
+var usage = require('./utils/usage')
-installTest.usage = '\nnpm install-test [args]' +
- '\nSame args as `npm install`' +
- '\n\nalias: npm it'
+installTest.usage = usage(
+ 'install-test',
+ '\nnpm install-test [args]' +
+ '\nSame args as `npm install`'
+)
installTest.completion = install.completion
diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js
index 2f8bff1ce3..53153e1463 100644
--- a/deps/npm/lib/install.js
+++ b/deps/npm/lib/install.js
@@ -15,18 +15,22 @@
module.exports = install
module.exports.Installer = Installer
-install.usage = '\nnpm install (with no args, in package dir)' +
- '\nnpm install [<@scope>/]<pkg>' +
- '\nnpm install [<@scope>/]<pkg>@<tag>' +
- '\nnpm install [<@scope>/]<pkg>@<version>' +
- '\nnpm install [<@scope>/]<pkg>@<version range>' +
- '\nnpm install <folder>' +
- '\nnpm install <tarball file>' +
- '\nnpm install <tarball url>' +
- '\nnpm install <git:// url>' +
- '\nnpm install <github username>/<github project>' +
- '\n\nalias: npm i' +
- '\ncommon options: [--save|--save-dev|--save-optional] [--save-exact]'
+var usage = require('./utils/usage')
+
+install.usage = usage(
+ 'install',
+ '\nnpm install (with no args, in package dir)' +
+ '\nnpm install [<@scope>/]<pkg>' +
+ '\nnpm install [<@scope>/]<pkg>@<tag>' +
+ '\nnpm install [<@scope>/]<pkg>@<version>' +
+ '\nnpm install [<@scope>/]<pkg>@<version range>' +
+ '\nnpm install <folder>' +
+ '\nnpm install <tarball file>' +
+ '\nnpm install <tarball url>' +
+ '\nnpm install <git:// url>' +
+ '\nnpm install <github username>/<github project>',
+ '[--save|--save-dev|--save-optional] [--save-exact]'
+)
install.completion = function (opts, cb) {
validate('OF', arguments)
@@ -578,6 +582,9 @@ Installer.prototype.readLocalPackageData = function (cb) {
readPackageTree(self.where, iferr(cb, function (currentTree) {
self.currentTree = currentTree
self.currentTree.warnings = []
+ if (currentTree.error && currentTree.error.code === 'EJSONPARSE') {
+ return cb(currentTree.error)
+ }
if (!self.noPackageJsonOk && !currentTree.package) {
log.error('install', "Couldn't read dependencies")
var er = new Error("ENOENT, open '" + path.join(self.where, 'package.json') + "'")
diff --git a/deps/npm/lib/link.js b/deps/npm/lib/link.js
index 7ee518419f..3624a16c98 100644
--- a/deps/npm/lib/link.js
+++ b/deps/npm/lib/link.js
@@ -10,12 +10,15 @@ var chain = require('slide').chain
var path = require('path')
var build = require('./build.js')
var npa = require('npm-package-arg')
+var usage = require('./utils/usage')
module.exports = link
-link.usage = 'npm link (in package dir)' +
- '\nnpm link [<@scope>/]<pkg>[@<version>]' +
- '\n\nalias: npm ln'
+link.usage = usage(
+ 'link',
+ 'npm link (in package dir)' +
+ '\nnpm link [<@scope>/]<pkg>[@<version>]'
+)
link.completion = function (opts, cb) {
var dir = npm.globalDir
diff --git a/deps/npm/lib/ls.js b/deps/npm/lib/ls.js
index b5dc44888e..4a71c54e1b 100644
--- a/deps/npm/lib/ls.js
+++ b/deps/npm/lib/ls.js
@@ -19,9 +19,12 @@ var npm = require('./npm.js')
var mutateIntoLogicalTree = require('./install/mutate-into-logical-tree.js')
var recalculateMetadata = require('./install/deps.js').recalculateMetadata
var packageId = require('./utils/package-id.js')
+var usage = require('./utils/usage')
-ls.usage = 'npm ls [[<@scope>/]<pkg> ...]' +
- '\n\naliases: list, la, ll'
+ls.usage = usage(
+ 'ls',
+ 'npm ls [[<@scope>/]<pkg> ...]'
+)
ls.completion = require('./utils/completion/installed-deep.js')
diff --git a/deps/npm/lib/owner.js b/deps/npm/lib/owner.js
index f32f405dd1..2cc3eef3b9 100644
--- a/deps/npm/lib/owner.js
+++ b/deps/npm/lib/owner.js
@@ -1,14 +1,17 @@
module.exports = owner
-owner.usage = 'npm owner add <user> [<@scope>/]<pkg>' +
- '\nnpm owner rm <user> [<@scope>/]<pkg>' +
- '\nnpm owner ls [<@scope>/]<pkg>'
-
var npm = require('./npm.js')
var log = require('npmlog')
var mapToRegistry = require('./utils/map-to-registry.js')
var readLocalPkg = require('./utils/read-local-package.js')
-
+var usage = require('./utils/usage')
+
+owner.usage = usage(
+ 'owner',
+ 'npm owner add <user> [<@scope>/]<pkg>' +
+ '\nnpm owner rm <user> [<@scope>/]<pkg>' +
+ '\nnpm owner ls [<@scope>/]<pkg>'
+)
owner.completion = function (opts, cb) {
var argv = opts.conf.argv.remain
if (argv.length > 4) return cb()
diff --git a/deps/npm/lib/rebuild.js b/deps/npm/lib/rebuild.js
index 0e36c6361e..29492c27f2 100644
--- a/deps/npm/lib/rebuild.js
+++ b/deps/npm/lib/rebuild.js
@@ -6,8 +6,12 @@ var semver = require('semver')
var log = require('npmlog')
var npm = require('./npm.js')
var npa = require('npm-package-arg')
+var usage = require('./utils/usage')
-rebuild.usage = 'npm rebuild [[<@scope>/<name>]...]'
+rebuild.usage = usage(
+ 'rebuild',
+ 'npm rebuild [[<@scope>/<name>]...]'
+)
rebuild.completion = require('./utils/completion/installed-deep.js')
diff --git a/deps/npm/lib/run-script.js b/deps/npm/lib/run-script.js
index ef5e656004..f9c6872aa9 100644
--- a/deps/npm/lib/run-script.js
+++ b/deps/npm/lib/run-script.js
@@ -6,9 +6,12 @@ var path = require('path')
var readJson = require('read-package-json')
var log = require('npmlog')
var chain = require('slide').chain
+var usage = require('./utils/usage')
-runScript.usage = 'npm run-script <command> [-- <args>...]' +
- '\n\nalias: npm run'
+runScript.usage = usage(
+ 'run-script',
+ 'npm run-script <command> [-- <args>...]'
+)
runScript.completion = function (opts, cb) {
// see if there's already a package specified.
diff --git a/deps/npm/lib/search.js b/deps/npm/lib/search.js
index bf1f6499a7..d71102ac3e 100644
--- a/deps/npm/lib/search.js
+++ b/deps/npm/lib/search.js
@@ -4,9 +4,12 @@ module.exports = exports = search
var npm = require('./npm.js')
var columnify = require('columnify')
var updateIndex = require('./cache/update-index.js')
+var usage = require('./utils/usage')
-search.usage = 'npm search [--long] [search terms ...]' +
- '\n\naliases: s, se'
+search.usage = usage(
+ 'search',
+ 'npm search [--long] [search terms ...]'
+)
search.completion = function (opts, cb) {
var compl = {}
diff --git a/deps/npm/lib/star.js b/deps/npm/lib/star.js
index 29c4037d0c..ce141688b9 100644
--- a/deps/npm/lib/star.js
+++ b/deps/npm/lib/star.js
@@ -4,9 +4,13 @@ var npm = require('./npm.js')
var log = require('npmlog')
var asyncMap = require('slide').asyncMap
var mapToRegistry = require('./utils/map-to-registry.js')
+var usage = require('./utils/usage')
-star.usage = 'npm star [<pkg>...]\n' +
- 'npm unstar [<pkg>...]'
+star.usage = usage(
+ 'star',
+ 'npm star [<pkg>...]\n' +
+ 'npm unstar [<pkg>...]'
+)
star.completion = function (opts, cb) {
// FIXME: there used to be registry completion here, but it stopped making
diff --git a/deps/npm/lib/uninstall.js b/deps/npm/lib/uninstall.js
index 03a0a56303..9a05e6697f 100644
--- a/deps/npm/lib/uninstall.js
+++ b/deps/npm/lib/uninstall.js
@@ -4,9 +4,6 @@
module.exports = uninstall
module.exports.Uninstaller = Uninstaller
-uninstall.usage = 'npm uninstall [<@scope>/]<pkg>[@<version>]... [--save|--save-dev|--save-optional]' +
- '\n\naliases: remove, rm, r, un, unlink'
-
var util = require('util')
var path = require('path')
var validate = require('aproba')
@@ -18,6 +15,12 @@ var getSaveType = require('./install/save.js').getSaveType
var removeDeps = require('./install/deps.js').removeDeps
var loadExtraneous = require('./install/deps.js').loadExtraneous
var log = require('npmlog')
+var usage = require('./utils/usage')
+
+uninstall.usage = usage(
+ 'uninstall',
+ 'npm uninstall [<@scope>/]<pkg>[@<version>]... [--save|--save-dev|--save-optional]'
+)
uninstall.completion = require('./utils/completion/installed-shallow.js')
diff --git a/deps/npm/lib/update.js b/deps/npm/lib/update.js
index f09b5accad..2c1d1e82a8 100644
--- a/deps/npm/lib/update.js
+++ b/deps/npm/lib/update.js
@@ -1,12 +1,16 @@
module.exports = update
-update.usage = 'npm update [-g] [<pkg>...]'
-
var url = require('url')
var log = require('npmlog')
var chain = require('slide').chain
var npm = require('./npm.js')
var Installer = require('./install.js').Installer
+var usage = require('./utils/usage')
+
+update.usage = usage(
+ 'update',
+ 'npm update [-g] [<pkg>...]'
+)
update.completion = npm.commands.outdated.completion
diff --git a/deps/npm/lib/utils/lifecycle.js b/deps/npm/lib/utils/lifecycle.js
index b29248d953..b5893ff6a4 100644
--- a/deps/npm/lib/utils/lifecycle.js
+++ b/deps/npm/lib/utils/lifecycle.js
@@ -13,6 +13,7 @@ var Stream = require('stream').Stream
var PATH = 'PATH'
var uidNumber = require('uid-number')
var umask = require('./umask')
+var usage = require('./usage')
// windows calls it's path 'Path' usually, but this is not guaranteed.
if (process.platform === 'win32') {
@@ -46,7 +47,12 @@ function lifecycle (pkg, stage, wd, unsafe, failOk, cb) {
if (!pkg) return cb(new Error('Invalid package data'))
log.info('lifecycle', logid(pkg, stage), pkg._id)
- if (!pkg.scripts || npm.config.get('ignore-scripts')) pkg.scripts = {}
+ if (!pkg.scripts) pkg.scripts = {}
+
+ if (npm.config.get('ignore-scripts')) {
+ log.info('lifecycle', logid(pkg, stage), 'ignored because ignore-scripts is set to true', pkg._id)
+ pkg.scripts = {}
+ }
validWd(wd || path.resolve(npm.dir, pkg.name), function (er, wd) {
if (er) return cb(er)
@@ -386,7 +392,7 @@ function cmd (stage) {
function CMD (args, cb) {
npm.commands['run-script']([stage].concat(args), cb)
}
- CMD.usage = 'npm ' + stage + ' [-- <args>]'
+ CMD.usage = usage(stage, 'npm ' + stage + ' [-- <args>]')
var installedShallow = require('./completion/installed-shallow.js')
CMD.completion = function (opts, cb) {
installedShallow(opts, function (d) {
diff --git a/deps/npm/lib/utils/tar.js b/deps/npm/lib/utils/tar.js
index 8eb2311d09..f8ea10f511 100644
--- a/deps/npm/lib/utils/tar.js
+++ b/deps/npm/lib/utils/tar.js
@@ -61,80 +61,6 @@ function BundledPacker (props) {
}
inherits(BundledPacker, Packer)
-BundledPacker.prototype.applyIgnores = function (entry, partial, entryObj) {
- // package.json files can never be ignored.
- if (entry === 'package.json') return true
-
- // readme files should never be ignored.
- if (entry.match(/^readme(\.[^\.]*)$/i)) return true
-
- // license files should never be ignored.
- if (entry.match(/^(license|licence)(\.[^\.]*)?$/i)) return true
-
- // changelogs should never be ignored.
- if (entry.match(/^(changes|changelog|history)(\.[^\.]*)?$/i)) return true
-
- // special rules. see below.
- if (entry === 'node_modules' && this.packageRoot) return true
-
- // some files are *never* allowed under any circumstances
- if (entry === '.git' ||
- entry === '.lock-wscript' ||
- entry.match(/^\.wafpickle-[0-9]+$/) ||
- entry === 'CVS' ||
- entry === '.svn' ||
- entry === '.hg' ||
- entry.match(/^\..*\.swp$/) ||
- entry === '.DS_Store' ||
- entry.match(/^\._/) ||
- entry === 'npm-debug.log'
- ) {
- return false
- }
-
- // in a node_modules folder, we only include bundled dependencies
- // also, prevent packages in node_modules from being affected
- // by rules set in the containing package, so that
- // bundles don't get busted.
- // Also, once in a bundle, everything is installed as-is
- // To prevent infinite cycles in the case of cyclic deps that are
- // linked with npm link, even in a bundle, deps are only bundled
- // if they're not already present at a higher level.
- if (this.bundleMagic) {
- // bubbling up. stop here and allow anything the bundled pkg allows
- if (entry.indexOf('/') !== -1) return true
-
- // never include the .bin. It's typically full of platform-specific
- // stuff like symlinks and .cmd files anyway.
- if (entry === '.bin') return false
-
- // the package root.
- var p = this.parent
- // the package before this one.
- var pp = p && p.parent
-
- // if this entry has already been bundled, and is a symlink,
- // and it is the *same* symlink as this one, then exclude it.
- if (pp && pp.bundleLinks && this.bundleLinks &&
- pp.bundleLinks[entry] &&
- pp.bundleLinks[entry] === this.bundleLinks[entry]) {
- return false
- }
-
- // since it's *not* a symbolic link, if we're *already* in a bundle,
- // then we should include everything.
- if (pp && pp.package && pp.basename === 'node_modules') {
- return true
- }
-
- // only include it at this point if it's a bundleDependency
- return this.isBundled(entry)
- }
- // if (this.bundled) return true
-
- return Packer.prototype.applyIgnores.call(this, entry, partial, entryObj)
-}
-
function nameMatch (name) { return function (other) { return name === moduleName(other) } }
function pack_ (tarball, folder, tree, flatTree, pkg, cb) {
diff --git a/deps/npm/lib/utils/usage.js b/deps/npm/lib/utils/usage.js
new file mode 100644
index 0000000000..261d84ee8e
--- /dev/null
+++ b/deps/npm/lib/utils/usage.js
@@ -0,0 +1,27 @@
+'use strict'
+var aliases = require('../config/cmd-list').aliases
+
+module.exports = function usage (cmd, txt, opt) {
+ var post = Object.keys(aliases).reduce(function (p, c) {
+ var val = aliases[c]
+ if (val !== cmd) return p
+ return p.concat(c)
+ }, [])
+
+ if (opt || post.length > 0) txt += '\n\n'
+
+ if (post.length === 1) {
+ txt += 'aliase: '
+ txt += post.join(', ')
+ } else if (post.length > 1) {
+ txt += 'aliases: '
+ txt += post.join(', ')
+ }
+
+ if (opt) {
+ if (post.length > 0) txt += '\n'
+ txt += 'common options: ' + opt
+ }
+
+ return txt
+}
diff --git a/deps/npm/lib/view.js b/deps/npm/lib/view.js
index e6fa21655e..79c440426b 100644
--- a/deps/npm/lib/view.js
+++ b/deps/npm/lib/view.js
@@ -1,8 +1,5 @@
// npm view [pkg [pkg ...]]
-
module.exports = view
-view.usage = 'npm view [<@scope>/]<pkg>[@<version>] [<field>[.subfield]...]' +
- '\n\naliases: info, show, v'
var npm = require('./npm.js')
var readJson = require('read-package-json')
@@ -12,6 +9,12 @@ var semver = require('semver')
var mapToRegistry = require('./utils/map-to-registry.js')
var npa = require('npm-package-arg')
var path = require('path')
+var usage = require('./utils/usage')
+
+view.usage = usage(
+ 'view',
+ 'npm view [<@scope>/]<pkg>[@<version>] [<field>[.subfield]...]'
+)
view.completion = function (opts, cb) {
if (opts.conf.argv.remain.length <= 2) {
@@ -246,7 +249,7 @@ function printData (data, name, cb) {
versions.forEach(function (v) {
var fields = Object.keys(data[v])
includeFields = includeFields || (fields.length > 1)
- msgJson.push({})
+ if (npm.config.get('json')) msgJson.push({})
fields.forEach(function (f) {
var d = cleanup(data[v][f])
if (fields.length === 1 && npm.config.get('json')) {