From 5c36cfc8438d28ee5050ee6d5c383cf9c5b895fb Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Fri, 6 May 2016 15:22:02 -0700 Subject: 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 Reviewed-By: Jeremiah Senkpiel --- deps/npm/lib/adduser.js | 6 ++- deps/npm/lib/bugs.js | 8 +++- deps/npm/lib/config.js | 20 ++++----- deps/npm/lib/config/cmd-list.js | 3 +- deps/npm/lib/dedupe.js | 6 ++- deps/npm/lib/dist-tag.js | 12 ++++-- deps/npm/lib/docs.js | 9 +++-- deps/npm/lib/fetch-package-metadata.js | 7 ++-- deps/npm/lib/install-test.js | 9 +++-- deps/npm/lib/install.js | 31 ++++++++------ deps/npm/lib/link.js | 9 +++-- deps/npm/lib/ls.js | 7 +++- deps/npm/lib/owner.js | 13 +++--- deps/npm/lib/rebuild.js | 6 ++- deps/npm/lib/run-script.js | 7 +++- deps/npm/lib/search.js | 7 +++- deps/npm/lib/star.js | 8 +++- deps/npm/lib/uninstall.js | 9 +++-- deps/npm/lib/update.js | 8 +++- deps/npm/lib/utils/lifecycle.js | 10 ++++- deps/npm/lib/utils/tar.js | 74 ---------------------------------- deps/npm/lib/utils/usage.js | 27 +++++++++++++ deps/npm/lib/view.js | 11 +++-- 23 files changed, 166 insertions(+), 141 deletions(-) create mode 100644 deps/npm/lib/utils/usage.js (limited to 'deps/npm/lib') 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 []' - 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 []' +) 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 ' + - '\nnpm config get []' + - '\nnpm config delete ' + - '\nnpm config list' + - '\nnpm config edit' + - '\nnpm set ' + - '\nnpm get []' - 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 ' + + '\nnpm config get []' + + '\nnpm config delete ' + + '\nnpm config list' + + '\nnpm config edit' + + '\nnpm set ' + + '\nnpm get []' +) 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 @ []' + - '\nnpm dist-tag rm ' + - '\nnpm dist-tag ls []' +var usage = require('./utils/usage') + +distTag.usage = usage( + 'dist-tag', + 'npm dist-tag add @ []' + + '\nnpm dist-tag rm ' + + '\nnpm dist-tag ls []' +) 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 ' + - '\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 ' + + '\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>/]' + - '\nnpm install [<@scope>/]@' + - '\nnpm install [<@scope>/]@' + - '\nnpm install [<@scope>/]@' + - '\nnpm install ' + - '\nnpm install ' + - '\nnpm install ' + - '\nnpm install ' + - '\nnpm install /' + - '\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>/]' + + '\nnpm install [<@scope>/]@' + + '\nnpm install [<@scope>/]@' + + '\nnpm install [<@scope>/]@' + + '\nnpm install ' + + '\nnpm install ' + + '\nnpm install ' + + '\nnpm install ' + + '\nnpm install /', + '[--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>/][@]' + - '\n\nalias: npm ln' +link.usage = usage( + 'link', + 'npm link (in package dir)' + + '\nnpm link [<@scope>/][@]' +) 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>/] ...]' + - '\n\naliases: list, la, ll' +ls.usage = usage( + 'ls', + 'npm ls [[<@scope>/] ...]' +) 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 [<@scope>/]' + - '\nnpm owner rm [<@scope>/]' + - '\nnpm owner ls [<@scope>/]' - 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 [<@scope>/]' + + '\nnpm owner rm [<@scope>/]' + + '\nnpm owner ls [<@scope>/]' +) 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>/]...]' +rebuild.usage = usage( + 'rebuild', + 'npm rebuild [[<@scope>/]...]' +) 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 [-- ...]' + - '\n\nalias: npm run' +runScript.usage = usage( + 'run-script', + 'npm run-script [-- ...]' +) 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 [...]\n' + - 'npm unstar [...]' +star.usage = usage( + 'star', + 'npm star [...]\n' + + 'npm unstar [...]' +) 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>/][@]... [--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>/][@]... [--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] [...]' - 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] [...]' +) 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 + ' [-- ]' + CMD.usage = usage(stage, 'npm ' + stage + ' [-- ]') 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>/][@] [[.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>/][@] [[.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')) { -- cgit v1.2.3