diff options
author | Kat Marchán <kzm@zkat.tech> | 2019-01-29 14:43:00 -0800 |
---|---|---|
committer | Myles Borins <mylesborins@google.com> | 2019-02-12 00:06:29 -0800 |
commit | 43dd49c9782848c25e5b03448c8a0f923f13c158 (patch) | |
tree | f7ac5d645019b2b844f26be66c291bbae734d097 /deps/npm/node_modules/libcipm | |
parent | b361f9577fbd72e518438d3fa0b01f7d34d814a5 (diff) | |
download | android-node-v8-43dd49c9782848c25e5b03448c8a0f923f13c158.tar.gz android-node-v8-43dd49c9782848c25e5b03448c8a0f923f13c158.tar.bz2 android-node-v8-43dd49c9782848c25e5b03448c8a0f923f13c158.zip |
deps: upgrade npm to 6.7.0
PR-URL: https://github.com/nodejs/node/pull/25804
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Diffstat (limited to 'deps/npm/node_modules/libcipm')
-rw-r--r-- | deps/npm/node_modules/libcipm/CHANGELOG.md | 45 | ||||
-rw-r--r-- | deps/npm/node_modules/libcipm/index.js | 82 | ||||
-rw-r--r-- | deps/npm/node_modules/libcipm/lib/config/lifecycle-opts.js | 29 | ||||
-rw-r--r-- | deps/npm/node_modules/libcipm/lib/config/npm-config.js | 72 | ||||
-rw-r--r-- | deps/npm/node_modules/libcipm/lib/config/pacote-opts.js | 135 | ||||
-rw-r--r-- | deps/npm/node_modules/libcipm/lib/extract.js | 51 | ||||
-rw-r--r-- | deps/npm/node_modules/libcipm/lib/worker.js | 6 | ||||
-rw-r--r-- | deps/npm/node_modules/libcipm/package.json | 27 |
8 files changed, 196 insertions, 251 deletions
diff --git a/deps/npm/node_modules/libcipm/CHANGELOG.md b/deps/npm/node_modules/libcipm/CHANGELOG.md index a1949b8565..5f9d4906e4 100644 --- a/deps/npm/node_modules/libcipm/CHANGELOG.md +++ b/deps/npm/node_modules/libcipm/CHANGELOG.md @@ -2,6 +2,51 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +<a name="3.0.3"></a> +## [3.0.3](https://github.com/zkat/cipm/compare/v3.0.2...v3.0.3) (2019-01-22) + + +### Bug Fixes + +* **scripts:** pass in opts.dir directly ([018df27](https://github.com/zkat/cipm/commit/018df27)) + + + +<a name="3.0.2"></a> +## [3.0.2](https://github.com/zkat/cipm/compare/v3.0.1...v3.0.2) (2018-08-31) + + +### Bug Fixes + +* **worker:** missed a spot ([4371558](https://github.com/zkat/cipm/commit/4371558)) + + + +<a name="3.0.1"></a> +## [3.0.1](https://github.com/zkat/cipm/compare/v3.0.0...v3.0.1) (2018-08-31) + + +### Bug Fixes + +* **workers:** disable workers for now ([64db490](https://github.com/zkat/cipm/commit/64db490)) + + + +<a name="3.0.0"></a> +# [3.0.0](https://github.com/zkat/cipm/compare/v2.0.2...v3.0.0) (2018-08-31) + + +### Features + +* **config:** switch to modern, figgy-pudding configuration ([#57](https://github.com/zkat/cipm/issues/57)) ([161f6b2](https://github.com/zkat/cipm/commit/161f6b2)) + + +### BREAKING CHANGES + +* **config:** this updates cipm to use pacote@9, which consumes npm-style config objects, not pacoteOpts()-style objects. + + + <a name="2.0.2"></a> ## [2.0.2](https://github.com/zkat/cipm/compare/v2.0.1...v2.0.2) (2018-08-10) diff --git a/deps/npm/node_modules/libcipm/index.js b/deps/npm/node_modules/libcipm/index.js index 9061ec4b18..7f4d13f74a 100644 --- a/deps/npm/node_modules/libcipm/index.js +++ b/deps/npm/node_modules/libcipm/index.js @@ -5,6 +5,7 @@ const BB = require('bluebird') const binLink = require('bin-links') const buildLogicalTree = require('npm-logical-tree') const extract = require('./lib/extract.js') +const figgyPudding = require('figgy-pudding') const fs = require('graceful-fs') const getPrefix = require('find-npm-prefix') const lifecycle = require('npm-lifecycle') @@ -20,10 +21,45 @@ const statAsync = BB.promisify(fs.stat) const symlinkAsync = BB.promisify(fs.symlink) const writeFileAsync = BB.promisify(fs.writeFile) +const CipmOpts = figgyPudding({ + also: {}, + dev: 'development', + development: {}, + dirPacker: {}, + force: {}, + global: {}, + ignoreScripts: 'ignore-scripts', + 'ignore-scripts': {}, + log: {}, + loglevel: {}, + only: {}, + prefix: {}, + prod: 'production', + production: {}, + Promise: { default: () => BB }, + umask: {} +}) + +const LifecycleOpts = figgyPudding({ + config: {}, + 'script-shell': {}, + scriptShell: 'script-shell', + 'ignore-scripts': {}, + ignoreScripts: 'ignore-scripts', + 'ignore-prepublish': {}, + ignorePrepublish: 'ignore-prepublish', + 'scripts-prepend-node-path': {}, + scriptsPrependNodePath: 'scripts-prepend-node-path', + 'unsafe-perm': {}, + unsafePerm: 'unsafe-perm', + prefix: {}, + dir: 'prefix', + failOk: { default: false } +}, { other () { return true } }) + class Installer { constructor (opts) { - this.opts = opts - this.config = opts.config + this.opts = CipmOpts(opts) // Stats this.startTime = Date.now() @@ -80,17 +116,17 @@ class Installer { prepare () { this.log.info('prepare', 'initializing installer') - this.log.level = this.config.get('loglevel') + this.log.level = this.opts.loglevel this.log.verbose('prepare', 'starting workers') extract.startWorkers() return ( - this.config.get('prefix') && this.config.get('global') - ? BB.resolve(this.config.get('prefix')) + this.opts.prefix && this.opts.global + ? BB.resolve(this.opts.prefix) // There's some Special™ logic around the `--prefix` config when it // comes from a config file or env vs when it comes from the CLI : process.argv.some(arg => arg.match(/^\s*--prefix\s*/i)) - ? BB.resolve(this.config.get('prefix')) + ? BB.resolve(this.opts.prefix) : getPrefix(process.cwd()) ) .then(prefix => { @@ -203,7 +239,7 @@ class Installer { return next() } else { return BB.resolve(extract.child( - dep.name, dep, depPath, this.config, this.opts + dep.name, dep, depPath, this.opts )) .then(() => cg.completeWork(1)) .then(() => { this.pkgCount++ }) @@ -218,15 +254,15 @@ class Installer { checkDepEnv (dep) { const includeDev = ( // Covers --dev and --development (from npm config itself) - this.config.get('dev') || + this.opts.dev || ( - !/^prod(uction)?$/.test(this.config.get('only')) && - !this.config.get('production') + !/^prod(uction)?$/.test(this.opts.only) && + !this.opts.production ) || - /^dev(elopment)?$/.test(this.config.get('only')) || - /^dev(elopment)?$/.test(this.config.get('also')) + /^dev(elopment)?$/.test(this.opts.only) || + /^dev(elopment)?$/.test(this.opts.also) ) - const includeProd = !/^dev(elopment)?$/.test(this.config.get('only')) + const includeProd = !/^dev(elopment)?$/.test(this.opts.only) return (dep.dev && includeDev) || (!dep.dev && includeProd) } @@ -274,14 +310,14 @@ class Installer { } return readPkgJson(path.join(depPath, 'package.json')) .then(pkg => binLink(pkg, depPath, false, { - force: this.config.get('force'), - ignoreScripts: this.config.get('ignore-scripts'), + force: this.opts.force, + ignoreScripts: this.opts['ignore-scripts'], log: Object.assign({}, this.log, { info: () => {} }), name: pkg.name, pkgId: pkg.name + '@' + pkg.version, prefix: this.prefix, prefixes: [this.prefix], - umask: this.config.get('umask') + umask: this.opts.umask }), e => { this.log.verbose('buildTree', `error linking ${spec}: ${e.message} ${e.stack}`) }) @@ -346,18 +382,22 @@ class Installer { runScript (stage, pkg, pkgPath) { const start = Date.now() - if (!this.config.get('ignore-scripts')) { + if (!this.opts['ignore-scripts']) { // TODO(mikesherov): remove pkg._id when npm-lifecycle no longer relies on it pkg._id = pkg.name + '@' + pkg.version - const opts = this.config.toLifecycle() - return BB.resolve(lifecycle(pkg, stage, pkgPath, opts)) - .tap(() => { this.timings.scripts += Date.now() - start }) + return BB.resolve(lifecycle( + pkg, stage, pkgPath, LifecycleOpts(this.opts).concat({ + // TODO: can be removed once npm-lifecycle is updated to modern + // config practices. + config: this.opts, + dir: this.prefix + })) + ).tap(() => { this.timings.scripts += Date.now() - start }) } return BB.resolve() } } module.exports = Installer -module.exports.CipmConfig = require('./lib/config/npm-config.js').CipmConfig function mark (tree, failed) { const liveDeps = new Set() diff --git a/deps/npm/node_modules/libcipm/lib/config/lifecycle-opts.js b/deps/npm/node_modules/libcipm/lib/config/lifecycle-opts.js deleted file mode 100644 index 7d57459779..0000000000 --- a/deps/npm/node_modules/libcipm/lib/config/lifecycle-opts.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict' - -const log = require('npmlog') - -module.exports = lifecycleOpts -function lifecycleOpts (opts) { - const objConfig = {} - for (const key of opts.keys()) { - const val = opts.get(key) - if (val != null) { - objConfig[key] = val - } - } - return { - config: objConfig, - scriptShell: opts.get('script-shell'), - force: opts.get('force'), - user: opts.get('user'), - group: opts.get('group'), - ignoreScripts: opts.get('ignore-scripts'), - ignorePrepublish: opts.get('ignore-prepublish'), - scriptsPrependNodePath: opts.get('scripts-prepend-node-path'), - unsafePerm: opts.get('unsafe-perm'), - log, - dir: opts.get('prefix'), - failOk: false, - production: opts.get('production') - } -} diff --git a/deps/npm/node_modules/libcipm/lib/config/npm-config.js b/deps/npm/node_modules/libcipm/lib/config/npm-config.js index 76b4054eef..a051190619 100644 --- a/deps/npm/node_modules/libcipm/lib/config/npm-config.js +++ b/deps/npm/node_modules/libcipm/lib/config/npm-config.js @@ -1,40 +1,22 @@ 'use strict' const BB = require('bluebird') -const lifecycleOpts = require('./lifecycle-opts.js') -const pacoteOpts = require('./pacote-opts.js') -const protoduck = require('protoduck') -const spawn = require('child_process').spawn -class NpmConfig extends Map {} +const fs = require('fs') +const figgyPudding = require('figgy-pudding') +const ini = require('ini') +const path = require('path') +const spawn = require('child_process').spawn -const CipmConfig = protoduck.define({ - get: [], - set: [], - toPacote: [], - toLifecycle: [] -}, { - name: 'CipmConfig' -}) -module.exports.CipmConfig = CipmConfig +const readFileAsync = BB.promisify(fs.readFile) -CipmConfig.impl(NpmConfig, { - get: Map.prototype.get, - set: Map.prototype.set, - toPacote (opts) { - return pacoteOpts(this, opts) - }, - toLifecycle () { - return lifecycleOpts(this) - } +const NpmConfig = figgyPudding({ + cache: { default: '' }, + then: {}, + userconfig: {} }) -module.exports.fromObject = fromObj -function fromObj (obj) { - const map = new NpmConfig() - Object.keys(obj).forEach(k => map.set(k, obj[k])) - return map -} +module.exports = NpmConfig module.exports.fromNpm = getNpmConfig function getNpmConfig (argv) { @@ -62,11 +44,41 @@ function getNpmConfig (argv) { reject(new Error('`npm` command not found. Please ensure you have npm@5.4.0 or later installed.')) } else { try { - resolve(fromObj(JSON.parse(stdout))) + resolve(JSON.parse(stdout)) } catch (e) { reject(new Error('`npm config ls --json` failed to output json. Please ensure you have npm@5.4.0 or later installed.')) } } }) + }).then(opts => { + return BB.all( + process.cwd().split(path.sep).reduce((acc, next) => { + acc.path = path.join(acc.path, next) + acc.promises.push(maybeReadIni(path.join(acc.path, '.npmrc'))) + acc.promises.push(maybeReadIni(path.join(acc.path, 'npmrc'))) + return acc + }, { + path: '', + promises: [] + }).promises.concat( + opts.userconfig ? maybeReadIni(opts.userconfig) : {} + ) + ).then(configs => NpmConfig(...configs, opts)) + }).then(opts => { + if (opts.cache) { + return opts.concat({ cache: path.join(opts.cache, '_cacache') }) + } else { + return opts + } }) } + +function maybeReadIni (f) { + return readFileAsync(f, 'utf8').catch(err => { + if (err.code === 'ENOENT') { + return '' + } else { + throw err + } + }).then(ini.parse) +} diff --git a/deps/npm/node_modules/libcipm/lib/config/pacote-opts.js b/deps/npm/node_modules/libcipm/lib/config/pacote-opts.js deleted file mode 100644 index 234ed1352a..0000000000 --- a/deps/npm/node_modules/libcipm/lib/config/pacote-opts.js +++ /dev/null @@ -1,135 +0,0 @@ -'use strict' - -const Buffer = require('safe-buffer').Buffer - -const crypto = require('crypto') -const path = require('path') - -let effectiveOwner - -const npmSession = crypto.randomBytes(8).toString('hex') - -module.exports = pacoteOpts -function pacoteOpts (npmOpts, moreOpts) { - const ownerStats = calculateOwner() - const opts = { - cache: path.join(npmOpts.get('cache'), '_cacache'), - ca: npmOpts.get('ca'), - cert: npmOpts.get('cert'), - git: npmOpts.get('git'), - key: npmOpts.get('key'), - localAddress: npmOpts.get('local-address'), - loglevel: npmOpts.get('loglevel'), - maxSockets: +(npmOpts.get('maxsockets') || 15), - npmSession: npmSession, - offline: npmOpts.get('offline'), - projectScope: moreOpts.rootPkg && getProjectScope(moreOpts.rootPkg.name), - proxy: npmOpts.get('https-proxy') || npmOpts.get('proxy'), - refer: 'cipm', - registry: npmOpts.get('registry'), - retry: { - retries: npmOpts.get('fetch-retries'), - factor: npmOpts.get('fetch-retry-factor'), - minTimeout: npmOpts.get('fetch-retry-mintimeout'), - maxTimeout: npmOpts.get('fetch-retry-maxtimeout') - }, - strictSSL: npmOpts.get('strict-ssl'), - userAgent: npmOpts.get('user-agent'), - - dmode: parseInt('0777', 8) & (~npmOpts.get('umask')), - fmode: parseInt('0666', 8) & (~npmOpts.get('umask')), - umask: npmOpts.get('umask') - } - - if (ownerStats.uid != null || ownerStats.gid != null) { - Object.assign(opts, ownerStats) - } - - (npmOpts.forEach ? Array.from(npmOpts.keys()) : npmOpts.keys).forEach(k => { - const authMatchGlobal = k.match( - /^(_authToken|username|_password|password|email|always-auth|_auth)$/ - ) - const authMatchScoped = k[0] === '/' && k.match( - /(.*):(_authToken|username|_password|password|email|always-auth|_auth)$/ - ) - - // if it matches scoped it will also match global - if (authMatchGlobal || authMatchScoped) { - let nerfDart = null - let key = null - let val = null - - if (!opts.auth) { opts.auth = {} } - - if (authMatchScoped) { - nerfDart = authMatchScoped[1] - key = authMatchScoped[2] - val = npmOpts.get(k) - if (!opts.auth[nerfDart]) { - opts.auth[nerfDart] = { - alwaysAuth: !!npmOpts.get('always-auth') - } - } - } else { - key = authMatchGlobal[1] - val = npmOpts.get(k) - opts.auth.alwaysAuth = !!npmOpts.get('always-auth') - } - - const auth = authMatchScoped ? opts.auth[nerfDart] : opts.auth - if (key === '_authToken') { - auth.token = val - } else if (key.match(/password$/i)) { - auth.password = - // the config file stores password auth already-encoded. pacote expects - // the actual username/password pair. - Buffer.from(val, 'base64').toString('utf8') - } else if (key === 'always-auth') { - auth.alwaysAuth = val === 'false' ? false : !!val - } else { - auth[key] = val - } - } - - if (k[0] === '@') { - if (!opts.scopeTargets) { opts.scopeTargets = {} } - opts.scopeTargets[k.replace(/:registry$/, '')] = npmOpts.get(k) - } - }) - - Object.keys(moreOpts || {}).forEach((k) => { - opts[k] = moreOpts[k] - }) - - return opts -} - -function calculateOwner () { - if (!effectiveOwner) { - effectiveOwner = { uid: 0, gid: 0 } - - // Pretty much only on windows - if (!process.getuid) { - return effectiveOwner - } - - effectiveOwner.uid = +process.getuid() - effectiveOwner.gid = +process.getgid() - - if (effectiveOwner.uid === 0) { - if (process.env.SUDO_UID) effectiveOwner.uid = +process.env.SUDO_UID - if (process.env.SUDO_GID) effectiveOwner.gid = +process.env.SUDO_GID - } - } - - return effectiveOwner -} - -function getProjectScope (pkgName) { - const sep = pkgName.indexOf('/') - if (sep === -1) { - return '' - } else { - return pkgName.slice(0, sep) - } -} diff --git a/deps/npm/node_modules/libcipm/lib/extract.js b/deps/npm/node_modules/libcipm/lib/extract.js index 9166ebc058..5681d1ce8c 100644 --- a/deps/npm/node_modules/libcipm/lib/extract.js +++ b/deps/npm/node_modules/libcipm/lib/extract.js @@ -2,45 +2,56 @@ const BB = require('bluebird') -const npa = require('npm-package-arg') -const workerFarm = require('worker-farm') - const extractionWorker = require('./worker.js') +const figgyPudding = require('figgy-pudding') +const npa = require('npm-package-arg') const WORKER_PATH = require.resolve('./worker.js') +let workerFarm + +// Broken for now, cause too many issues on some systems. +const ENABLE_WORKERS = false + +const ExtractOpts = figgyPudding({ + log: {} +}) module.exports = { startWorkers () { - this._workers = workerFarm({ - maxConcurrentCallsPerWorker: 20, - maxRetries: 1 - }, WORKER_PATH) + if (ENABLE_WORKERS) { + if (!workerFarm) { workerFarm = require('worker-farm') } + this._workers = workerFarm({ + maxConcurrentCallsPerWorker: 20, + maxRetries: 1 + }, WORKER_PATH) + } }, stopWorkers () { - workerFarm.end(this._workers) + if (ENABLE_WORKERS) { + if (!workerFarm) { workerFarm = require('worker-farm') } + workerFarm.end(this._workers) + } }, - child (name, child, childPath, config, opts) { + child (name, child, childPath, opts) { + opts = ExtractOpts(opts) const spec = npa.resolve(name, child.version) - const additionalToPacoteOpts = {} - if (typeof opts.dirPacker !== 'undefined') { - additionalToPacoteOpts.dirPacker = opts.dirPacker - } - const childOpts = config.toPacote(Object.assign({ + let childOpts = opts.concat({ integrity: child.integrity, resolved: child.resolved - }, additionalToPacoteOpts)) + }) const args = [spec, childPath, childOpts] return BB.fromNode((cb) => { let launcher = extractionWorker let msg = args const spec = typeof args[0] === 'string' ? npa(args[0]) : args[0] - childOpts.loglevel = opts.log.level - if (spec.registry || spec.type === 'remote') { + if (ENABLE_WORKERS && (spec.registry || spec.type === 'remote')) { + if (!workerFarm) { workerFarm = require('worker-farm') } // We can't serialize these options - childOpts.config = null - childOpts.log = null - childOpts.dirPacker = null + childOpts = childOpts.concat({ + log: null, + dirPacker: null + }) // workers will run things in parallel! launcher = this._workers try { diff --git a/deps/npm/node_modules/libcipm/lib/worker.js b/deps/npm/node_modules/libcipm/lib/worker.js index ac61b06236..bab607e527 100644 --- a/deps/npm/node_modules/libcipm/lib/worker.js +++ b/deps/npm/node_modules/libcipm/lib/worker.js @@ -2,7 +2,7 @@ const BB = require('bluebird') -const log = require('npmlog') +// const log = require('npmlog') const pacote = require('pacote') module.exports = (args, cb) => { @@ -10,7 +10,7 @@ module.exports = (args, cb) => { const spec = parsed[0] const extractTo = parsed[1] const opts = parsed[2] - opts.log = log - log.level = opts.loglevel + // opts.log = log + // log.level = opts.loglevel return BB.resolve(pacote.extract(spec, extractTo, opts)).nodeify(cb) } diff --git a/deps/npm/node_modules/libcipm/package.json b/deps/npm/node_modules/libcipm/package.json index a934f18df5..153dc1acba 100644 --- a/deps/npm/node_modules/libcipm/package.json +++ b/deps/npm/node_modules/libcipm/package.json @@ -1,27 +1,27 @@ { - "_from": "libcipm@2.0.2", - "_id": "libcipm@2.0.2", + "_from": "libcipm@latest", + "_id": "libcipm@3.0.3", "_inBundle": false, - "_integrity": "sha512-9uZ6/LAflVEijksTRq/RX0e+pGA4mr8tND9Cmk2JMg7j2fFUBrs8PpFX2DOAJR/XoxPzz+5h8bkWmtIYLunKAg==", + "_integrity": "sha512-71V5CpTI+zFydTc5IjJ/tx8JHbXEJvmYF2zaSVW1V3X1rRnRjXqh44iuiyry1xgi3ProUQ1vX1uwFiWs00+2og==", "_location": "/libcipm", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "tag", "registry": true, - "raw": "libcipm@2.0.2", + "raw": "libcipm@latest", "name": "libcipm", "escapedName": "libcipm", - "rawSpec": "2.0.2", + "rawSpec": "latest", "saveSpec": null, - "fetchSpec": "2.0.2" + "fetchSpec": "latest" }, "_requiredBy": [ "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/libcipm/-/libcipm-2.0.2.tgz", - "_shasum": "4f38c2b37acf2ec156936cef1cbf74636568fc7b", - "_spec": "libcipm@2.0.2", + "_resolved": "https://registry.npmjs.org/libcipm/-/libcipm-3.0.3.tgz", + "_shasum": "2e764effe0b90d458790dab3165794c804075ed3", + "_spec": "libcipm@latest", "_where": "/Users/zkat/Documents/code/work/npm", "author": { "name": "Kat Marchán", @@ -42,15 +42,16 @@ "dependencies": { "bin-links": "^1.1.2", "bluebird": "^3.5.1", + "figgy-pudding": "^3.5.1", "find-npm-prefix": "^1.0.2", "graceful-fs": "^4.1.11", + "ini": "^1.3.5", "lock-verify": "^2.0.2", "mkdirp": "^0.5.1", "npm-lifecycle": "^2.0.3", "npm-logical-tree": "^1.2.1", "npm-package-arg": "^6.1.0", - "pacote": "^8.1.6", - "protoduck": "^5.0.0", + "pacote": "^9.1.0", "read-package-json": "^2.0.13", "rimraf": "^2.6.2", "worker-farm": "^1.6.0" @@ -95,5 +96,5 @@ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" }, - "version": "2.0.2" + "version": "3.0.3" } |