diff --git a/node_modules/@npmcli/run-script/lib/make-spawn-args.js b/node_modules/@npmcli/run-script/lib/make-spawn-args.js index 8f299954a7a80..9cfc84b0e0de1 100644 --- a/node_modules/@npmcli/run-script/lib/make-spawn-args.js +++ b/node_modules/@npmcli/run-script/lib/make-spawn-args.js @@ -1,7 +1,7 @@ /* eslint camelcase: "off" */ const isWindows = require('./is-windows.js') const setPATH = require('./set-path.js') -const {resolve} = require('path') +const { resolve } = require('path') const npm_config_node_gyp = require.resolve('node-gyp/bin/node-gyp.js') const makeSpawnArgs = options => { diff --git a/node_modules/@npmcli/run-script/lib/package-envs.js b/node_modules/@npmcli/run-script/lib/package-envs.js index 47791fb991bd5..6b538e50247fd 100644 --- a/node_modules/@npmcli/run-script/lib/package-envs.js +++ b/node_modules/@npmcli/run-script/lib/package-envs.js @@ -6,12 +6,13 @@ const envVal = val => Array.isArray(val) ? val.map(v => envVal(v)).join('\n\n') const packageEnvs = (env, vals, prefix) => { for (const [key, val] of Object.entries(vals)) { - if (val === undefined) + if (val === undefined) { continue - else if (val && !Array.isArray(val) && typeof val === 'object') + } else if (val && !Array.isArray(val) && typeof val === 'object') { packageEnvs(env, val, `${prefix}${key}_`) - else + } else { env[`${prefix}${key}`] = envVal(val) + } } return env } diff --git a/node_modules/@npmcli/run-script/lib/run-script-pkg.js b/node_modules/@npmcli/run-script/lib/run-script-pkg.js index ccde173e014f6..a6fa4d2b38948 100644 --- a/node_modules/@npmcli/run-script/lib/run-script-pkg.js +++ b/node_modules/@npmcli/run-script/lib/run-script-pkg.js @@ -26,25 +26,28 @@ const runScriptPkg = async options => { signalTimeout = 500, } = options - const {scripts = {}, gypfile} = pkg + const { scripts = {}, gypfile } = pkg let cmd = null - if (options.cmd) + if (options.cmd) { cmd = options.cmd - else if (pkg.scripts && pkg.scripts[event]) + } else if (pkg.scripts && pkg.scripts[event]) { cmd = pkg.scripts[event] + args.map(a => ` ${JSON.stringify(a)}`).join('') - else if ( // If there is no preinstall or install script, default to rebuilding node-gyp packages. + } else if ( + // If there is no preinstall or install script, default to rebuilding node-gyp packages. event === 'install' && !scripts.install && !scripts.preinstall && gypfile !== false && await isNodeGypPackage(path) - ) + ) { cmd = defaultGypInstallScript - else if (event === 'start' && await isServerPackage(path)) + } else if (event === 'start' && await isServerPackage(path)) { cmd = 'node server.js' + args.map(a => ` ${JSON.stringify(a)}`).join('') + } - if (!cmd) + if (!cmd) { return { code: 0, signal: null } + } if (stdio === 'inherit' && banner !== false) { // we're dumping to the parent's stdout, so print the banner @@ -66,11 +69,13 @@ const runScriptPkg = async options => { path, }) - if (stdio === 'inherit') + if (stdio === 'inherit') { signalManager.add(p.process) + } - if (p.stdin) + if (p.stdin) { p.stdin.end() + } return p.catch(er => { const { signal } = er @@ -80,8 +85,9 @@ const runScriptPkg = async options => { // this also keeps the node process open long enough to actually // get the signal, rather than terminating gracefully. return new Promise((res, rej) => setTimeout(() => rej(er), signalTimeout)) - } else + } else { throw er + } }) } diff --git a/node_modules/@npmcli/run-script/lib/run-script.js b/node_modules/@npmcli/run-script/lib/run-script.js index af33d2113f9ef..6bb4a2e666a20 100644 --- a/node_modules/@npmcli/run-script/lib/run-script.js +++ b/node_modules/@npmcli/run-script/lib/run-script.js @@ -5,9 +5,9 @@ const isServerPackage = require('./is-server-package.js') const runScript = options => { validateOptions(options) - const {pkg, path} = options + const { pkg, path } = options return pkg ? runScriptPkg(options) - : rpj(path + '/package.json').then(pkg => runScriptPkg({...options, pkg})) + : rpj(path + '/package.json').then(pkg => runScriptPkg({ ...options, pkg })) } module.exports = Object.assign(runScript, { isServerPackage }) diff --git a/node_modules/@npmcli/run-script/lib/set-path.js b/node_modules/@npmcli/run-script/lib/set-path.js index d7bd2c2886b35..d5f8707efc84f 100644 --- a/node_modules/@npmcli/run-script/lib/set-path.js +++ b/node_modules/@npmcli/run-script/lib/set-path.js @@ -1,4 +1,4 @@ -const {resolve, dirname} = require('path') +const { resolve, dirname } = require('path') const isWindows = require('./is-windows.js') // the path here is relative, even though it does not need to be // in order to make the posix tests pass in windows @@ -34,8 +34,9 @@ const setPATH = (projectPath, env) => { // npm or arborist or whoever to just provide that by putting it in // the PATH environ, since that's preserved anyway. for (const key of Object.keys(env)) { - if (/^path$/i.test(key)) + if (/^path$/i.test(key)) { env[key] = pathVal + } } return env diff --git a/node_modules/@npmcli/run-script/lib/signal-manager.js b/node_modules/@npmcli/run-script/lib/signal-manager.js index 556e758c254f0..7e10f859e0a68 100644 --- a/node_modules/@npmcli/run-script/lib/signal-manager.js +++ b/node_modules/@npmcli/run-script/lib/signal-manager.js @@ -3,7 +3,7 @@ let handlersInstalled = false const forwardedSignals = [ 'SIGINT', - 'SIGTERM' + 'SIGTERM', ] const handleSignal = signal => { @@ -30,8 +30,9 @@ const cleanupListeners = () => { const add = proc => { runningProcs.add(proc) - if (!handlersInstalled) + if (!handlersInstalled) { setupListeners() + } proc.once('exit', () => { runningProcs.delete(proc) @@ -42,5 +43,5 @@ const add = proc => { module.exports = { add, handleSignal, - forwardedSignals + forwardedSignals, } diff --git a/node_modules/@npmcli/run-script/lib/validate-options.js b/node_modules/@npmcli/run-script/lib/validate-options.js index 48ac5c5d9e399..8d855916ecd15 100644 --- a/node_modules/@npmcli/run-script/lib/validate-options.js +++ b/node_modules/@npmcli/run-script/lib/validate-options.js @@ -1,6 +1,7 @@ const validateOptions = options => { - if (typeof options !== 'object' || !options) + if (typeof options !== 'object' || !options) { throw new TypeError('invalid options object provided to runScript') + } const { event, @@ -12,20 +13,27 @@ const validateOptions = options => { cmd, } = options - if (!event || typeof event !== 'string') + if (!event || typeof event !== 'string') { throw new TypeError('valid event not provided to runScript') - if (!path || typeof path !== 'string') + } + if (!path || typeof path !== 'string') { throw new TypeError('valid path not provided to runScript') - if (scriptShell !== undefined && typeof scriptShell !== 'string') + } + if (scriptShell !== undefined && typeof scriptShell !== 'string') { throw new TypeError('invalid scriptShell option provided to runScript') - if (typeof env !== 'object' || !env) + } + if (typeof env !== 'object' || !env) { throw new TypeError('invalid env option provided to runScript') - if (typeof stdio !== 'string' && !Array.isArray(stdio)) + } + if (typeof stdio !== 'string' && !Array.isArray(stdio)) { throw new TypeError('invalid stdio option provided to runScript') - if (!Array.isArray(args) || args.some(a => typeof a !== 'string')) + } + if (!Array.isArray(args) || args.some(a => typeof a !== 'string')) { throw new TypeError('invalid args option provided to runScript') - if (cmd !== undefined && typeof cmd !== 'string') + } + if (cmd !== undefined && typeof cmd !== 'string') { throw new TypeError('invalid cmd option provided to runScript') + } } module.exports = validateOptions diff --git a/node_modules/@npmcli/run-script/package.json b/node_modules/@npmcli/run-script/package.json index 9e744e639eb72..bb069a7a0a5c3 100644 --- a/node_modules/@npmcli/run-script/package.json +++ b/node_modules/@npmcli/run-script/package.json @@ -1,8 +1,8 @@ { "name": "@npmcli/run-script", - "version": "2.0.0", + "version": "3.0.0", "description": "Run a lifecycle script for a package (descendant of npm-lifecycle)", - "author": "Isaac Z. Schlueter (https://izs.me)", + "author": "GitHub Inc.", "license": "ISC", "scripts": { "test": "tap", @@ -10,36 +10,42 @@ "postversion": "npm publish", "prepublishOnly": "git push origin --follow-tags", "eslint": "eslint", - "lint": "npm run eslint -- \"lib/**/*.js\"", - "lintfix": "npm run lint -- --fix" + "lint": "eslint '**/*.js'", + "lintfix": "npm run lint -- --fix", + "postlint": "npm-template-check", + "template-copy": "npm-template-copy --force", + "snap": "tap", + "posttest": "npm run lint" }, "tap": { "check-coverage": true, "coverage-map": "map.js" }, "devDependencies": { - "eslint": "^7.19.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^5.0.0", - "minipass": "^3.1.1", + "@npmcli/template-oss": "^2.7.1", + "minipass": "^3.1.6", "require-inject": "^1.4.4", "tap": "^15.0.4" }, "dependencies": { - "@npmcli/node-gyp": "^1.0.2", + "@npmcli/node-gyp": "^1.0.3", "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^8.2.0", - "read-package-json-fast": "^2.0.1" + "node-gyp": "^8.4.1", + "read-package-json-fast": "^2.0.3" }, "files": [ - "lib/**/*.js", - "lib/node-gyp-bin" + "bin", + "lib" ], "main": "lib/run-script.js", "repository": { "type": "git", "url": "git+https://github.com/npm/run-script.git" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + }, + "templateOSS": { + "version": "2.7.1" } } diff --git a/node_modules/pacote/lib/git.js b/node_modules/pacote/lib/git.js index cab389ff179c2..9d84d95fa62ab 100644 --- a/node_modules/pacote/lib/git.js +++ b/node_modules/pacote/lib/git.js @@ -38,6 +38,13 @@ const addGitPlus = url => url && `git+${url}`.replace(/^(git\+)+/, 'git+') class GitFetcher extends Fetcher { constructor (spec, opts) { super(spec, opts) + + // we never want to compare integrity for git dependencies: npm/rfcs#525 + if (this.opts.integrity) { + delete this.opts.integrity + log.warn(`skipping integrity check for git dependency ${this.spec.fetchSpec}`) + } + this.resolvedRef = null if (this.spec.hosted) { this.from = this.spec.hosted.shortcut({ noCommittish: false }) @@ -194,7 +201,6 @@ class GitFetcher extends Fetcher { [_tarballFromResolved] () { const stream = new Minipass() stream.resolved = this.resolved - stream.integrity = this.integrity stream.from = this.from // check it out and then shell out to the DirFetcher tarball packer @@ -304,7 +310,6 @@ class GitFetcher extends Fetcher { this[_readPackageJson](dir + '/package.json') .then(mani => this.package = { ...mani, - _integrity: this.integrity && String(this.integrity), _resolved: this.resolved, _from: this.from, })) diff --git a/node_modules/pacote/package.json b/node_modules/pacote/package.json index 7e1f07cafdcd3..fc6ab52fa9bc0 100644 --- a/node_modules/pacote/package.json +++ b/node_modules/pacote/package.json @@ -1,6 +1,6 @@ { "name": "pacote", - "version": "13.0.2", + "version": "13.0.3", "description": "JavaScript package downloader", "author": "GitHub Inc.", "bin": { @@ -43,7 +43,7 @@ "@npmcli/git": "^3.0.0", "@npmcli/installed-package-contents": "^1.0.7", "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "cacache": "^15.3.0", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", diff --git a/package-lock.json b/package-lock.json index fec11a53ff6a7..37fd82c9691ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -92,7 +92,7 @@ "@npmcli/config": "^4.0.0", "@npmcli/map-workspaces": "^2.0.0", "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "abbrev": "~1.1.1", "ansicolors": "~0.3.2", "ansistyles": "~0.1.3", @@ -139,7 +139,7 @@ "npm-user-validate": "^1.0.1", "npmlog": "^6.0.1", "opener": "^1.5.2", - "pacote": "^13.0.2", + "pacote": "^13.0.3", "parse-conflict-json": "^2.0.1", "proc-log": "^2.0.0", "qrcode-terminal": "^0.12.0", @@ -994,15 +994,18 @@ } }, "node_modules/@npmcli/run-script": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", - "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.0.tgz", + "integrity": "sha512-jIdmUepw+kVP2WEE/+XrBIvrSF5miDutdGBrQ8May6uHVAvpAb0m3NRHcJ0lKWbQ1BxsRFsmTrjkdY99qTTVIw==", "inBundle": true, "dependencies": { - "@npmcli/node-gyp": "^1.0.2", + "@npmcli/node-gyp": "^1.0.3", "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^8.2.0", - "read-package-json-fast": "^2.0.1" + "node-gyp": "^8.4.1", + "read-package-json-fast": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/@npmcli/template-oss": { @@ -5941,15 +5944,15 @@ } }, "node_modules/pacote": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.0.2.tgz", - "integrity": "sha512-3LyfvDk2BSJNFQZIcDqnLNa7IsYb6KwX3H9uZPwaHJFIX6Gv5N9QHU+s7mEs/RbN4/ta6KUT39LAi2l6EkBi5A==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.0.3.tgz", + "integrity": "sha512-8thQ06YoO01O1k5rvSpHS/XPJZucw2DPiiT1jI+ys8QaTN6ifAyxfyoABHBa8nIt/4wPdzly4GEPqshctHFoYA==", "inBundle": true, "dependencies": { "@npmcli/git": "^3.0.0", "@npmcli/installed-package-contents": "^1.0.7", "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "cacache": "^15.3.0", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", @@ -10426,7 +10429,7 @@ "@npmcli/name-from-folder": "^1.0.1", "@npmcli/node-gyp": "^1.0.3", "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "bin-links": "^3.0.0", "cacache": "^15.0.3", "common-ancestor-path": "^1.0.1", @@ -10530,7 +10533,7 @@ "dependencies": { "@npmcli/arborist": "^4.0.0", "@npmcli/ci-detect": "^2.0.0", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "chalk": "^4.1.0", "mkdirp-infer-owner": "^2.0.0", "npm-package-arg": "^9.0.0", @@ -10660,7 +10663,7 @@ "version": "3.1.0", "license": "ISC", "dependencies": { - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "npm-package-arg": "^9.0.0", "pacote": "^13.0.2" }, @@ -10804,7 +10807,7 @@ "license": "ISC", "dependencies": { "@npmcli/git": "^3.0.0", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "json-parse-even-better-errors": "^2.3.1", "proc-log": "^2.0.0", "semver": "^7.3.5", @@ -11341,7 +11344,7 @@ "@npmcli/name-from-folder": "^1.0.1", "@npmcli/node-gyp": "^1.0.3", "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "@npmcli/template-oss": "^2.4.2", "benchmark": "^2.1.4", "bin-links": "^3.0.0", @@ -11526,14 +11529,14 @@ } }, "@npmcli/run-script": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", - "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.0.tgz", + "integrity": "sha512-jIdmUepw+kVP2WEE/+XrBIvrSF5miDutdGBrQ8May6uHVAvpAb0m3NRHcJ0lKWbQ1BxsRFsmTrjkdY99qTTVIw==", "requires": { - "@npmcli/node-gyp": "^1.0.2", + "@npmcli/node-gyp": "^1.0.3", "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^8.2.0", - "read-package-json-fast": "^2.0.1" + "node-gyp": "^8.4.1", + "read-package-json-fast": "^2.0.3" } }, "@npmcli/template-oss": { @@ -14311,7 +14314,7 @@ "requires": { "@npmcli/arborist": "^4.0.0", "@npmcli/ci-detect": "^2.0.0", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "@npmcli/template-oss": "^2.4.2", "bin-links": "^3.0.0", "chalk": "^4.1.0", @@ -14407,7 +14410,7 @@ "libnpmpack": { "version": "file:workspaces/libnpmpack", "requires": { - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "@npmcli/template-oss": "^2.4.2", "nock": "^13.0.7", "npm-package-arg": "^9.0.0", @@ -14516,7 +14519,7 @@ "version": "file:workspaces/libnpmversion", "requires": { "@npmcli/git": "^3.0.0", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "@npmcli/template-oss": "^2.4.2", "json-parse-even-better-errors": "^2.3.1", "proc-log": "^2.0.0", @@ -15395,14 +15398,14 @@ } }, "pacote": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.0.2.tgz", - "integrity": "sha512-3LyfvDk2BSJNFQZIcDqnLNa7IsYb6KwX3H9uZPwaHJFIX6Gv5N9QHU+s7mEs/RbN4/ta6KUT39LAi2l6EkBi5A==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.0.3.tgz", + "integrity": "sha512-8thQ06YoO01O1k5rvSpHS/XPJZucw2DPiiT1jI+ys8QaTN6ifAyxfyoABHBa8nIt/4wPdzly4GEPqshctHFoYA==", "requires": { "@npmcli/git": "^3.0.0", "@npmcli/installed-package-contents": "^1.0.7", "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "cacache": "^15.3.0", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", diff --git a/package.json b/package.json index 7adc07622e961..590525665009a 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@npmcli/config": "^4.0.0", "@npmcli/map-workspaces": "^2.0.0", "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "abbrev": "~1.1.1", "ansicolors": "~0.3.2", "ansistyles": "~0.1.3", @@ -107,7 +107,7 @@ "npm-user-validate": "^1.0.1", "npmlog": "^6.0.1", "opener": "^1.5.2", - "pacote": "^13.0.2", + "pacote": "^13.0.3", "parse-conflict-json": "^2.0.1", "proc-log": "^2.0.0", "qrcode-terminal": "^0.12.0", diff --git a/workspaces/arborist/package.json b/workspaces/arborist/package.json index d8d27bcfcc3a2..86bbd3b565201 100644 --- a/workspaces/arborist/package.json +++ b/workspaces/arborist/package.json @@ -11,7 +11,7 @@ "@npmcli/name-from-folder": "^1.0.1", "@npmcli/node-gyp": "^1.0.3", "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "bin-links": "^3.0.0", "cacache": "^15.0.3", "common-ancestor-path": "^1.0.1", diff --git a/workspaces/libnpmexec/package.json b/workspaces/libnpmexec/package.json index c88bfb16384df..b12464e51fbf4 100644 --- a/workspaces/libnpmexec/package.json +++ b/workspaces/libnpmexec/package.json @@ -52,7 +52,7 @@ "dependencies": { "@npmcli/arborist": "^4.0.0", "@npmcli/ci-detect": "^2.0.0", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "chalk": "^4.1.0", "mkdirp-infer-owner": "^2.0.0", "npm-package-arg": "^9.0.0", diff --git a/workspaces/libnpmpack/package.json b/workspaces/libnpmpack/package.json index 94507504080d5..a49b6b707605a 100644 --- a/workspaces/libnpmpack/package.json +++ b/workspaces/libnpmpack/package.json @@ -38,7 +38,7 @@ "bugs": "https://github.com/npm/libnpmpack/issues", "homepage": "https://npmjs.com/package/libnpmpack", "dependencies": { - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "npm-package-arg": "^9.0.0", "pacote": "^13.0.2" }, diff --git a/workspaces/libnpmversion/package.json b/workspaces/libnpmversion/package.json index 11ab7d9ebba7c..25c16f0fcd5e0 100644 --- a/workspaces/libnpmversion/package.json +++ b/workspaces/libnpmversion/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@npmcli/git": "^3.0.0", - "@npmcli/run-script": "^2.0.0", + "@npmcli/run-script": "^3.0.0", "json-parse-even-better-errors": "^2.3.1", "proc-log": "^2.0.0", "semver": "^7.3.5",