diff options
author | Ruy Adorno <ruyadorno@hotmail.com> | 2020-11-17 23:37:44 +0300 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2020-11-20 16:27:50 +0300 |
commit | 8d381c0ff0e1cc8e2aa64e202a514f0022264907 (patch) | |
tree | 1a978e3b9961d1c5a9bca7a60d6cdb6eb6dafac8 /deps/npm/lib | |
parent | 80a83d9e244a9c129e2e6ae941e41f83dde84edb (diff) |
deps: upgrade npm to 7.0.12
PR-URL: https://github.com/nodejs/node/pull/36153
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Diffstat (limited to 'deps/npm/lib')
-rw-r--r-- | deps/npm/lib/audit.js | 4 | ||||
-rw-r--r-- | deps/npm/lib/ci.js | 4 | ||||
-rw-r--r-- | deps/npm/lib/dedupe.js | 4 | ||||
-rw-r--r-- | deps/npm/lib/init.js | 15 | ||||
-rw-r--r-- | deps/npm/lib/install.js | 63 | ||||
-rw-r--r-- | deps/npm/lib/link.js | 6 | ||||
-rw-r--r-- | deps/npm/lib/prune.js | 4 | ||||
-rw-r--r-- | deps/npm/lib/run-script.js | 2 | ||||
-rw-r--r-- | deps/npm/lib/uninstall.js | 4 | ||||
-rw-r--r-- | deps/npm/lib/update.js | 4 | ||||
-rw-r--r-- | deps/npm/lib/utils/reify-finish.js | 31 |
11 files changed, 85 insertions, 56 deletions
diff --git a/deps/npm/lib/audit.js b/deps/npm/lib/audit.js index e77beab1eff..cb8ab5b3a43 100644 --- a/deps/npm/lib/audit.js +++ b/deps/npm/lib/audit.js @@ -2,7 +2,7 @@ const Arborist = require('@npmcli/arborist') const auditReport = require('npm-audit-report') const npm = require('./npm.js') const output = require('./utils/output.js') -const reifyOutput = require('./utils/reify-output.js') +const reifyFinish = require('./utils/reify-finish.js') const auditError = require('./utils/audit-error.js') const audit = async args => { @@ -14,7 +14,7 @@ const audit = async args => { const fix = args[0] === 'fix' await arb.audit({ fix }) if (fix) - reifyOutput(arb) + await reifyFinish(arb) else { // will throw if there's an error, because this is an audit command auditError(arb.auditReport) diff --git a/deps/npm/lib/ci.js b/deps/npm/lib/ci.js index a1632e7e980..1255fbc2646 100644 --- a/deps/npm/lib/ci.js +++ b/deps/npm/lib/ci.js @@ -1,7 +1,7 @@ const util = require('util') const Arborist = require('@npmcli/arborist') const rimraf = util.promisify(require('rimraf')) -const reifyOutput = require('./utils/reify-output.js') +const reifyFinish = require('./utils/reify-finish.js') const log = require('npmlog') const npm = require('./npm.js') @@ -35,7 +35,7 @@ const ci = async () => { ]) // npm ci should never modify the lockfile or package.json await arb.reify({ ...npm.flatOptions, save: false }) - reifyOutput(arb) + await reifyFinish(arb) } module.exports = Object.assign(cmd, { completion, usage }) diff --git a/deps/npm/lib/dedupe.js b/deps/npm/lib/dedupe.js index a08c9f3f8f3..fe8243e21e4 100644 --- a/deps/npm/lib/dedupe.js +++ b/deps/npm/lib/dedupe.js @@ -2,7 +2,7 @@ const npm = require('./npm.js') const Arborist = require('@npmcli/arborist') const usageUtil = require('./utils/usage.js') -const reifyOutput = require('./utils/reify-output.js') +const reifyFinish = require('./utils/reify-finish.js') const usage = usageUtil('dedupe', 'npm dedupe') const completion = require('./utils/completion/none.js') @@ -18,7 +18,7 @@ const dedupe = async (args) => { dryRun, }) await arb.dedupe(npm.flatOptions) - reifyOutput(arb) + await reifyFinish(arb) } module.exports = Object.assign(cmd, { usage, completion }) diff --git a/deps/npm/lib/init.js b/deps/npm/lib/init.js index e805a2eda77..ed476ef38cb 100644 --- a/deps/npm/lib/init.js +++ b/deps/npm/lib/init.js @@ -1,11 +1,11 @@ -// initialize a package.json file - -const usageUtil = require('./utils/usage.js') -const completion = require('./utils/completion/none.js') +'use strict' +const initJson = require('init-package-json') const npa = require('npm-package-arg') + const npm = require('./npm.js') -const initJson = require('init-package-json') +const usageUtil = require('./utils/usage.js') +const completion = require('./utils/completion/none.js') const output = require('./utils/output.js') const usage = usageUtil( @@ -78,11 +78,12 @@ const init = async args => { npm.log.warn('init', 'canceled') return res() } - npm.log.info('init', 'written successfully') if (er) rej(er) - else + else { + npm.log.info('init', 'written successfully') res(data) + } }) }) } diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js index 5f04fcd4f9d..f621c85c23e 100644 --- a/deps/npm/lib/install.js +++ b/deps/npm/lib/install.js @@ -6,13 +6,15 @@ const util = require('util') const readdir = util.promisify(fs.readdir) const npm = require('./npm.js') const usageUtil = require('./utils/usage.js') -const reifyOutput = require('./utils/reify-output.js') +const reifyFinish = require('./utils/reify-finish.js') const log = require('npmlog') const { resolve, join } = require('path') const Arborist = require('@npmcli/arborist') const runScript = require('@npmcli/run-script') -const install = async (args, cb) => { +const cmd = async (args, cb) => install(args).then(() => cb()).catch(cb) + +const install = async args => { // the /path/to/node_modules/.. const globalTop = resolve(npm.globalDir, '..') const { ignoreScripts, global: isGlobalInstall } = npm.flatOptions @@ -34,38 +36,33 @@ const install = async (args, cb) => { path: where, }) - try { - await arb.reify({ - ...npm.flatOptions, - add: args, - }) - if (!args.length && !isGlobalInstall && !ignoreScripts) { - const { scriptShell } = npm.flatOptions - const scripts = [ - 'preinstall', - 'install', - 'postinstall', - 'prepublish', // XXX should we remove this finally?? - 'preprepare', - 'prepare', - 'postprepare', - ] - for (const event of scripts) { - await runScript({ - path: where, - args: [], - scriptShell, - stdio: 'inherit', - stdioString: true, - event, - }) - } + await arb.reify({ + ...npm.flatOptions, + add: args, + }) + if (!args.length && !isGlobalInstall && !ignoreScripts) { + const { scriptShell } = npm.flatOptions + const scripts = [ + 'preinstall', + 'install', + 'postinstall', + 'prepublish', // XXX should we remove this finally?? + 'preprepare', + 'prepare', + 'postprepare', + ] + for (const event of scripts) { + await runScript({ + path: where, + args: [], + scriptShell, + stdio: 'inherit', + stdioString: true, + event, + }) } - reifyOutput(arb) - cb() - } catch (er) { - cb(er) } + await reifyFinish(arb) } const usage = usageUtil( @@ -144,4 +141,4 @@ const completion = async (opts, cb) => { cb() } -module.exports = Object.assign(install, { usage, completion }) +module.exports = Object.assign(cmd, { usage, completion }) diff --git a/deps/npm/lib/link.js b/deps/npm/lib/link.js index d7303fd086c..bee44d43a7f 100644 --- a/deps/npm/lib/link.js +++ b/deps/npm/lib/link.js @@ -10,7 +10,7 @@ const semver = require('semver') const npm = require('./npm.js') const usageUtil = require('./utils/usage.js') -const reifyOutput = require('./utils/reify-output.js') +const reifyFinish = require('./utils/reify-finish.js') const completion = (opts, cb) => { const dir = npm.globalDir @@ -122,7 +122,7 @@ const linkInstall = async args => { add: names.map(l => `file:${resolve(globalTop, 'node_modules', l)}`), }) - reifyOutput(localArb) + await reifyFinish(localArb) } const linkPkg = async () => { @@ -133,7 +133,7 @@ const linkPkg = async () => { global: true, }) await arb.reify({ add: [`file:${npm.prefix}`] }) - reifyOutput(arb) + await reifyFinish(arb) } module.exports = Object.assign(cmd, { completion, usage }) diff --git a/deps/npm/lib/prune.js b/deps/npm/lib/prune.js index aa2ed378088..ea6ed4108ab 100644 --- a/deps/npm/lib/prune.js +++ b/deps/npm/lib/prune.js @@ -3,7 +3,7 @@ const npm = require('./npm.js') const Arborist = require('@npmcli/arborist') const usageUtil = require('./utils/usage.js') -const reifyOutput = require('./utils/reify-output.js') +const reifyFinish = require('./utils/reify-finish.js') const usage = usageUtil('prune', 'npm prune [[<@scope>/]<pkg>...] [--production]' @@ -19,7 +19,7 @@ const prune = async () => { path: where, }) await arb.prune(npm.flatOptions) - reifyOutput(arb) + await reifyFinish(arb) } module.exports = Object.assign(cmd, { usage, completion }) diff --git a/deps/npm/lib/run-script.js b/deps/npm/lib/run-script.js index 568a5712f6a..c095e6decd4 100644 --- a/deps/npm/lib/run-script.js +++ b/deps/npm/lib/run-script.js @@ -46,7 +46,7 @@ const runScript = async (args) => { pkg.scripts = scripts - if (!scripts[event] && !(event === 'start' && await isServerPackage(path))) { + if (!Object.prototype.hasOwnProperty.call(scripts, event) && !(event === 'start' && await isServerPackage(path))) { if (npm.config.get('if-present')) return diff --git a/deps/npm/lib/uninstall.js b/deps/npm/lib/uninstall.js index ec997ae6457..dbaa992f500 100644 --- a/deps/npm/lib/uninstall.js +++ b/deps/npm/lib/uninstall.js @@ -5,7 +5,7 @@ const npm = require('./npm.js') const rpj = require('read-package-json-fast') const { resolve } = require('path') const usageUtil = require('./utils/usage.js') -const reifyOutput = require('./utils/reify-output.js') +const reifyFinish = require('./utils/reify-finish.js') const cmd = (args, cb) => rm(args).then(() => cb()).catch(cb) @@ -32,7 +32,7 @@ const rm = async args => { ...npm.flatOptions, rm: args, }) - reifyOutput(arb) + await reifyFinish(arb) } const usage = usageUtil( diff --git a/deps/npm/lib/update.js b/deps/npm/lib/update.js index 791e67e4076..0a786e30f31 100644 --- a/deps/npm/lib/update.js +++ b/deps/npm/lib/update.js @@ -4,7 +4,7 @@ const Arborist = require('@npmcli/arborist') const log = require('npmlog') const npm = require('./npm.js') const usageUtil = require('./utils/usage.js') -const reifyOutput = require('./utils/reify-output.js') +const reifyFinish = require('./utils/reify-finish.js') const completion = require('./utils/completion/installed-deep.js') const usage = usageUtil( @@ -32,7 +32,7 @@ const update = async args => { }) await arb.reify({ update }) - reifyOutput(arb) + await reifyFinish(arb) } module.exports = Object.assign(cmd, { usage, completion }) diff --git a/deps/npm/lib/utils/reify-finish.js b/deps/npm/lib/utils/reify-finish.js new file mode 100644 index 00000000000..76dba06cb57 --- /dev/null +++ b/deps/npm/lib/utils/reify-finish.js @@ -0,0 +1,31 @@ +const reifyOutput = require('./reify-output.js') +const npm = require('../npm.js') +const ini = require('ini') +const {writeFile} = require('fs').promises +const {resolve} = require('path') + +const reifyFinish = async arb => { + await saveBuiltinConfig(arb) + reifyOutput(arb) +} + +const saveBuiltinConfig = async arb => { + const { options: { global }, actualTree } = arb + if (!global) + return + + // if we are using a builtin config, and just installed npm as + // a top-level global package, we have to preserve that config. + const npmNode = actualTree.inventory.get('node_modules/npm') + if (!npmNode) + return + + const builtinConf = npm.config.data.get('builtin') + if (builtinConf.loadError) + return + + const content = ini.stringify(builtinConf.raw).trim() + '\n' + await writeFile(resolve(npmNode.path, 'npmrc'), content) +} + +module.exports = reifyFinish |