mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00
deps: upgrade npm to 8.5.0
PR-URL: https://github.com/nodejs/node/pull/41925 Reviewed-By: Derek Lewis <DerekNonGeneric@inf.is> Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Mestery <mestery@protonmail.com>
This commit is contained in:
parent
214d7da675
commit
69ffb3e77f
48 changed files with 1050 additions and 235 deletions
1
deps/npm/docs/content/commands/npm-exec.md
vendored
1
deps/npm/docs/content/commands/npm-exec.md
vendored
|
@ -388,3 +388,4 @@ project.
|
|||
* [npm stop](/commands/npm-stop)
|
||||
* [npm config](/commands/npm-config)
|
||||
* [npm workspaces](/using-npm/workspaces)
|
||||
* [npx](/commands/npx)
|
||||
|
|
1
deps/npm/docs/content/commands/npx.md
vendored
1
deps/npm/docs/content/commands/npx.md
vendored
|
@ -175,3 +175,4 @@ This resulted in some shifts in its functionality:
|
|||
* [npm restart](/commands/npm-restart)
|
||||
* [npm stop](/commands/npm-stop)
|
||||
* [npm config](/commands/npm-config)
|
||||
* [npm exec](/commands/npm-exec)
|
||||
|
|
2
deps/npm/docs/content/using-npm/config.md
vendored
2
deps/npm/docs/content/using-npm/config.md
vendored
|
@ -1351,7 +1351,7 @@ If a package would be saved at install time by the use of `--save`,
|
|||
`--save-dev`, or `--save-optional`, then also put it in the
|
||||
`bundleDependencies` list.
|
||||
|
||||
Ignore if `--save-peer` is set, since peerDependencies cannot be bundled.
|
||||
Ignored if `--save-peer` is set, since peerDependencies cannot be bundled.
|
||||
|
||||
<!-- automatically generated, do not edit manually -->
|
||||
<!-- see lib/utils/config/definitions.js -->
|
||||
|
|
1
deps/npm/docs/output/commands/npm-exec.html
vendored
1
deps/npm/docs/output/commands/npm-exec.html
vendored
|
@ -440,6 +440,7 @@ project.</p>
|
|||
<li><a href="../commands/npm-stop.html">npm stop</a></li>
|
||||
<li><a href="../commands/npm-config.html">npm config</a></li>
|
||||
<li><a href="../using-npm/workspaces.html">npm workspaces</a></li>
|
||||
<li><a href="../commands/npx.html">npx</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
2
deps/npm/docs/output/commands/npm-ls.html
vendored
2
deps/npm/docs/output/commands/npm-ls.html
vendored
|
@ -160,7 +160,7 @@ tree at all, use <a href="../commands/npm-explain.html"><code>npm explain</code>
|
|||
the results to only the paths to the packages named. Note that nested
|
||||
packages will <em>also</em> show the paths to the specified packages. For
|
||||
example, running <code>npm ls promzard</code> in npm's source tree will show:</p>
|
||||
<pre lang="bash"><code>npm@8.4.1 /path/to/npm
|
||||
<pre lang="bash"><code>npm@8.5.0 /path/to/npm
|
||||
└─┬ init-package-json@0.0.4
|
||||
└── promzard@0.1.5
|
||||
</code></pre>
|
||||
|
|
2
deps/npm/docs/output/commands/npm.html
vendored
2
deps/npm/docs/output/commands/npm.html
vendored
|
@ -149,7 +149,7 @@ npm command-line interface
|
|||
<pre lang="bash"><code>npm <command> [args]
|
||||
</code></pre>
|
||||
<h3 id="version">Version</h3>
|
||||
<p>8.4.1</p>
|
||||
<p>8.5.0</p>
|
||||
<h3 id="description">Description</h3>
|
||||
<p>npm is the package manager for the Node JavaScript platform. It puts
|
||||
modules in place so that node can find them, and manages dependency
|
||||
|
|
1
deps/npm/docs/output/commands/npx.html
vendored
1
deps/npm/docs/output/commands/npx.html
vendored
|
@ -277,6 +277,7 @@ in the <code>npx</code> executable for backwards compatibility.</li>
|
|||
<li><a href="../commands/npm-restart.html">npm restart</a></li>
|
||||
<li><a href="../commands/npm-stop.html">npm stop</a></li>
|
||||
<li><a href="../commands/npm-config.html">npm config</a></li>
|
||||
<li><a href="../commands/npm-exec.html">npm exec</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
2
deps/npm/docs/output/using-npm/config.html
vendored
2
deps/npm/docs/output/using-npm/config.html
vendored
|
@ -1229,7 +1229,7 @@ defaults to <code>false</code></li>
|
|||
<p>If a package would be saved at install time by the use of <code>--save</code>,
|
||||
<code>--save-dev</code>, or <code>--save-optional</code>, then also put it in the
|
||||
<code>bundleDependencies</code> list.</p>
|
||||
<p>Ignore if <code>--save-peer</code> is set, since peerDependencies cannot be bundled.</p>
|
||||
<p>Ignored if <code>--save-peer</code> is set, since peerDependencies cannot be bundled.</p>
|
||||
<!-- raw HTML omitted -->
|
||||
<!-- raw HTML omitted -->
|
||||
<h4 id="save-dev"><code>save-dev</code></h4>
|
||||
|
|
6
deps/npm/lib/commands/org.js
vendored
6
deps/npm/lib/commands/org.js
vendored
|
@ -2,6 +2,7 @@ const liborg = require('libnpmorg')
|
|||
const otplease = require('../utils/otplease.js')
|
||||
const Table = require('cli-table3')
|
||||
const BaseCommand = require('../base-command.js')
|
||||
const log = require('../utils/log-shim.js')
|
||||
|
||||
class Org extends BaseCommand {
|
||||
static description = 'Manage orgs'
|
||||
|
@ -32,7 +33,10 @@ class Org extends BaseCommand {
|
|||
}
|
||||
|
||||
async exec ([cmd, orgname, username, role], cb) {
|
||||
return otplease(this.npm.flatOptions, opts => {
|
||||
return otplease({
|
||||
...this.npm.flatOptions,
|
||||
log,
|
||||
}, opts => {
|
||||
switch (cmd) {
|
||||
case 'add':
|
||||
case 'set':
|
||||
|
|
17
deps/npm/lib/commands/pack.js
vendored
17
deps/npm/lib/commands/pack.js
vendored
|
@ -1,11 +1,8 @@
|
|||
const util = require('util')
|
||||
const pacote = require('pacote')
|
||||
const libpack = require('libnpmpack')
|
||||
const npa = require('npm-package-arg')
|
||||
const path = require('path')
|
||||
const log = require('../utils/log-shim')
|
||||
const { getContents, logTar } = require('../utils/tar.js')
|
||||
const writeFile = util.promisify(require('fs').writeFile)
|
||||
const BaseCommand = require('../base-command.js')
|
||||
|
||||
class Pack extends BaseCommand {
|
||||
|
@ -28,7 +25,6 @@ class Pack extends BaseCommand {
|
|||
}
|
||||
|
||||
const unicode = this.npm.config.get('unicode')
|
||||
const dryRun = this.npm.config.get('dry-run')
|
||||
const json = this.npm.config.get('json')
|
||||
|
||||
// Get the manifests and filenames first so we can bail early on manifest
|
||||
|
@ -40,24 +36,15 @@ class Pack extends BaseCommand {
|
|||
if (!manifest._id) {
|
||||
throw new Error('Invalid package, must have name and version')
|
||||
}
|
||||
|
||||
const filename = `${manifest.name}-${manifest.version}.tgz`
|
||||
.replace(/^@/, '').replace(/\//, '-')
|
||||
manifests.push({ arg, filename, manifest })
|
||||
manifests.push({ arg, manifest })
|
||||
}
|
||||
|
||||
// Load tarball names up for printing afterward to isolate from the
|
||||
// noise generated during packing
|
||||
const tarballs = []
|
||||
for (const { arg, filename, manifest } of manifests) {
|
||||
for (const { arg, manifest } of manifests) {
|
||||
const tarballData = await libpack(arg, this.npm.flatOptions)
|
||||
const pkgContents = await getContents(manifest, tarballData)
|
||||
const tarballFilename = path.resolve(this.npm.config.get('pack-destination'), filename)
|
||||
|
||||
if (!dryRun) {
|
||||
await writeFile(tarballFilename, tarballData)
|
||||
}
|
||||
|
||||
tarballs.push(pkgContents)
|
||||
}
|
||||
|
||||
|
|
3
deps/npm/lib/commands/publish.js
vendored
3
deps/npm/lib/commands/publish.js
vendored
|
@ -83,7 +83,8 @@ class Publish extends BaseCommand {
|
|||
})
|
||||
}
|
||||
|
||||
const tarballData = await pack(spec, opts)
|
||||
// we pass dryRun: true to libnpmpack so it doesn't write the file to disk
|
||||
const tarballData = await pack(spec, { ...opts, dryRun: true })
|
||||
const pkgContents = await getContents(manifest, tarballData)
|
||||
|
||||
// The purpose of re-reading the manifest is in case it changed,
|
||||
|
|
2
deps/npm/lib/commands/unpublish.js
vendored
2
deps/npm/lib/commands/unpublish.js
vendored
|
@ -84,7 +84,7 @@ class Unpublish extends BaseCommand {
|
|||
)
|
||||
}
|
||||
|
||||
const opts = this.npm.flatOptions
|
||||
const opts = { ...this.npm.flatOptions, log }
|
||||
if (!spec || path.resolve(spec.name) === this.npm.localPrefix) {
|
||||
// if there's a package.json in the current folder, then
|
||||
// read the package name and version out of that.
|
||||
|
|
5
deps/npm/lib/utils/config/definitions.js
vendored
5
deps/npm/lib/utils/config/definitions.js
vendored
|
@ -1455,6 +1455,7 @@ define('pack-destination', {
|
|||
description: `
|
||||
Directory in which \`npm pack\` will save tarballs.
|
||||
`,
|
||||
flatten,
|
||||
})
|
||||
|
||||
define('parseable', {
|
||||
|
@ -1587,7 +1588,7 @@ define('save', {
|
|||
default: true,
|
||||
defaultDescription: `\`true\` unless when using \`npm update\` or
|
||||
\`npm dedupe\` where it defaults to \`false\``,
|
||||
usage: '-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer',
|
||||
usage: '-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle',
|
||||
type: Boolean,
|
||||
short: 'S',
|
||||
description: `
|
||||
|
@ -1610,7 +1611,7 @@ define('save-bundle', {
|
|||
\`--save-dev\`, or \`--save-optional\`, then also put it in the
|
||||
\`bundleDependencies\` list.
|
||||
|
||||
Ignore if \`--save-peer\` is set, since peerDependencies cannot be bundled.
|
||||
Ignored if \`--save-peer\` is set, since peerDependencies cannot be bundled.
|
||||
`,
|
||||
flatten (key, obj, flatOptions) {
|
||||
// XXX update arborist to just ignore it if resulting saveType is peer
|
||||
|
|
2
deps/npm/man/man1/npm-exec.1
vendored
2
deps/npm/man/man1/npm-exec.1
vendored
|
@ -462,5 +462,7 @@ npm help stop
|
|||
npm help config
|
||||
.IP \(bu 2
|
||||
npm help workspaces
|
||||
.IP \(bu 2
|
||||
npm help npx
|
||||
|
||||
.RE
|
||||
|
|
2
deps/npm/man/man1/npm-ls.1
vendored
2
deps/npm/man/man1/npm-ls.1
vendored
|
@ -26,7 +26,7 @@ example, running \fBnpm ls promzard\fP in npm's source tree will show:
|
|||
.P
|
||||
.RS 2
|
||||
.nf
|
||||
npm@8\.4\.1 /path/to/npm
|
||||
npm@8\.5\.0 /path/to/npm
|
||||
└─┬ init\-package\-json@0\.0\.4
|
||||
└── promzard@0\.1\.5
|
||||
.fi
|
||||
|
|
2
deps/npm/man/man1/npm.1
vendored
2
deps/npm/man/man1/npm.1
vendored
|
@ -10,7 +10,7 @@ npm <command> [args]
|
|||
.RE
|
||||
.SS Version
|
||||
.P
|
||||
8\.4\.1
|
||||
8\.5\.0
|
||||
.SS Description
|
||||
.P
|
||||
npm is the package manager for the Node JavaScript platform\. It puts
|
||||
|
|
2
deps/npm/man/man1/npx.1
vendored
2
deps/npm/man/man1/npx.1
vendored
|
@ -209,5 +209,7 @@ npm help restart
|
|||
npm help stop
|
||||
.IP \(bu 2
|
||||
npm help config
|
||||
.IP \(bu 2
|
||||
npm help exec
|
||||
|
||||
.RE
|
||||
|
|
2
deps/npm/man/man7/config.7
vendored
2
deps/npm/man/man7/config.7
vendored
|
@ -1704,7 +1704,7 @@ If a package would be saved at install time by the use of \fB\-\-save\fP,
|
|||
\fB\-\-save\-dev\fP, or \fB\-\-save\-optional\fP, then also put it in the
|
||||
\fBbundleDependencies\fP list\.
|
||||
.P
|
||||
Ignore if \fB\-\-save\-peer\fP is set, since peerDependencies cannot be bundled\.
|
||||
Ignored if \fB\-\-save\-peer\fP is set, since peerDependencies cannot be bundled\.
|
||||
<!\-\- automatically generated, do not edit manually \-\->
|
||||
<!\-\- see lib/utils/config/definitions\.js \-\->
|
||||
|
||||
|
|
48
deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
generated
vendored
48
deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
generated
vendored
|
@ -1250,24 +1250,40 @@ This is a one-time fix-up, please be patient...
|
|||
// Don't bother to load the manifest for link deps, because the target
|
||||
// might be within another package that doesn't exist yet.
|
||||
const { legacyPeerDeps } = this
|
||||
return spec.type === 'directory'
|
||||
? this[_linkFromSpec](name, spec, parent, edge)
|
||||
: this[_fetchManifest](spec)
|
||||
.then(pkg => new Node({ name, pkg, parent, legacyPeerDeps }), error => {
|
||||
error.requiredBy = edge.from.location || '.'
|
||||
|
||||
// failed to load the spec, either because of enotarget or
|
||||
// fetch failure of some other sort. save it so we can verify
|
||||
// later that it's optional, otherwise the error is fatal.
|
||||
const n = new Node({
|
||||
name,
|
||||
parent,
|
||||
error,
|
||||
legacyPeerDeps,
|
||||
})
|
||||
this[_loadFailures].add(n)
|
||||
return n
|
||||
// spec is a directory, link it
|
||||
if (spec.type === 'directory') {
|
||||
return this[_linkFromSpec](name, spec, parent, edge)
|
||||
}
|
||||
|
||||
// if the spec matches a workspace name, then see if the workspace node will
|
||||
// satisfy the edge. if it does, we return the workspace node to make sure it
|
||||
// takes priority.
|
||||
if (this.idealTree.workspaces && this.idealTree.workspaces.has(spec.name)) {
|
||||
const existingNode = this.idealTree.edgesOut.get(spec.name).to
|
||||
if (existingNode && existingNode.isWorkspace && existingNode.satisfies(edge)) {
|
||||
return edge.to
|
||||
}
|
||||
}
|
||||
|
||||
// spec isn't a directory, and either isn't a workspace or the workspace we have
|
||||
// doesn't satisfy the edge. try to fetch a manifest and build a node from that.
|
||||
return this[_fetchManifest](spec)
|
||||
.then(pkg => new Node({ name, pkg, parent, legacyPeerDeps }), error => {
|
||||
error.requiredBy = edge.from.location || '.'
|
||||
|
||||
// failed to load the spec, either because of enotarget or
|
||||
// fetch failure of some other sort. save it so we can verify
|
||||
// later that it's optional, otherwise the error is fatal.
|
||||
const n = new Node({
|
||||
name,
|
||||
parent,
|
||||
error,
|
||||
legacyPeerDeps,
|
||||
})
|
||||
this[_loadFailures].add(n)
|
||||
return n
|
||||
})
|
||||
}
|
||||
|
||||
[_linkFromSpec] (name, spec, parent, edge) {
|
||||
|
|
5
deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js
generated
vendored
5
deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js
generated
vendored
|
@ -1369,6 +1369,10 @@ module.exports = cls => class Reifier extends cls {
|
|||
devDependencies = {},
|
||||
optionalDependencies = {},
|
||||
peerDependencies = {},
|
||||
// bundleDependencies is not required by PackageJson like the other fields here
|
||||
// PackageJson also doesn't omit an empty array for this field so defaulting this
|
||||
// to an empty array would add that field to every package.json file.
|
||||
bundleDependencies,
|
||||
} = tree.package
|
||||
|
||||
pkgJson.update({
|
||||
|
@ -1376,6 +1380,7 @@ module.exports = cls => class Reifier extends cls {
|
|||
devDependencies,
|
||||
optionalDependencies,
|
||||
peerDependencies,
|
||||
bundleDependencies,
|
||||
})
|
||||
await pkgJson.save()
|
||||
}
|
||||
|
|
2
deps/npm/node_modules/@npmcli/arborist/package.json
generated
vendored
2
deps/npm/node_modules/@npmcli/arborist/package.json
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@npmcli/arborist",
|
||||
"version": "4.3.0",
|
||||
"version": "4.3.1",
|
||||
"description": "Manage node_modules trees",
|
||||
"dependencies": {
|
||||
"@isaacs/string-locale-compare": "^1.1.0",
|
||||
|
|
5
deps/npm/node_modules/@npmcli/config/lib/env-replace.js
generated
vendored
5
deps/npm/node_modules/@npmcli/config/lib/env-replace.js
generated
vendored
|
@ -3,11 +3,12 @@
|
|||
const envExpr = /(\\*)\$\{([^}]+)\}/g
|
||||
|
||||
module.exports = (f, env) => f.replace(envExpr, (orig, esc, name) => {
|
||||
const val = env[name] !== undefined ? env[name] : `\$\{${name}\}`
|
||||
const val = env[name] !== undefined ? env[name] : `$\{${name}}`
|
||||
|
||||
// consume the escape chars that are relevant.
|
||||
if (esc.length % 2)
|
||||
if (esc.length % 2) {
|
||||
return orig.substr((esc.length + 1) / 2)
|
||||
}
|
||||
|
||||
return (esc.substr(esc.length / 2)) + val
|
||||
})
|
||||
|
|
206
deps/npm/node_modules/@npmcli/config/lib/index.js
generated
vendored
206
deps/npm/node_modules/@npmcli/config/lib/index.js
generated
vendored
|
@ -3,6 +3,8 @@ const walkUp = require('walk-up-path')
|
|||
const ini = require('ini')
|
||||
const nopt = require('nopt')
|
||||
const mkdirp = require('mkdirp-infer-owner')
|
||||
const mapWorkspaces = require('@npmcli/map-workspaces')
|
||||
const rpj = require('read-package-json-fast')
|
||||
|
||||
/* istanbul ignore next */
|
||||
const myUid = process.getuid && process.getuid()
|
||||
|
@ -91,7 +93,6 @@ class Config {
|
|||
execPath = process.execPath,
|
||||
cwd = process.cwd(),
|
||||
}) {
|
||||
|
||||
// turn the definitions into nopt's weirdo syntax
|
||||
this.definitions = definitions
|
||||
const types = {}
|
||||
|
@ -100,8 +101,9 @@ class Config {
|
|||
for (const [key, def] of Object.entries(definitions)) {
|
||||
defaults[key] = def.default
|
||||
types[key] = def.type
|
||||
if (def.deprecated)
|
||||
if (def.deprecated) {
|
||||
this.deprecated[key] = def.deprecated.trim().replace(/\n +/, '\n')
|
||||
}
|
||||
}
|
||||
|
||||
// populated the first time we flatten the object
|
||||
|
@ -162,41 +164,48 @@ class Config {
|
|||
|
||||
// return the location where key is found.
|
||||
find (key) {
|
||||
if (!this.loaded)
|
||||
if (!this.loaded) {
|
||||
throw new Error('call config.load() before reading values')
|
||||
}
|
||||
return this[_find](key)
|
||||
}
|
||||
|
||||
[_find] (key) {
|
||||
// have to look in reverse order
|
||||
const entries = [...this.data.entries()]
|
||||
for (let i = entries.length - 1; i > -1; i--) {
|
||||
const [where, { data }] = entries[i]
|
||||
if (hasOwnProperty(data, key))
|
||||
if (hasOwnProperty(data, key)) {
|
||||
return where
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
get (key, where) {
|
||||
if (!this.loaded)
|
||||
if (!this.loaded) {
|
||||
throw new Error('call config.load() before reading values')
|
||||
}
|
||||
return this[_get](key, where)
|
||||
}
|
||||
|
||||
// we need to get values sometimes, so use this internal one to do so
|
||||
// while in the process of loading.
|
||||
[_get] (key, where = null) {
|
||||
if (where !== null && !confTypes.has(where)) {
|
||||
throw new Error('invalid config location param: ' + where)
|
||||
}
|
||||
const { data, source } = this.data.get(where || 'cli')
|
||||
const { data } = this.data.get(where || 'cli')
|
||||
return where === null || hasOwnProperty(data, key) ? data[key] : undefined
|
||||
}
|
||||
|
||||
set (key, val, where = 'cli') {
|
||||
if (!this.loaded)
|
||||
if (!this.loaded) {
|
||||
throw new Error('call config.load() before setting values')
|
||||
if (!confTypes.has(where))
|
||||
}
|
||||
if (!confTypes.has(where)) {
|
||||
throw new Error('invalid config location param: ' + where)
|
||||
}
|
||||
this[_checkDeprecated](key)
|
||||
const { data } = this.data.get(where)
|
||||
data[key] = val
|
||||
|
@ -209,8 +218,9 @@ class Config {
|
|||
}
|
||||
|
||||
get flat () {
|
||||
if (this[_flatOptions])
|
||||
if (this[_flatOptions]) {
|
||||
return this[_flatOptions]
|
||||
}
|
||||
|
||||
// create the object for flat options passed to deps
|
||||
process.emit('time', 'config:load:flatten')
|
||||
|
@ -225,16 +235,19 @@ class Config {
|
|||
}
|
||||
|
||||
delete (key, where = 'cli') {
|
||||
if (!this.loaded)
|
||||
if (!this.loaded) {
|
||||
throw new Error('call config.load() before deleting values')
|
||||
if (!confTypes.has(where))
|
||||
}
|
||||
if (!confTypes.has(where)) {
|
||||
throw new Error('invalid config location param: ' + where)
|
||||
}
|
||||
delete this.data.get(where).data[key]
|
||||
}
|
||||
|
||||
async load () {
|
||||
if (this.loaded)
|
||||
if (this.loaded) {
|
||||
throw new Error('attempting to load npm config multiple times')
|
||||
}
|
||||
|
||||
process.emit('time', 'config:load')
|
||||
// first load the defaults, which sets the global prefix
|
||||
|
@ -282,7 +295,9 @@ class Config {
|
|||
const creds = this.getCredentialsByURI(reg)
|
||||
// ignore this error because a failed set will strip out anything that
|
||||
// might be a security hazard, which was the intention.
|
||||
try { this.setCredentialsByURI(reg, creds) } catch (_) {}
|
||||
try {
|
||||
this.setCredentialsByURI(reg, creds)
|
||||
} catch (_) {}
|
||||
process.emit('timeEnd', 'config:load:credentials')
|
||||
|
||||
// set proper globalPrefix now that everything is loaded
|
||||
|
@ -319,14 +334,16 @@ class Config {
|
|||
}
|
||||
|
||||
loadHome () {
|
||||
if (this.env.HOME)
|
||||
if (this.env.HOME) {
|
||||
return this.home = this.env.HOME
|
||||
}
|
||||
this.home = homedir()
|
||||
}
|
||||
|
||||
loadGlobalPrefix () {
|
||||
if (this.globalPrefix)
|
||||
if (this.globalPrefix) {
|
||||
throw new Error('cannot load default global prefix more than once')
|
||||
}
|
||||
|
||||
if (this.env.PREFIX) {
|
||||
this.globalPrefix = this.env.PREFIX
|
||||
|
@ -338,17 +355,18 @@ class Config {
|
|||
this.globalPrefix = dirname(dirname(this.execPath))
|
||||
|
||||
// destdir only is respected on Unix
|
||||
if (this.env.DESTDIR)
|
||||
if (this.env.DESTDIR) {
|
||||
this.globalPrefix = join(this.env.DESTDIR, this.globalPrefix)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
loadEnv () {
|
||||
const prefix = 'npm_config_'
|
||||
const conf = Object.create(null)
|
||||
for (const [envKey, envVal] of Object.entries(this.env)) {
|
||||
if (!/^npm_config_/i.test(envKey) || envVal === '')
|
||||
if (!/^npm_config_/i.test(envKey) || envVal === '') {
|
||||
continue
|
||||
}
|
||||
const key = envKey.substr('npm_config_'.length)
|
||||
.replace(/(?!^)_/g, '-') // don't replace _ at the start of the key
|
||||
.toLowerCase()
|
||||
|
@ -368,9 +386,10 @@ class Config {
|
|||
}
|
||||
|
||||
get valid () {
|
||||
for (const [where, {valid}] of this.data.entries()) {
|
||||
if (valid === false || valid === null && !this.validate(where))
|
||||
for (const [where, { valid }] of this.data.entries()) {
|
||||
if (valid === false || valid === null && !this.validate(where)) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
@ -378,11 +397,12 @@ class Config {
|
|||
validate (where) {
|
||||
if (!where) {
|
||||
let valid = true
|
||||
for (const [where, obj] of this.data.entries()) {
|
||||
for (const [where] of this.data.entries()) {
|
||||
// no need to validate our defaults, we know they're fine
|
||||
// cli was already validated when parsed the first time
|
||||
if (where === 'default' || where === 'builtin' || where === 'cli')
|
||||
if (where === 'default' || where === 'builtin' || where === 'cli') {
|
||||
continue
|
||||
}
|
||||
const ret = this.validate(where)
|
||||
valid = valid && ret
|
||||
}
|
||||
|
@ -424,14 +444,15 @@ class Config {
|
|||
this.data.get(where)[_valid] = false
|
||||
|
||||
if (Array.isArray(type)) {
|
||||
if (type.includes(typeDefs.url.type))
|
||||
if (type.includes(typeDefs.url.type)) {
|
||||
type = typeDefs.url.type
|
||||
else {
|
||||
} else {
|
||||
/* istanbul ignore if - no actual configs matching this, but
|
||||
* path types SHOULD be handled this way, like URLs, for the
|
||||
* same reason */
|
||||
if (type.includes(typeDefs.path.type))
|
||||
if (type.includes(typeDefs.path.type)) {
|
||||
type = typeDefs.path.type
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -469,15 +490,17 @@ class Config {
|
|||
this.sources.set(source, where)
|
||||
if (er) {
|
||||
conf.loadError = er
|
||||
if (er.code !== 'ENOENT')
|
||||
if (er.code !== 'ENOENT') {
|
||||
this.log.verbose('config', `error loading ${where} config`, er)
|
||||
}
|
||||
} else {
|
||||
conf.raw = obj
|
||||
for (const [key, value] of Object.entries(obj)) {
|
||||
const k = envReplace(key, this.env)
|
||||
const v = this.parseField(value, k)
|
||||
if (where !== 'default')
|
||||
if (where !== 'default') {
|
||||
this[_checkDeprecated](k, where, obj, [key, value])
|
||||
}
|
||||
conf.data[k] = v
|
||||
}
|
||||
}
|
||||
|
@ -528,9 +551,9 @@ class Config {
|
|||
// up loading the "project" config where the "userconfig" will be,
|
||||
// which causes some calamaties. So, we only load project config if
|
||||
// it doesn't match what the userconfig will be.
|
||||
if (projectFile !== this[_get]('userconfig'))
|
||||
if (projectFile !== this[_get]('userconfig')) {
|
||||
return this[_loadFile](projectFile, 'project')
|
||||
else {
|
||||
} else {
|
||||
this.data.get('project').source = '(same as "user" config, ignored)'
|
||||
this.sources.set(this.data.get('project').source, 'project')
|
||||
}
|
||||
|
@ -543,23 +566,65 @@ class Config {
|
|||
return
|
||||
}
|
||||
|
||||
const cliWorkspaces = this[_get]('workspaces', 'cli')
|
||||
|
||||
for (const p of walkUp(this.cwd)) {
|
||||
// walk up until we have a nm dir or a pj file
|
||||
const hasAny = (await Promise.all([
|
||||
stat(resolve(p, 'node_modules'))
|
||||
.then(st => st.isDirectory())
|
||||
.catch(() => false),
|
||||
stat(resolve(p, 'package.json'))
|
||||
.then(st => st.isFile())
|
||||
.catch(() => false),
|
||||
])).some(is => is)
|
||||
if (hasAny) {
|
||||
const hasNodeModules = await stat(resolve(p, 'node_modules'))
|
||||
.then((st) => st.isDirectory())
|
||||
.catch(() => false)
|
||||
|
||||
const hasPackageJson = await stat(resolve(p, 'package.json'))
|
||||
.then((st) => st.isFile())
|
||||
.catch(() => false)
|
||||
|
||||
if (!this.localPrefix && (hasNodeModules || hasPackageJson)) {
|
||||
this.localPrefix = p
|
||||
return
|
||||
|
||||
// if workspaces are disabled, return now
|
||||
if (cliWorkspaces === false) {
|
||||
return
|
||||
}
|
||||
|
||||
// otherwise, continue the loop
|
||||
continue
|
||||
}
|
||||
|
||||
if (this.localPrefix && hasPackageJson) {
|
||||
// if we already set localPrefix but this dir has a package.json
|
||||
// then we need to see if `p` is a workspace root by reading its package.json
|
||||
// however, if reading it fails then we should just move on
|
||||
const pkg = await rpj(resolve(p, 'package.json')).catch(() => false)
|
||||
if (!pkg) {
|
||||
continue
|
||||
}
|
||||
|
||||
const workspaces = await mapWorkspaces({ cwd: p, pkg })
|
||||
for (const w of workspaces.values()) {
|
||||
if (w === this.localPrefix) {
|
||||
// see if there's a .npmrc file in the workspace, if so log a warning
|
||||
const hasNpmrc = await stat(resolve(this.localPrefix, '.npmrc'))
|
||||
.then((st) => st.isFile())
|
||||
.catch(() => false)
|
||||
|
||||
if (hasNpmrc) {
|
||||
this.log.warn(`ignoring workspace config at ${this.localPrefix}/.npmrc`)
|
||||
}
|
||||
|
||||
// set the workspace in the default layer, which allows it to be overridden easily
|
||||
const { data } = this.data.get('default')
|
||||
data.workspace = [this.localPrefix]
|
||||
this.localPrefix = p
|
||||
this.log.info(`found workspace root at ${this.localPrefix}`)
|
||||
// we found a root, so we return now
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.localPrefix = this.cwd
|
||||
if (!this.localPrefix) {
|
||||
this.localPrefix = this.cwd
|
||||
}
|
||||
}
|
||||
|
||||
loadUserConfig () {
|
||||
|
@ -571,10 +636,12 @@ class Config {
|
|||
}
|
||||
|
||||
async save (where) {
|
||||
if (!this.loaded)
|
||||
if (!this.loaded) {
|
||||
throw new Error('call config.load() before saving')
|
||||
if (!confFileTypes.has(where))
|
||||
}
|
||||
if (!confFileTypes.has(where)) {
|
||||
throw new Error('invalid config location param: ' + where)
|
||||
}
|
||||
const conf = this.data.get(where)
|
||||
conf[_raw] = { ...conf.data }
|
||||
conf[_loadError] = null
|
||||
|
@ -586,7 +653,9 @@ class Config {
|
|||
// we ignore this error because the failed set already removed
|
||||
// anything that might be a security hazard, and it won't be
|
||||
// saved back to the .npmrc file, so we're good.
|
||||
try { this.setCredentialsByURI(reg, creds) } catch (_) {}
|
||||
try {
|
||||
this.setCredentialsByURI(reg, creds)
|
||||
} catch (_) {}
|
||||
}
|
||||
|
||||
const iniData = ini.stringify(conf.data).trim() + '\n'
|
||||
|
@ -602,8 +671,9 @@ class Config {
|
|||
/* istanbul ignore if - this is best-effort and a pita to test */
|
||||
if (myUid === 0) {
|
||||
const st = await stat(dir).catch(() => null)
|
||||
if (st && (st.uid !== myUid || st.gid !== myGid))
|
||||
if (st && (st.uid !== myUid || st.gid !== myGid)) {
|
||||
await chown(conf.source, st.uid, st.gid).catch(() => {})
|
||||
}
|
||||
}
|
||||
const mode = where === 'user' ? 0o600 : 0o666
|
||||
await chmod(conf.source, mode)
|
||||
|
@ -651,8 +721,9 @@ class Config {
|
|||
email = email ||
|
||||
this.get('email', 'user') ||
|
||||
this.get(`${nerfed}:email`, 'user')
|
||||
if (email)
|
||||
if (email) {
|
||||
this.set('email', email, 'user')
|
||||
}
|
||||
}
|
||||
|
||||
// field that hasn't been used as documented for a LONG time,
|
||||
|
@ -668,10 +739,12 @@ class Config {
|
|||
this.delete(`${nerfed}:_password`, 'user')
|
||||
this.delete(`${nerfed}:username`, 'user')
|
||||
} else if (username || password) {
|
||||
if (!username)
|
||||
if (!username) {
|
||||
throw new Error('must include username')
|
||||
if (!password)
|
||||
}
|
||||
if (!password) {
|
||||
throw new Error('must include password')
|
||||
}
|
||||
this.delete(`${nerfed}:_authToken`, 'user')
|
||||
this.set(`${nerfed}:username`, username, 'user')
|
||||
// note: not encrypted, no idea why we bothered to do this, but oh well
|
||||
|
@ -689,8 +762,9 @@ class Config {
|
|||
const creds = {}
|
||||
|
||||
const email = this.get(`${nerfed}:email`) || this.get('email')
|
||||
if (email)
|
||||
if (email) {
|
||||
creds.email = email
|
||||
}
|
||||
|
||||
const tokenReg = this.get(`${nerfed}:_authToken`) ||
|
||||
this.get(`${nerfed}:_authtoken`) ||
|
||||
|
@ -725,8 +799,9 @@ class Config {
|
|||
// at this point, we can only use the values if the URI is the
|
||||
// default registry.
|
||||
const defaultNerf = nerfDart(this.get('registry'))
|
||||
if (nerfed !== defaultNerf)
|
||||
if (nerfed !== defaultNerf) {
|
||||
return creds
|
||||
}
|
||||
|
||||
const userDef = this.get('username')
|
||||
const passDef = this.get('_password')
|
||||
|
@ -741,8 +816,9 @@ class Config {
|
|||
// Handle the old-style _auth=<base64> style for the default
|
||||
// registry, if set.
|
||||
const auth = this.get('_auth')
|
||||
if (!auth)
|
||||
if (!auth) {
|
||||
return creds
|
||||
}
|
||||
|
||||
const authDecode = Buffer.from(auth, 'base64').toString('utf8')
|
||||
const authSplit = authDecode.split(':')
|
||||
|
@ -755,7 +831,9 @@ class Config {
|
|||
// set up the environment object we have with npm_config_* environs
|
||||
// for all configs that are different from their default values, and
|
||||
// set EDITOR and HOME.
|
||||
setEnvs () { setEnvs(this) }
|
||||
setEnvs () {
|
||||
setEnvs(this)
|
||||
}
|
||||
}
|
||||
|
||||
const _data = Symbol('data')
|
||||
|
@ -781,25 +859,37 @@ class ConfigData {
|
|||
}
|
||||
|
||||
set source (s) {
|
||||
if (this[_source])
|
||||
if (this[_source]) {
|
||||
throw new Error('cannot set ConfigData source more than once')
|
||||
}
|
||||
this[_source] = s
|
||||
}
|
||||
get source () { return this[_source] }
|
||||
|
||||
get source () {
|
||||
return this[_source]
|
||||
}
|
||||
|
||||
set loadError (e) {
|
||||
if (this[_loadError] || this[_raw])
|
||||
if (this[_loadError] || this[_raw]) {
|
||||
throw new Error('cannot set ConfigData loadError after load')
|
||||
}
|
||||
this[_loadError] = e
|
||||
}
|
||||
get loadError () { return this[_loadError] }
|
||||
|
||||
get loadError () {
|
||||
return this[_loadError]
|
||||
}
|
||||
|
||||
set raw (r) {
|
||||
if (this[_raw] || this[_loadError])
|
||||
if (this[_raw] || this[_loadError]) {
|
||||
throw new Error('cannot set ConfigData raw after load')
|
||||
}
|
||||
this[_raw] = r
|
||||
}
|
||||
get raw () { return this[_raw] }
|
||||
|
||||
get raw () {
|
||||
return this[_raw]
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Config
|
||||
|
|
22
deps/npm/node_modules/@npmcli/config/lib/parse-field.js
generated
vendored
22
deps/npm/node_modules/@npmcli/config/lib/parse-field.js
generated
vendored
|
@ -6,10 +6,11 @@ const { resolve } = require('path')
|
|||
const { parse: umaskParse } = require('./umask.js')
|
||||
|
||||
const parseField = (f, key, opts, listElement = false) => {
|
||||
if (typeof f !== 'string' && !Array.isArray(f))
|
||||
if (typeof f !== 'string' && !Array.isArray(f)) {
|
||||
return f
|
||||
}
|
||||
|
||||
const { platform, types, log, home, env } = opts
|
||||
const { platform, types, home, env } = opts
|
||||
|
||||
// type can be array or a single thing. coerce to array.
|
||||
const typeList = new Set([].concat(types[key]))
|
||||
|
@ -20,8 +21,9 @@ const parseField = (f, key, opts, listElement = false) => {
|
|||
const isNumber = typeList.has(typeDefs.Number.type)
|
||||
const isList = !listElement && typeList.has(Array)
|
||||
|
||||
if (Array.isArray(f))
|
||||
if (Array.isArray(f)) {
|
||||
return !isList ? f : f.map(field => parseField(field, key, opts, true))
|
||||
}
|
||||
|
||||
// now we know it's a string
|
||||
f = f.trim()
|
||||
|
@ -29,12 +31,14 @@ const parseField = (f, key, opts, listElement = false) => {
|
|||
// list types get put in the environment separated by double-\n
|
||||
// usually a single \n would suffice, but ca/cert configs can contain
|
||||
// line breaks and multiple entries.
|
||||
if (isList)
|
||||
if (isList) {
|
||||
return parseField(f.split('\n\n'), key, opts)
|
||||
}
|
||||
|
||||
// --foo is like --foo=true for boolean types
|
||||
if (isBool && !isString && f === '')
|
||||
if (isBool && !isString && f === '') {
|
||||
return true
|
||||
}
|
||||
|
||||
// string types can be the string 'true', 'false', etc.
|
||||
// otherwise, parse these values out
|
||||
|
@ -51,10 +55,11 @@ const parseField = (f, key, opts, listElement = false) => {
|
|||
|
||||
if (isPath) {
|
||||
const homePattern = platform === 'win32' ? /^~(\/|\\)/ : /^~\//
|
||||
if (homePattern.test(f) && home)
|
||||
if (homePattern.test(f) && home) {
|
||||
f = resolve(home, f.substr(2))
|
||||
else
|
||||
} else {
|
||||
f = resolve(f)
|
||||
}
|
||||
}
|
||||
|
||||
if (isUmask) {
|
||||
|
@ -66,8 +71,9 @@ const parseField = (f, key, opts, listElement = false) => {
|
|||
}
|
||||
}
|
||||
|
||||
if (isNumber && !isNaN(f))
|
||||
if (isNumber && !isNaN(f)) {
|
||||
f = +f
|
||||
}
|
||||
|
||||
return f
|
||||
}
|
||||
|
|
29
deps/npm/node_modules/@npmcli/config/lib/set-envs.js
generated
vendored
29
deps/npm/node_modules/@npmcli/config/lib/set-envs.js
generated
vendored
|
@ -22,15 +22,17 @@ const sameConfigValue = (def, val) =>
|
|||
: sameArrayValue(def, val)
|
||||
|
||||
const sameArrayValue = (def, val) => {
|
||||
if (def.length !== val.length)
|
||||
if (def.length !== val.length) {
|
||||
return false
|
||||
}
|
||||
|
||||
for (let i = 0; i < def.length; i++) {
|
||||
/* istanbul ignore next - there are no array configs where the default
|
||||
* is not an empty array, so this loop is a no-op, but it's the correct
|
||||
* thing to do if we ever DO add a config like that. */
|
||||
if (def[i] !== val[i])
|
||||
if (def[i] !== val[i]) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
@ -38,16 +40,15 @@ const sameArrayValue = (def, val) => {
|
|||
const setEnv = (env, rawKey, rawVal) => {
|
||||
const val = envVal(rawVal)
|
||||
const key = envKey(rawKey, val)
|
||||
if (key && val !== null)
|
||||
if (key && val !== null) {
|
||||
env[key] = val
|
||||
}
|
||||
}
|
||||
|
||||
const setEnvs = (config) => {
|
||||
// This ensures that all npm config values that are not the defaults are
|
||||
// shared appropriately with child processes, without false positives.
|
||||
const {
|
||||
globalPrefix,
|
||||
platform,
|
||||
env,
|
||||
defaults,
|
||||
definitions,
|
||||
|
@ -68,19 +69,22 @@ const setEnvs = (config) => {
|
|||
const envSet = new Set(Object.keys(envConf))
|
||||
for (const key in cliConf) {
|
||||
const { deprecated, envExport = true } = definitions[key] || {}
|
||||
if (deprecated || envExport === false)
|
||||
if (deprecated || envExport === false) {
|
||||
continue
|
||||
}
|
||||
|
||||
if (sameConfigValue(defaults[key], cliConf[key])) {
|
||||
// config is the default, if the env thought different, then we
|
||||
// have to set it BACK to the default in the environment.
|
||||
if (!sameConfigValue(envConf[key], cliConf[key]))
|
||||
if (!sameConfigValue(envConf[key], cliConf[key])) {
|
||||
setEnv(env, key, cliConf[key])
|
||||
}
|
||||
} else {
|
||||
// config is not the default. if the env wasn't the one to set
|
||||
// it that way, then we have to put it in the env
|
||||
if (!(envSet.has(key) && !cliSet.has(key)))
|
||||
if (!(envSet.has(key) && !cliSet.has(key))) {
|
||||
setEnv(env, key, cliConf[key])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -88,16 +92,19 @@ const setEnvs = (config) => {
|
|||
env.HOME = config.home
|
||||
env.npm_config_global_prefix = config.globalPrefix
|
||||
env.npm_config_local_prefix = config.localPrefix
|
||||
if (cliConf.editor)
|
||||
if (cliConf.editor) {
|
||||
env.EDITOR = cliConf.editor
|
||||
}
|
||||
|
||||
// note: this doesn't afect the *current* node process, of course, since
|
||||
// it's already started, but it does affect the options passed to scripts.
|
||||
if (cliConf['node-options'])
|
||||
if (cliConf['node-options']) {
|
||||
env.NODE_OPTIONS = cliConf['node-options']
|
||||
}
|
||||
|
||||
if (require.main && require.main.filename)
|
||||
if (require.main && require.main.filename) {
|
||||
env.npm_execpath = require.main.filename
|
||||
}
|
||||
env.NODE = env.npm_node_execpath = config.execPath
|
||||
}
|
||||
|
||||
|
|
6
deps/npm/node_modules/@npmcli/config/lib/type-defs.js
generated
vendored
6
deps/npm/node_modules/@npmcli/config/lib/type-defs.js
generated
vendored
|
@ -5,15 +5,17 @@ const { Umask, validate: validateUmask } = require('./umask.js')
|
|||
const semver = require('semver')
|
||||
const validateSemver = (data, k, val) => {
|
||||
const valid = semver.valid(val)
|
||||
if (!valid)
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
data[k] = valid
|
||||
}
|
||||
|
||||
const noptValidatePath = nopt.typeDefs.path.validate
|
||||
const validatePath = (data, k, val) => {
|
||||
if (typeof val !== 'string')
|
||||
if (typeof val !== 'string') {
|
||||
return false
|
||||
}
|
||||
return noptValidatePath(data, k, val)
|
||||
}
|
||||
|
||||
|
|
9
deps/npm/node_modules/@npmcli/config/lib/type-description.js
generated
vendored
9
deps/npm/node_modules/@npmcli/config/lib/type-description.js
generated
vendored
|
@ -2,15 +2,18 @@
|
|||
// returns a string for one thing, or an array of descriptions
|
||||
const typeDefs = require('./type-defs.js')
|
||||
const typeDescription = t => {
|
||||
if (!t || typeof t !== 'function' && typeof t !== 'object')
|
||||
if (!t || typeof t !== 'function' && typeof t !== 'object') {
|
||||
return t
|
||||
}
|
||||
|
||||
if (Array.isArray(t))
|
||||
if (Array.isArray(t)) {
|
||||
return t.map(t => typeDescription(t))
|
||||
}
|
||||
|
||||
for (const { type, description } of Object.values(typeDefs)) {
|
||||
if (type === t)
|
||||
if (type === t) {
|
||||
return description || type
|
||||
}
|
||||
}
|
||||
|
||||
return t
|
||||
|
|
13
deps/npm/node_modules/@npmcli/config/lib/umask.js
generated
vendored
13
deps/npm/node_modules/@npmcli/config/lib/umask.js
generated
vendored
|
@ -1,18 +1,21 @@
|
|||
class Umask {}
|
||||
const parse = val => {
|
||||
if (typeof val === 'string') {
|
||||
if (/^0o?[0-7]+$/.test(val))
|
||||
if (/^0o?[0-7]+$/.test(val)) {
|
||||
return parseInt(val.replace(/^0o?/, ''), 8)
|
||||
else if (/^[1-9][0-9]*$/.test(val))
|
||||
} else if (/^[1-9][0-9]*$/.test(val)) {
|
||||
return parseInt(val, 10)
|
||||
else
|
||||
} else {
|
||||
throw new Error(`invalid umask value: ${val}`)
|
||||
}
|
||||
}
|
||||
if (typeof val !== 'number')
|
||||
if (typeof val !== 'number') {
|
||||
throw new Error(`invalid umask value: ${val}`)
|
||||
}
|
||||
val = Math.floor(val)
|
||||
if (val < 0 || val > 511)
|
||||
if (val < 0 || val > 511) {
|
||||
throw new Error(`invalid umask value: ${val}`)
|
||||
}
|
||||
return val
|
||||
}
|
||||
|
||||
|
|
20
deps/npm/node_modules/@npmcli/config/package.json
generated
vendored
20
deps/npm/node_modules/@npmcli/config/package.json
generated
vendored
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"name": "@npmcli/config",
|
||||
"version": "2.4.0",
|
||||
"version": "3.0.0",
|
||||
"files": [
|
||||
"bin",
|
||||
"lib"
|
||||
],
|
||||
"main": "lib/index.js",
|
||||
|
@ -10,30 +11,41 @@
|
|||
"type": "git",
|
||||
"url": "git+https://github.com/npm/config"
|
||||
},
|
||||
"author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
|
||||
"author": "GitHub Inc.",
|
||||
"license": "ISC",
|
||||
"scripts": {
|
||||
"test": "tap",
|
||||
"snap": "tap",
|
||||
"preversion": "npm test",
|
||||
"postversion": "npm publish",
|
||||
"prepublishOnly": "git push origin --follow-tags"
|
||||
"prepublishOnly": "git push origin --follow-tags",
|
||||
"lint": "eslint '**/*.js'",
|
||||
"postlint": "npm-template-check",
|
||||
"lintfix": "npm run lint -- --fix",
|
||||
"posttest": "npm run lint",
|
||||
"template-copy": "npm-template-copy --force"
|
||||
},
|
||||
"tap": {
|
||||
"check-coverage": true,
|
||||
"coverage-map": "map.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@npmcli/template-oss": "^2.5.1",
|
||||
"tap": "^15.0.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@npmcli/map-workspaces": "^2.0.0",
|
||||
"ini": "^2.0.0",
|
||||
"mkdirp-infer-owner": "^2.0.0",
|
||||
"nopt": "^5.0.0",
|
||||
"read-package-json-fast": "^2.0.3",
|
||||
"semver": "^7.3.4",
|
||||
"walk-up-path": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
"node": "^12.13.0 || ^14.15.0 || >=16"
|
||||
},
|
||||
"templateOSS": {
|
||||
"version": "2.6.0"
|
||||
}
|
||||
}
|
||||
|
|
18
deps/npm/node_modules/are-we-there-yet/package.json
generated
vendored
18
deps/npm/node_modules/are-we-there-yet/package.json
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "are-we-there-yet",
|
||||
"version": "2.0.0",
|
||||
"version": "3.0.0",
|
||||
"description": "Keep track of the overall completion of many disparate processes",
|
||||
"main": "lib/index.js",
|
||||
"scripts": {
|
||||
|
@ -13,7 +13,9 @@
|
|||
"preversion": "npm test",
|
||||
"postversion": "npm publish",
|
||||
"prepublishOnly": "git push origin --follow-tags",
|
||||
"snap": "tap"
|
||||
"snap": "tap",
|
||||
"postlint": "npm-template-check",
|
||||
"template-copy": "npm-template-copy --force"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
@ -26,9 +28,9 @@
|
|||
},
|
||||
"homepage": "https://github.com/npm/are-we-there-yet",
|
||||
"devDependencies": {
|
||||
"@npmcli/eslint-config": "^1.0.0",
|
||||
"@npmcli/template-oss": "^1.0.2",
|
||||
"eslint": "^7.32.0",
|
||||
"@npmcli/eslint-config": "^2.0.0",
|
||||
"@npmcli/template-oss": "^2.7.1",
|
||||
"eslint": "^8.8.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"tap": "^15.0.9"
|
||||
},
|
||||
|
@ -41,7 +43,7 @@
|
|||
"lib"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
"node": "^12.13.0 || ^14.15.0 || >=16"
|
||||
},
|
||||
"tap": {
|
||||
"branches": 68,
|
||||
|
@ -49,5 +51,7 @@
|
|||
"functions": 86,
|
||||
"lines": 92
|
||||
},
|
||||
"templateVersion": "1.0.2"
|
||||
"templateOSS": {
|
||||
"version": "2.7.1"
|
||||
}
|
||||
}
|
||||
|
|
11
deps/npm/node_modules/libnpmpack/lib/index.js
generated
vendored
11
deps/npm/node_modules/libnpmpack/lib/index.js
generated
vendored
|
@ -3,6 +3,9 @@
|
|||
const pacote = require('pacote')
|
||||
const npa = require('npm-package-arg')
|
||||
const runScript = require('@npmcli/run-script')
|
||||
const path = require('path')
|
||||
const util = require('util')
|
||||
const writeFile = util.promisify(require('fs').writeFile)
|
||||
|
||||
module.exports = pack
|
||||
async function pack (spec = 'file:.', opts = {}) {
|
||||
|
@ -33,6 +36,14 @@ async function pack (spec = 'file:.', opts = {}) {
|
|||
integrity: manifest._integrity,
|
||||
})
|
||||
|
||||
// check for explicit `false` so the default behavior is to skip writing to disk
|
||||
if (opts.dryRun === false) {
|
||||
const filename = `${manifest.name}-${manifest.version}.tgz`
|
||||
.replace(/^@/, '').replace(/\//, '-')
|
||||
const destination = path.resolve(opts.packDestination, filename)
|
||||
await writeFile(destination, tarball)
|
||||
}
|
||||
|
||||
if (spec.type === 'directory') {
|
||||
// postpack
|
||||
await runScript({
|
||||
|
|
2
deps/npm/node_modules/libnpmpack/package.json
generated
vendored
2
deps/npm/node_modules/libnpmpack/package.json
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "libnpmpack",
|
||||
"version": "3.0.1",
|
||||
"version": "3.1.0",
|
||||
"description": "Programmatic API for the bits behind npm pack",
|
||||
"author": "GitHub Inc.",
|
||||
"main": "lib/index.js",
|
||||
|
|
2
deps/npm/node_modules/make-fetch-happen/lib/agent.js
generated
vendored
2
deps/npm/node_modules/make-fetch-happen/lib/agent.js
generated
vendored
|
@ -89,7 +89,7 @@ function checkNoProxy (uri, opts) {
|
|||
const host = new url.URL(uri).hostname.split('.').reverse()
|
||||
let noproxy = (opts.noProxy || getProcessEnv('no_proxy'))
|
||||
if (typeof noproxy === 'string') {
|
||||
noproxy = noproxy.split(/\s*,\s*/g)
|
||||
noproxy = noproxy.split(',').map(n => n.trim())
|
||||
}
|
||||
|
||||
return noproxy && noproxy.some(no => {
|
||||
|
|
15
deps/npm/node_modules/make-fetch-happen/node_modules/lru-cache/LICENSE
generated
vendored
Normal file
15
deps/npm/node_modules/make-fetch-happen/node_modules/lru-cache/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
The ISC License
|
||||
|
||||
Copyright (c) 2010-2022 Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
581
deps/npm/node_modules/make-fetch-happen/node_modules/lru-cache/index.js
generated
vendored
Normal file
581
deps/npm/node_modules/make-fetch-happen/node_modules/lru-cache/index.js
generated
vendored
Normal file
|
@ -0,0 +1,581 @@
|
|||
const perf = typeof performance === 'object' && performance &&
|
||||
typeof performance.now === 'function' ? performance : Date
|
||||
|
||||
const warned = new Set()
|
||||
const deprecatedOption = (opt, msg) => {
|
||||
const code = `LRU_CACHE_OPTION_${opt}`
|
||||
if (shouldWarn(code)) {
|
||||
warn(code, `The ${opt} option is deprecated. ${msg}`, LRUCache)
|
||||
}
|
||||
}
|
||||
const deprecatedMethod = (method, msg) => {
|
||||
const code = `LRU_CACHE_METHOD_${method}`
|
||||
if (shouldWarn(code)) {
|
||||
const { prototype } = LRUCache
|
||||
const { get } = Object.getOwnPropertyDescriptor(prototype, method)
|
||||
warn(code, `The ${method} method is deprecated. ${msg}`, get)
|
||||
}
|
||||
}
|
||||
const deprecatedProperty = (field, msg) => {
|
||||
const code = `LRU_CACHE_PROPERTY_${field}`
|
||||
if (shouldWarn(code)) {
|
||||
const { prototype } = LRUCache
|
||||
const { get } = Object.getOwnPropertyDescriptor(prototype, field)
|
||||
warn(code, `The ${field} property is deprecated. ${msg}`, get)
|
||||
}
|
||||
}
|
||||
const shouldWarn = (code) => !(process.noDeprecation || warned.has(code))
|
||||
const warn = (code, msg, fn) => {
|
||||
warned.add(code)
|
||||
process.emitWarning(msg, 'DeprecationWarning', code, fn)
|
||||
}
|
||||
|
||||
const isPosInt = n => n && n === Math.floor(n) && n > 0 && isFinite(n)
|
||||
|
||||
/* istanbul ignore next - This is a little bit ridiculous, tbh.
|
||||
* The maximum array length is 2^32-1 or thereabouts on most JS impls.
|
||||
* And well before that point, you're caching the entire world, I mean,
|
||||
* that's ~32GB of just integers for the next/prev links, plus whatever
|
||||
* else to hold that many keys and values. Just filling the memory with
|
||||
* zeroes at init time is brutal when you get that big.
|
||||
* But why not be complete?
|
||||
* Maybe in the future, these limits will have expanded. */
|
||||
const getUintArray = max => !isPosInt(max) ? null
|
||||
: max <= Math.pow(2, 8) ? Uint8Array
|
||||
: max <= Math.pow(2, 16) ? Uint16Array
|
||||
: max <= Math.pow(2, 32) ? Uint32Array
|
||||
: max <= Number.MAX_SAFE_INTEGER ? ZeroArray
|
||||
: null
|
||||
|
||||
class ZeroArray extends Array {
|
||||
constructor (size) {
|
||||
super(size)
|
||||
this.fill(0)
|
||||
}
|
||||
}
|
||||
|
||||
class Stack {
|
||||
constructor (max) {
|
||||
const UintArray = getUintArray(max)
|
||||
this.heap = new UintArray(max)
|
||||
this.length = 0
|
||||
}
|
||||
push (n) {
|
||||
this.heap[this.length++] = n
|
||||
}
|
||||
pop () {
|
||||
return this.heap[--this.length]
|
||||
}
|
||||
}
|
||||
|
||||
class LRUCache {
|
||||
constructor (options = {}) {
|
||||
const {
|
||||
max,
|
||||
ttl,
|
||||
ttlResolution = 1,
|
||||
ttlAutopurge,
|
||||
updateAgeOnGet,
|
||||
allowStale,
|
||||
dispose,
|
||||
disposeAfter,
|
||||
noDisposeOnSet,
|
||||
maxSize,
|
||||
sizeCalculation,
|
||||
} = options
|
||||
|
||||
// deprecated options, don't trigger a warning for getting them if
|
||||
// the thing being passed in is another LRUCache we're copying.
|
||||
const {
|
||||
length,
|
||||
maxAge,
|
||||
stale,
|
||||
} = options instanceof LRUCache ? {} : options
|
||||
|
||||
if (!isPosInt(max)) {
|
||||
throw new TypeError('max option must be an integer')
|
||||
}
|
||||
|
||||
const UintArray = getUintArray(max)
|
||||
if (!UintArray) {
|
||||
throw new Error('invalid max value: ' + max)
|
||||
}
|
||||
|
||||
this.max = max
|
||||
this.maxSize = maxSize || 0
|
||||
this.sizeCalculation = sizeCalculation || length
|
||||
if (this.sizeCalculation) {
|
||||
if (!this.maxSize) {
|
||||
throw new TypeError('cannot set sizeCalculation without setting maxSize')
|
||||
}
|
||||
if (typeof this.sizeCalculation !== 'function') {
|
||||
throw new TypeError('sizeCalculating set to non-function')
|
||||
}
|
||||
}
|
||||
this.keyMap = new Map()
|
||||
this.keyList = new Array(max).fill(null)
|
||||
this.valList = new Array(max).fill(null)
|
||||
this.next = new UintArray(max)
|
||||
this.prev = new UintArray(max)
|
||||
this.head = 0
|
||||
this.tail = 0
|
||||
this.free = new Stack(max)
|
||||
this.initialFill = 1
|
||||
this.size = 0
|
||||
|
||||
if (typeof dispose === 'function') {
|
||||
this.dispose = dispose
|
||||
}
|
||||
if (typeof disposeAfter === 'function') {
|
||||
this.disposeAfter = disposeAfter
|
||||
this.disposed = []
|
||||
} else {
|
||||
this.disposeAfter = null
|
||||
this.disposed = null
|
||||
}
|
||||
this.noDisposeOnSet = !!noDisposeOnSet
|
||||
|
||||
if (this.maxSize) {
|
||||
if (!isPosInt(this.maxSize)) {
|
||||
throw new TypeError('maxSize must be a positive integer if specified')
|
||||
}
|
||||
this.initializeSizeTracking()
|
||||
}
|
||||
|
||||
this.allowStale = !!allowStale || !!stale
|
||||
this.updateAgeOnGet = !!updateAgeOnGet
|
||||
this.ttlResolution = isPosInt(ttlResolution) || ttlResolution === 0
|
||||
? ttlResolution : 1
|
||||
this.ttlAutopurge = !!ttlAutopurge
|
||||
this.ttl = ttl || maxAge || 0
|
||||
if (this.ttl) {
|
||||
if (!isPosInt(this.ttl)) {
|
||||
throw new TypeError('ttl must be a positive integer if specified')
|
||||
}
|
||||
this.initializeTTLTracking()
|
||||
}
|
||||
|
||||
if (stale) {
|
||||
deprecatedOption('stale', 'please use options.allowStale instead')
|
||||
}
|
||||
if (maxAge) {
|
||||
deprecatedOption('maxAge', 'please use options.ttl instead')
|
||||
}
|
||||
if (length) {
|
||||
deprecatedOption('length', 'please use options.sizeCalculation instead')
|
||||
}
|
||||
}
|
||||
|
||||
initializeTTLTracking () {
|
||||
this.ttls = new ZeroArray(this.max)
|
||||
this.starts = new ZeroArray(this.max)
|
||||
this.setItemTTL = (index, ttl) => {
|
||||
this.starts[index] = ttl !== 0 ? perf.now() : 0
|
||||
this.ttls[index] = ttl
|
||||
if (ttl !== 0 && this.ttlAutopurge) {
|
||||
const t = setTimeout(() => {
|
||||
if (this.isStale(index)) {
|
||||
this.delete(this.keyList[index])
|
||||
}
|
||||
}, ttl + 1)
|
||||
/* istanbul ignore else - unref() not supported on all platforms */
|
||||
if (t.unref) {
|
||||
t.unref()
|
||||
}
|
||||
}
|
||||
}
|
||||
this.updateItemAge = (index) => {
|
||||
this.starts[index] = this.ttls[index] !== 0 ? perf.now() : 0
|
||||
}
|
||||
// debounce calls to perf.now() to 1s so we're not hitting
|
||||
// that costly call repeatedly.
|
||||
let cachedNow = 0
|
||||
const getNow = () => {
|
||||
const n = perf.now()
|
||||
if (this.ttlResolution > 0) {
|
||||
cachedNow = n
|
||||
const t = setTimeout(() => cachedNow = 0, this.ttlResolution)
|
||||
/* istanbul ignore else - not available on all platforms */
|
||||
if (t.unref) {
|
||||
t.unref()
|
||||
}
|
||||
}
|
||||
return n
|
||||
}
|
||||
this.isStale = (index) => {
|
||||
return this.ttls[index] !== 0 && this.starts[index] !== 0 &&
|
||||
((cachedNow || getNow()) - this.starts[index] > this.ttls[index])
|
||||
}
|
||||
}
|
||||
updateItemAge (index) {}
|
||||
setItemTTL (index, ttl) {}
|
||||
isStale (index) { return false }
|
||||
|
||||
initializeSizeTracking () {
|
||||
this.calculatedSize = 0
|
||||
this.sizes = new ZeroArray(this.max)
|
||||
this.removeItemSize = index => this.calculatedSize -= this.sizes[index]
|
||||
this.addItemSize = (index, v, k, size, sizeCalculation) => {
|
||||
const s = size || (sizeCalculation ? sizeCalculation(v, k) : 0)
|
||||
this.sizes[index] = isPosInt(s) ? s : 0
|
||||
const maxSize = this.maxSize - this.sizes[index]
|
||||
while (this.calculatedSize > maxSize) {
|
||||
this.evict()
|
||||
}
|
||||
this.calculatedSize += this.sizes[index]
|
||||
}
|
||||
this.delete = k => {
|
||||
if (this.size !== 0) {
|
||||
const index = this.keyMap.get(k)
|
||||
if (index !== undefined) {
|
||||
this.calculatedSize -= this.sizes[index]
|
||||
}
|
||||
}
|
||||
return LRUCache.prototype.delete.call(this, k)
|
||||
}
|
||||
}
|
||||
removeItemSize (index) {}
|
||||
addItemSize (index, v, k, size, sizeCalculation) {}
|
||||
|
||||
*indexes () {
|
||||
if (this.size) {
|
||||
for (let i = this.tail; true; i = this.prev[i]) {
|
||||
if (!this.isStale(i)) {
|
||||
yield i
|
||||
}
|
||||
if (i === this.head) {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*rindexes () {
|
||||
if (this.size) {
|
||||
for (let i = this.head; true; i = this.next[i]) {
|
||||
if (!this.isStale(i)) {
|
||||
yield i
|
||||
}
|
||||
if (i === this.tail) {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*entries () {
|
||||
for (const i of this.indexes()) {
|
||||
yield [this.keyList[i], this.valList[i]]
|
||||
}
|
||||
}
|
||||
|
||||
*keys () {
|
||||
for (const i of this.indexes()) {
|
||||
yield this.keyList[i]
|
||||
}
|
||||
}
|
||||
|
||||
*values () {
|
||||
for (const i of this.indexes()) {
|
||||
yield this.valList[i]
|
||||
}
|
||||
}
|
||||
|
||||
[Symbol.iterator] () {
|
||||
return this.entries()
|
||||
}
|
||||
|
||||
find (fn, getOptions = {}) {
|
||||
for (const i of this.indexes()) {
|
||||
if (fn(this.valList[i], this.keyList[i], this)) {
|
||||
return this.get(this.keyList[i], getOptions)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
forEach (fn, thisp = this) {
|
||||
for (const i of this.indexes()) {
|
||||
fn.call(thisp, this.valList[i], this.keyList[i], this)
|
||||
}
|
||||
}
|
||||
|
||||
rforEach (fn, thisp = this) {
|
||||
for (const i of this.rindexes()) {
|
||||
fn.call(thisp, this.valList[i], this.keyList[i], this)
|
||||
}
|
||||
}
|
||||
|
||||
get prune () {
|
||||
deprecatedMethod('prune', 'Please use cache.purgeStale() instead.')
|
||||
return this.purgeStale
|
||||
}
|
||||
|
||||
purgeStale () {
|
||||
let deleted = false
|
||||
if (this.size) {
|
||||
for (let i = this.head; true; i = this.next[i]) {
|
||||
const b = i === this.tail
|
||||
if (this.isStale(i)) {
|
||||
this.delete(this.keyList[i])
|
||||
deleted = true
|
||||
}
|
||||
if (b) {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return deleted
|
||||
}
|
||||
|
||||
dump () {
|
||||
const arr = []
|
||||
for (const i of this.indexes()) {
|
||||
const key = this.keyList[i]
|
||||
const value = this.valList[i]
|
||||
const entry = { value }
|
||||
if (this.ttls) {
|
||||
entry.ttl = this.ttls[i]
|
||||
}
|
||||
if (this.sizes) {
|
||||
entry.size = this.sizes[i]
|
||||
}
|
||||
arr.unshift([key, entry])
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
load (arr) {
|
||||
this.clear()
|
||||
for (const [key, entry] of arr) {
|
||||
this.set(key, entry.value, entry)
|
||||
}
|
||||
}
|
||||
|
||||
dispose (v, k, reason) {}
|
||||
|
||||
set (k, v, {
|
||||
ttl = this.ttl,
|
||||
noDisposeOnSet = this.noDisposeOnSet,
|
||||
size = 0,
|
||||
sizeCalculation = this.sizeCalculation,
|
||||
} = {}) {
|
||||
let index = this.size === 0 ? undefined : this.keyMap.get(k)
|
||||
if (index === undefined) {
|
||||
// addition
|
||||
index = this.newIndex()
|
||||
this.keyList[index] = k
|
||||
this.valList[index] = v
|
||||
this.keyMap.set(k, index)
|
||||
this.next[this.tail] = index
|
||||
this.prev[index] = this.tail
|
||||
this.tail = index
|
||||
this.size ++
|
||||
this.addItemSize(index, v, k, size, sizeCalculation)
|
||||
} else {
|
||||
// update
|
||||
const oldVal = this.valList[index]
|
||||
if (v !== oldVal) {
|
||||
if (!noDisposeOnSet) {
|
||||
this.dispose(oldVal, k, 'set')
|
||||
if (this.disposeAfter) {
|
||||
this.disposed.push([oldVal, k, 'set'])
|
||||
}
|
||||
}
|
||||
this.removeItemSize(index)
|
||||
this.valList[index] = v
|
||||
this.addItemSize(index, v, k, size, sizeCalculation)
|
||||
}
|
||||
this.moveToTail(index)
|
||||
}
|
||||
if (ttl !== 0 && this.ttl === 0 && !this.ttls) {
|
||||
this.initializeTTLTracking()
|
||||
}
|
||||
this.setItemTTL(index, ttl)
|
||||
if (this.disposeAfter) {
|
||||
while (this.disposed.length) {
|
||||
this.disposeAfter(...this.disposed.shift())
|
||||
}
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
newIndex () {
|
||||
if (this.size === 0) {
|
||||
return this.tail
|
||||
}
|
||||
if (this.size === this.max) {
|
||||
return this.evict()
|
||||
}
|
||||
if (this.free.length !== 0) {
|
||||
return this.free.pop()
|
||||
}
|
||||
// initial fill, just keep writing down the list
|
||||
return this.initialFill++
|
||||
}
|
||||
|
||||
pop () {
|
||||
if (this.size) {
|
||||
const val = this.valList[this.head]
|
||||
this.evict()
|
||||
return val
|
||||
}
|
||||
}
|
||||
|
||||
evict () {
|
||||
const head = this.head
|
||||
const k = this.keyList[head]
|
||||
const v = this.valList[head]
|
||||
this.dispose(v, k, 'evict')
|
||||
if (this.disposeAfter) {
|
||||
this.disposed.push([v, k, 'evict'])
|
||||
}
|
||||
this.removeItemSize(head)
|
||||
this.head = this.next[head]
|
||||
this.keyMap.delete(k)
|
||||
this.size --
|
||||
return head
|
||||
}
|
||||
|
||||
has (k) {
|
||||
return this.keyMap.has(k) && !this.isStale(this.keyMap.get(k))
|
||||
}
|
||||
|
||||
// like get(), but without any LRU updating or TTL expiration
|
||||
peek (k, { allowStale = this.allowStale } = {}) {
|
||||
const index = this.keyMap.get(k)
|
||||
if (index !== undefined && (allowStale || !this.isStale(index))) {
|
||||
return this.valList[index]
|
||||
}
|
||||
}
|
||||
|
||||
get (k, {
|
||||
allowStale = this.allowStale,
|
||||
updateAgeOnGet = this.updateAgeOnGet,
|
||||
} = {}) {
|
||||
const index = this.keyMap.get(k)
|
||||
if (index !== undefined) {
|
||||
if (this.isStale(index)) {
|
||||
const value = allowStale ? this.valList[index] : undefined
|
||||
this.delete(k)
|
||||
return value
|
||||
} else {
|
||||
this.moveToTail(index)
|
||||
if (updateAgeOnGet) {
|
||||
this.updateItemAge(index)
|
||||
}
|
||||
return this.valList[index]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
connect (p, n) {
|
||||
this.prev[n] = p
|
||||
this.next[p] = n
|
||||
}
|
||||
|
||||
moveToTail (index) {
|
||||
// if tail already, nothing to do
|
||||
// if head, move head to next[index]
|
||||
// else
|
||||
// move next[prev[index]] to next[index] (head has no prev)
|
||||
// move prev[next[index]] to prev[index]
|
||||
// prev[index] = tail
|
||||
// next[tail] = index
|
||||
// tail = index
|
||||
if (index !== this.tail) {
|
||||
if (index === this.head) {
|
||||
this.head = this.next[index]
|
||||
} else {
|
||||
this.connect(this.prev[index], this.next[index])
|
||||
}
|
||||
this.connect(this.tail, index)
|
||||
this.tail = index
|
||||
}
|
||||
}
|
||||
|
||||
get del () {
|
||||
deprecatedMethod('del', 'Please use cache.delete() instead.')
|
||||
return this.delete
|
||||
}
|
||||
delete (k) {
|
||||
let deleted = false
|
||||
if (this.size !== 0) {
|
||||
const index = this.keyMap.get(k)
|
||||
if (index !== undefined) {
|
||||
deleted = true
|
||||
if (this.size === 1) {
|
||||
this.clear()
|
||||
} else {
|
||||
this.removeItemSize(index)
|
||||
this.dispose(this.valList[index], k, 'delete')
|
||||
if (this.disposeAfter) {
|
||||
this.disposed.push([this.valList[index], k, 'delete'])
|
||||
}
|
||||
this.keyMap.delete(k)
|
||||
this.keyList[index] = null
|
||||
this.valList[index] = null
|
||||
if (index === this.tail) {
|
||||
this.tail = this.prev[index]
|
||||
} else if (index === this.head) {
|
||||
this.head = this.next[index]
|
||||
} else {
|
||||
this.next[this.prev[index]] = this.next[index]
|
||||
this.prev[this.next[index]] = this.prev[index]
|
||||
}
|
||||
this.size --
|
||||
this.free.push(index)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.disposed) {
|
||||
while (this.disposed.length) {
|
||||
this.disposeAfter(...this.disposed.shift())
|
||||
}
|
||||
}
|
||||
return deleted
|
||||
}
|
||||
|
||||
clear () {
|
||||
if (this.dispose !== LRUCache.prototype.dispose) {
|
||||
for (const index of this.rindexes()) {
|
||||
this.dispose(this.valList[index], this.keyList[index], 'delete')
|
||||
}
|
||||
}
|
||||
if (this.disposeAfter) {
|
||||
for (const index of this.rindexes()) {
|
||||
this.disposed.push([this.valList[index], this.keyList[index], 'delete'])
|
||||
}
|
||||
}
|
||||
this.keyMap.clear()
|
||||
this.valList.fill(null)
|
||||
this.keyList.fill(null)
|
||||
if (this.ttls) {
|
||||
this.ttls.fill(0)
|
||||
this.starts.fill(0)
|
||||
}
|
||||
if (this.sizes) {
|
||||
this.sizes.fill(0)
|
||||
}
|
||||
this.head = 0
|
||||
this.tail = 0
|
||||
this.initialFill = 1
|
||||
this.free.length = 0
|
||||
this.calculatedSize = 0
|
||||
this.size = 0
|
||||
if (this.disposed) {
|
||||
while (this.disposed.length) {
|
||||
this.disposeAfter(...this.disposed.shift())
|
||||
}
|
||||
}
|
||||
}
|
||||
get reset () {
|
||||
deprecatedMethod('reset', 'Please use cache.clear() instead.')
|
||||
return this.clear
|
||||
}
|
||||
|
||||
get length () {
|
||||
deprecatedProperty('length', 'Please use cache.size instead.')
|
||||
return this.size
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = LRUCache
|
34
deps/npm/node_modules/make-fetch-happen/node_modules/lru-cache/package.json
generated
vendored
Normal file
34
deps/npm/node_modules/make-fetch-happen/node_modules/lru-cache/package.json
generated
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"name": "lru-cache",
|
||||
"description": "A cache object that deletes the least-recently-used items.",
|
||||
"version": "7.3.1",
|
||||
"author": "Isaac Z. Schlueter <i@izs.me>",
|
||||
"keywords": [
|
||||
"mru",
|
||||
"lru",
|
||||
"cache"
|
||||
],
|
||||
"scripts": {
|
||||
"test": "tap",
|
||||
"snap": "tap",
|
||||
"preversion": "npm test",
|
||||
"postversion": "npm publish",
|
||||
"prepublishOnly": "git push origin --follow-tags"
|
||||
},
|
||||
"main": "index.js",
|
||||
"repository": "git://github.com/isaacs/node-lru-cache.git",
|
||||
"devDependencies": {
|
||||
"benchmark": "^2.1.4",
|
||||
"tap": "^15.1.6"
|
||||
},
|
||||
"license": "ISC",
|
||||
"files": [
|
||||
"index.js"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"tap": {
|
||||
"coverage-map": "map.js"
|
||||
}
|
||||
}
|
34
deps/npm/node_modules/make-fetch-happen/package.json
generated
vendored
34
deps/npm/node_modules/make-fetch-happen/package.json
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "make-fetch-happen",
|
||||
"version": "10.0.0",
|
||||
"version": "10.0.2",
|
||||
"description": "Opinionated, caching, retrying fetch client",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
|
@ -17,7 +17,8 @@
|
|||
"lint": "eslint '**/*.js'",
|
||||
"lintfix": "npm run lint -- --fix",
|
||||
"postlint": "npm-template-check",
|
||||
"snap": "tap"
|
||||
"snap": "tap",
|
||||
"template-copy": "npm-template-copy --force"
|
||||
},
|
||||
"repository": "https://github.com/npm/make-fetch-happen",
|
||||
"keywords": [
|
||||
|
@ -32,34 +33,33 @@
|
|||
"author": "GitHub Inc.",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"agentkeepalive": "^4.1.3",
|
||||
"cacache": "^15.2.0",
|
||||
"agentkeepalive": "^4.2.0",
|
||||
"cacache": "^15.3.0",
|
||||
"http-cache-semantics": "^4.1.0",
|
||||
"http-proxy-agent": "^5.0.0",
|
||||
"https-proxy-agent": "^5.0.0",
|
||||
"is-lambda": "^1.0.1",
|
||||
"lru-cache": "^6.0.0",
|
||||
"minipass": "^3.1.3",
|
||||
"lru-cache": "^7.3.1",
|
||||
"minipass": "^3.1.6",
|
||||
"minipass-collect": "^1.0.2",
|
||||
"minipass-fetch": "^1.3.2",
|
||||
"minipass-fetch": "^1.4.1",
|
||||
"minipass-flush": "^1.0.5",
|
||||
"minipass-pipeline": "^1.2.4",
|
||||
"negotiator": "^0.6.3",
|
||||
"promise-retry": "^2.0.1",
|
||||
"socks-proxy-agent": "^6.0.0",
|
||||
"ssri": "^8.0.0"
|
||||
"socks-proxy-agent": "^6.1.1",
|
||||
"ssri": "^8.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@npmcli/template-oss": "^2.5.1",
|
||||
"eslint": "^8.7.0",
|
||||
"@npmcli/template-oss": "^2.7.1",
|
||||
"eslint": "^8.8.0",
|
||||
"mkdirp": "^1.0.4",
|
||||
"nock": "^13.0.11",
|
||||
"npmlog": "^6.0.0",
|
||||
"require-inject": "^1.4.2",
|
||||
"nock": "^13.2.4",
|
||||
"npmlog": "^6.0.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"safe-buffer": "^5.2.1",
|
||||
"standard-version": "^9.3.0",
|
||||
"tap": "^15.0.9"
|
||||
"standard-version": "^9.3.2",
|
||||
"tap": "^15.1.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.13.0 || ^14.15.0 || >=16"
|
||||
|
@ -70,6 +70,6 @@
|
|||
"check-coverage": true
|
||||
},
|
||||
"templateOSS": {
|
||||
"version": "2.5.1"
|
||||
"version": "2.7.1"
|
||||
}
|
||||
}
|
||||
|
|
1
deps/npm/node_modules/npm-registry-fetch/lib/auth.js
generated
vendored
1
deps/npm/node_modules/npm-registry-fetch/lib/auth.js
generated
vendored
|
@ -1,5 +1,6 @@
|
|||
'use strict'
|
||||
const npa = require('npm-package-arg')
|
||||
const { URL } = require('url')
|
||||
|
||||
// Find the longest registry key that is used for some kind of auth
|
||||
// in the options.
|
||||
|
|
29
deps/npm/node_modules/npm-registry-fetch/package.json
generated
vendored
29
deps/npm/node_modules/npm-registry-fetch/package.json
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "npm-registry-fetch",
|
||||
"version": "12.0.1",
|
||||
"version": "12.0.2",
|
||||
"description": "Fetch-based http client for use with npm registry APIs",
|
||||
"main": "lib",
|
||||
"files": [
|
||||
|
@ -19,7 +19,8 @@
|
|||
"npmclilint": "npmcli-lint",
|
||||
"postsnap": "npm run lintfix --",
|
||||
"postlint": "npm-template-check",
|
||||
"snap": "tap"
|
||||
"snap": "tap",
|
||||
"template-copy": "npm-template-copy --force"
|
||||
},
|
||||
"repository": "https://github.com/npm/npm-registry-fetch",
|
||||
"keywords": [
|
||||
|
@ -30,21 +31,21 @@
|
|||
"author": "GitHub Inc.",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"make-fetch-happen": "^10.0.0",
|
||||
"minipass": "^3.1.3",
|
||||
"minipass-fetch": "^1.3.0",
|
||||
"make-fetch-happen": "^10.0.1",
|
||||
"minipass": "^3.1.6",
|
||||
"minipass-fetch": "^1.4.1",
|
||||
"minipass-json-stream": "^1.0.1",
|
||||
"minizlib": "^2.0.0",
|
||||
"npm-package-arg": "^8.0.0"
|
||||
"minizlib": "^2.1.2",
|
||||
"npm-package-arg": "^8.1.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@npmcli/template-oss": "^2.5.1",
|
||||
"cacache": "^15.0.0",
|
||||
"nock": "^13.1.0",
|
||||
"npmlog": "^4.1.2",
|
||||
"@npmcli/template-oss": "^2.7.1",
|
||||
"cacache": "^15.3.0",
|
||||
"nock": "^13.2.4",
|
||||
"npmlog": "^6.0.0",
|
||||
"require-inject": "^1.4.4",
|
||||
"ssri": "^8.0.0",
|
||||
"tap": "^15.0.4"
|
||||
"ssri": "^8.0.1",
|
||||
"tap": "^15.1.6"
|
||||
},
|
||||
"tap": {
|
||||
"check-coverage": true,
|
||||
|
@ -54,6 +55,6 @@
|
|||
"node": "^12.13.0 || ^14.15.0 || >=16"
|
||||
},
|
||||
"templateOSS": {
|
||||
"version": "2.5.1"
|
||||
"version": "2.7.1"
|
||||
}
|
||||
}
|
||||
|
|
9
deps/npm/node_modules/npmlog/lib/log.js
generated
vendored
9
deps/npm/node_modules/npmlog/lib/log.js
generated
vendored
|
@ -292,8 +292,9 @@ log.emitLog = function (m) {
|
|||
var disp = log.disp[m.level] != null ? log.disp[m.level] : m.level
|
||||
this.clearProgress()
|
||||
m.message.split(/\r?\n/).forEach(function (line) {
|
||||
if (this.heading) {
|
||||
this.write(this.heading, this.headingStyle)
|
||||
var heading = this.heading
|
||||
if (heading) {
|
||||
this.write(heading, this.headingStyle)
|
||||
this.write(' ')
|
||||
}
|
||||
this.write(disp, log.style[m.level])
|
||||
|
@ -390,11 +391,11 @@ log.style = {}
|
|||
log.levels = {}
|
||||
log.disp = {}
|
||||
log.addLevel('silly', -Infinity, { inverse: true }, 'sill')
|
||||
log.addLevel('verbose', 1000, { fg: 'blue', bg: 'black' }, 'verb')
|
||||
log.addLevel('verbose', 1000, { fg: 'cyan', bg: 'black' }, 'verb')
|
||||
log.addLevel('info', 2000, { fg: 'green' })
|
||||
log.addLevel('timing', 2500, { fg: 'green', bg: 'black' })
|
||||
log.addLevel('http', 3000, { fg: 'green', bg: 'black' })
|
||||
log.addLevel('notice', 3500, { fg: 'blue', bg: 'black' })
|
||||
log.addLevel('notice', 3500, { fg: 'cyan', bg: 'black' })
|
||||
log.addLevel('warn', 4000, { fg: 'black', bg: 'yellow' }, 'WARN')
|
||||
log.addLevel('error', 5000, { fg: 'red', bg: 'black' }, 'ERR!')
|
||||
log.addLevel('silent', Infinity)
|
||||
|
|
15
deps/npm/node_modules/npmlog/package.json
generated
vendored
15
deps/npm/node_modules/npmlog/package.json
generated
vendored
|
@ -2,7 +2,7 @@
|
|||
"author": "GitHub Inc.",
|
||||
"name": "npmlog",
|
||||
"description": "logger for npm",
|
||||
"version": "6.0.0",
|
||||
"version": "6.0.1",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/npm/npmlog.git"
|
||||
|
@ -23,24 +23,27 @@
|
|||
"preversion": "npm test",
|
||||
"postversion": "npm publish",
|
||||
"prepublishOnly": "git push origin --follow-tags",
|
||||
"snap": "tap"
|
||||
"snap": "tap",
|
||||
"template-copy": "npm-template-copy --force"
|
||||
},
|
||||
"dependencies": {
|
||||
"are-we-there-yet": "^2.0.0",
|
||||
"are-we-there-yet": "^3.0.0",
|
||||
"console-control-strings": "^1.1.0",
|
||||
"gauge": "^4.0.0",
|
||||
"set-blocking": "^2.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@npmcli/template-oss": "^2.3.0",
|
||||
"tap": "^15.0.9"
|
||||
"@npmcli/template-oss": "^2.7.1",
|
||||
"tap": "^15.1.6"
|
||||
},
|
||||
"license": "ISC",
|
||||
"templateVersion": "2.3.0",
|
||||
"engines": {
|
||||
"node": "^12.13.0 || ^14.15.0 || >=16"
|
||||
},
|
||||
"tap": {
|
||||
"branches": 95
|
||||
},
|
||||
"templateOSS": {
|
||||
"version": "2.7.1"
|
||||
}
|
||||
}
|
||||
|
|
14
deps/npm/package.json
vendored
14
deps/npm/package.json
vendored
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "8.4.1",
|
||||
"version": "8.5.0",
|
||||
"name": "npm",
|
||||
"description": "a package manager for JavaScript",
|
||||
"workspaces": [
|
||||
|
@ -55,9 +55,9 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@isaacs/string-locale-compare": "^1.1.0",
|
||||
"@npmcli/arborist": "^4.3.0",
|
||||
"@npmcli/arborist": "^4.3.1",
|
||||
"@npmcli/ci-detect": "^1.4.0",
|
||||
"@npmcli/config": "^2.4.0",
|
||||
"@npmcli/config": "^3.0.0",
|
||||
"@npmcli/map-workspaces": "^2.0.0",
|
||||
"@npmcli/package-json": "^1.0.1",
|
||||
"@npmcli/run-script": "^2.0.0",
|
||||
|
@ -85,12 +85,12 @@
|
|||
"libnpmfund": "^2.0.2",
|
||||
"libnpmhook": "^7.0.1",
|
||||
"libnpmorg": "^3.0.1",
|
||||
"libnpmpack": "^3.0.1",
|
||||
"libnpmpack": "^3.1.0",
|
||||
"libnpmpublish": "^5.0.1",
|
||||
"libnpmsearch": "^4.0.1",
|
||||
"libnpmteam": "^3.0.1",
|
||||
"libnpmversion": "^2.0.2",
|
||||
"make-fetch-happen": "^10.0.0",
|
||||
"make-fetch-happen": "^10.0.2",
|
||||
"minipass": "^3.1.6",
|
||||
"minipass-pipeline": "^1.2.4",
|
||||
"mkdirp": "^1.0.4",
|
||||
|
@ -103,9 +103,9 @@
|
|||
"npm-package-arg": "^8.1.5",
|
||||
"npm-pick-manifest": "^6.1.1",
|
||||
"npm-profile": "^6.0.0",
|
||||
"npm-registry-fetch": "^12.0.1",
|
||||
"npm-registry-fetch": "^12.0.2",
|
||||
"npm-user-validate": "^1.0.1",
|
||||
"npmlog": "^6.0.0",
|
||||
"npmlog": "^6.0.1",
|
||||
"opener": "^1.5.2",
|
||||
"pacote": "^12.0.3",
|
||||
"parse-conflict-json": "^2.0.1",
|
||||
|
|
|
@ -170,7 +170,7 @@ npm dedupe
|
|||
|
||||
Options:
|
||||
[--global-style] [--legacy-bundling] [--strict-peer-deps] [--no-package-lock]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
|
||||
[--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
|
||||
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
|
||||
|
@ -447,7 +447,7 @@ npm install <git:// url>
|
|||
npm install <github username>/<github project>
|
||||
|
||||
Options:
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[-E|--save-exact] [-g|--global] [--global-style] [--legacy-bundling]
|
||||
[--strict-peer-deps] [--no-package-lock]
|
||||
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
|
||||
|
@ -494,7 +494,7 @@ npm install-test <git:// url>
|
|||
npm install-test <github username>/<github project>
|
||||
|
||||
Options:
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[-E|--save-exact] [-g|--global] [--global-style] [--legacy-bundling]
|
||||
[--strict-peer-deps] [--no-package-lock]
|
||||
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
|
||||
|
@ -517,7 +517,7 @@ npm link (in package dir)
|
|||
npm link [<@scope>/]<pkg>[@<version>]
|
||||
|
||||
Options:
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[-E|--save-exact] [-g|--global] [--global-style] [--legacy-bundling]
|
||||
[--strict-peer-deps] [--no-package-lock]
|
||||
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
|
||||
|
@ -1013,7 +1013,7 @@ Usage:
|
|||
npm uninstall [<@scope>/]<pkg>...
|
||||
|
||||
Options:
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
|
||||
[-ws|--workspaces] [--include-workspace-root]
|
||||
|
||||
|
@ -1063,7 +1063,7 @@ npm update [<pkg>...]
|
|||
Options:
|
||||
[-g|--global] [--global-style] [--legacy-bundling] [--strict-peer-deps]
|
||||
[--no-package-lock]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
|
||||
[--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
|
||||
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
|
||||
|
|
|
@ -1430,7 +1430,7 @@ If a package would be saved at install time by the use of \`--save\`,
|
|||
\`--save-dev\`, or \`--save-optional\`, then also put it in the
|
||||
\`bundleDependencies\` list.
|
||||
|
||||
Ignore if \`--save-peer\` is set, since peerDependencies cannot be bundled.
|
||||
Ignored if \`--save-peer\` is set, since peerDependencies cannot be bundled.
|
||||
`
|
||||
|
||||
exports[`test/lib/utils/config/definitions.js TAP > config description for save-dev 1`] = `
|
||||
|
|
|
@ -1225,7 +1225,7 @@ If a package would be saved at install time by the use of \`--save\`,
|
|||
\`--save-dev\`, or \`--save-optional\`, then also put it in the
|
||||
\`bundleDependencies\` list.
|
||||
|
||||
Ignore if \`--save-peer\` is set, since peerDependencies cannot be bundled.
|
||||
Ignored if \`--save-peer\` is set, since peerDependencies cannot be bundled.
|
||||
|
||||
<!-- automatically generated, do not edit manually -->
|
||||
<!-- see lib/utils/config/definitions.js -->
|
||||
|
|
|
@ -311,7 +311,7 @@ All commands:
|
|||
|
||||
Options:
|
||||
[--global-style] [--legacy-bundling] [--strict-peer-deps] [--no-package-lock]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
|
||||
[--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
|
||||
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
|
||||
|
@ -556,7 +556,7 @@ All commands:
|
|||
npm install <github username>/<github project>
|
||||
|
||||
Options:
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[-E|--save-exact] [-g|--global] [--global-style] [--legacy-bundling]
|
||||
[--strict-peer-deps] [--no-package-lock]
|
||||
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
|
||||
|
@ -599,7 +599,7 @@ All commands:
|
|||
npm install-test <github username>/<github project>
|
||||
|
||||
Options:
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[-E|--save-exact] [-g|--global] [--global-style] [--legacy-bundling]
|
||||
[--strict-peer-deps] [--no-package-lock]
|
||||
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
|
||||
|
@ -620,7 +620,7 @@ All commands:
|
|||
npm link [<@scope>/]<pkg>[@<version>]
|
||||
|
||||
Options:
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[-E|--save-exact] [-g|--global] [--global-style] [--legacy-bundling]
|
||||
[--strict-peer-deps] [--no-package-lock]
|
||||
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
|
||||
|
@ -1054,7 +1054,7 @@ All commands:
|
|||
npm uninstall [<@scope>/]<pkg>...
|
||||
|
||||
Options:
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
|
||||
[-ws|--workspaces] [--include-workspace-root]
|
||||
|
||||
|
@ -1098,7 +1098,7 @@ All commands:
|
|||
Options:
|
||||
[-g|--global] [--global-style] [--legacy-bundling] [--strict-peer-deps]
|
||||
[--no-package-lock]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer]
|
||||
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
|
||||
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
|
||||
[--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
|
||||
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
|
||||
|
|
63
deps/npm/test/lib/commands/org.js
vendored
63
deps/npm/test/lib/commands/org.js
vendored
|
@ -83,7 +83,8 @@ t.test('npm org add', async t => {
|
|||
|
||||
await org.exec(['add', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgSetArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgSetArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -148,7 +149,8 @@ t.test('npm org add - more users', async t => {
|
|||
})
|
||||
|
||||
await org.exec(['add', 'orgname', 'username'])
|
||||
t.strictSame(
|
||||
t.ok(orgSetArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgSetArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -175,7 +177,8 @@ t.test('npm org add - json output', async t => {
|
|||
|
||||
await org.exec(['add', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgSetArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgSetArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -209,7 +212,8 @@ t.test('npm org add - parseable output', async t => {
|
|||
|
||||
await org.exec(['add', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgSetArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgSetArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -239,7 +243,8 @@ t.test('npm org add - silent output', async t => {
|
|||
|
||||
await org.exec(['add', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgSetArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgSetArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -261,7 +266,8 @@ t.test('npm org rm', async t => {
|
|||
|
||||
await org.exec(['rm', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgRmArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgRmArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -270,7 +276,8 @@ t.test('npm org rm', async t => {
|
|||
},
|
||||
'libnpmorg.rm received the correct args'
|
||||
)
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -323,7 +330,8 @@ t.test('npm org rm - one user left', async t => {
|
|||
|
||||
await org.exec(['rm', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgRmArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgRmArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -332,7 +340,8 @@ t.test('npm org rm - one user left', async t => {
|
|||
},
|
||||
'libnpmorg.rm received the correct args'
|
||||
)
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -358,7 +367,8 @@ t.test('npm org rm - json output', async t => {
|
|||
|
||||
await org.exec(['rm', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgRmArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgRmArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -367,7 +377,8 @@ t.test('npm org rm - json output', async t => {
|
|||
},
|
||||
'libnpmorg.rm received the correct args'
|
||||
)
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -398,7 +409,8 @@ t.test('npm org rm - parseable output', async t => {
|
|||
|
||||
await org.exec(['rm', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgRmArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgRmArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -407,7 +419,8 @@ t.test('npm org rm - parseable output', async t => {
|
|||
},
|
||||
'libnpmorg.rm received the correct args'
|
||||
)
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -436,7 +449,8 @@ t.test('npm org rm - silent output', async t => {
|
|||
|
||||
await org.exec(['rm', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgRmArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgRmArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -445,7 +459,8 @@ t.test('npm org rm - silent output', async t => {
|
|||
},
|
||||
'libnpmorg.rm received the correct args'
|
||||
)
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -470,7 +485,8 @@ t.test('npm org ls', async t => {
|
|||
|
||||
await org.exec(['ls', 'orgname'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -497,7 +513,8 @@ t.test('npm org ls - user filter', async t => {
|
|||
|
||||
await org.exec(['ls', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -522,7 +539,8 @@ t.test('npm org ls - user filter, missing user', async t => {
|
|||
|
||||
await org.exec(['ls', 'orgname', 'username'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -560,7 +578,8 @@ t.test('npm org ls - json output', async t => {
|
|||
|
||||
await org.exec(['ls', 'orgname'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -587,7 +606,8 @@ t.test('npm org ls - parseable output', async t => {
|
|||
|
||||
await org.exec(['ls', 'orgname'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
@ -623,7 +643,8 @@ t.test('npm org ls - silent output', async t => {
|
|||
|
||||
await org.exec(['ls', 'orgname'])
|
||||
|
||||
t.strictSame(
|
||||
t.ok(orgLsArgs.opts.log, 'got passed a logger')
|
||||
t.match(
|
||||
orgLsArgs,
|
||||
{
|
||||
org: 'orgname',
|
||||
|
|
9
deps/npm/test/lib/commands/unpublish.js
vendored
9
deps/npm/test/lib/commands/unpublish.js
vendored
|
@ -76,8 +76,9 @@ t.test('no args --force', async t => {
|
|||
|
||||
const libnpmpublish = {
|
||||
unpublish (spec, opts) {
|
||||
t.ok(opts.log, 'gets passed a logger')
|
||||
t.equal(spec.raw, 'pkg@1.0.0', 'should unpublish expected spec')
|
||||
t.same(
|
||||
t.match(
|
||||
opts,
|
||||
{
|
||||
publishConfig: undefined,
|
||||
|
@ -177,12 +178,8 @@ t.test('unpublish <pkg>@version', async t => {
|
|||
|
||||
const libnpmpublish = {
|
||||
unpublish (spec, opts) {
|
||||
t.ok(opts.log, 'gets passed a logger')
|
||||
t.equal(spec.raw, 'pkg@1.0.0', 'should unpublish expected parsed spec')
|
||||
t.same(
|
||||
opts,
|
||||
{},
|
||||
'should unpublish with expected opts'
|
||||
)
|
||||
},
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue