Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGar <gar+gh@danger.computer>2021-02-12 20:29:12 +0300
committerGar <gar+gh@danger.computer>2021-02-12 20:29:12 +0300
commit37e8cc507b2ce0b89f92e7e77b1d909d1bf5513f (patch)
treed390d3eb571831e1d302a50c7f2e1e68fec5e8c9 /node_modules
parentabcc96a204ed581fc7cd603f47cdca0afe299530 (diff)
@npmcli/arborist@2.2.2
Diffstat (limited to 'node_modules')
-rw-r--r--node_modules/.gitignore19
-rw-r--r--node_modules/.package-lock.json366
-rw-r--r--node_modules/@npmcli/arborist/bin/ideal.js56
-rw-r--r--node_modules/@npmcli/arborist/bin/lib/logging.js2
-rw-r--r--node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js67
-rw-r--r--node_modules/@npmcli/arborist/lib/arborist/load-virtual.js42
-rw-r--r--node_modules/@npmcli/arborist/lib/arborist/reify.js12
-rw-r--r--node_modules/@npmcli/arborist/lib/calc-dep-flags.js2
-rw-r--r--node_modules/@npmcli/arborist/package.json2
9 files changed, 479 insertions, 89 deletions
diff --git a/node_modules/.gitignore b/node_modules/.gitignore
index 2d280414a..02d92c067 100644
--- a/node_modules/.gitignore
+++ b/node_modules/.gitignore
@@ -12,6 +12,7 @@ package-lock.json
/@babel/template
/@babel/traverse
/@babel/types
+/@blueoak/list
/@eslint/eslintrc
/@types/json5
/abab
@@ -24,6 +25,7 @@ package-lock.json
/append-transform
/arg
/argparse
+/array-find-index
/array-includes
/array.prototype.flat
/astral-regex
@@ -48,6 +50,7 @@ package-lock.json
/commondir
/contains-path
/convert-source-map
+/correct-license-metadata
/coveralls
/cp-file
/cross-spawn
@@ -63,6 +66,7 @@ package-lock.json
/define-properties
/detect-libc
/diff-frag
+/docopt
/doctrine
/domexception
/end-of-stream
@@ -105,6 +109,7 @@ package-lock.json
/flow-parser
/flow-remove-types
/foreground-child
+/fs-access
/fs-constants
/fs-exists-cached
/fsevents
@@ -148,10 +153,12 @@ package-lock.json
/jsdom
/jsesc
/json-parse-better-errors
+/json-parse-errback
/json-stable-stringify-without-jsonify
/json5
/lcov-parse
/levn
+/licensee
/load-json-file
/locate-path
/lodash
@@ -176,11 +183,14 @@ package-lock.json
/node-modules-regexp
/noop-logger
/normalize-path
+/npm-license-corrections
+/null-check
/nwsapi
/nyc
/object-inspect
/object-keys
/object.assign
+/object.getownpropertydescriptors
/object.values
/optionator
/os-homedir
@@ -206,9 +216,11 @@ package-lock.json
/prop-types
/pseudomap
/pump
+/queue-microtask
/rc
/react
/react-is
+/read-package-tree
/read-pkg
/read-pkg-up
/readdirp
@@ -221,6 +233,7 @@ package-lock.json
/require-inject
/require-main-filename
/resolve-from
+/run-parallel
/saxes
/shebang-command
/shebang-regex
@@ -230,6 +243,11 @@ package-lock.json
/source-map
/source-map-support
/spawn-wrap
+/spdx-compare
+/spdx-expression-validate
+/spdx-osi
+/spdx-ranges
+/spdx-whitelisted
/sprintf-js
/stack-utils
/stealthy-require
@@ -258,6 +276,7 @@ package-lock.json
/type-fest
/typescript
/unicode-length
+/util-promisify
/v8-compile-cache
/vlq
/w3c-hr-time
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
index 0395b7484..cb5d2f9fc 100644
--- a/node_modules/.package-lock.json
+++ b/node_modules/.package-lock.json
@@ -210,6 +210,12 @@
"to-fast-properties": "^2.0.0"
}
},
+ "node_modules/@blueoak/list": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@blueoak/list/-/list-1.0.2.tgz",
+ "integrity": "sha512-KyqT0kkdxgbGys9mvo/1Mgdt/LGvUFPCZIK9pWPIfOM2mYzMDd/eVYy4sMP1YqvVI129k0alxRyM53H2MAs/Nw==",
+ "dev": true
+ },
"node_modules/@eslint/eslintrc": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz",
@@ -232,9 +238,9 @@
}
},
"node_modules/@npmcli/arborist": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-2.2.1.tgz",
- "integrity": "sha512-J76nY+TYhxNLFAnWy1HqfjszC6dHy5zxHHFt1LJ2pgBDcb00ipNAbTX0qtyv6FPTF67hPErmPKePaKtFr5KvEA==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-2.2.2.tgz",
+ "integrity": "sha512-X6sl303t4UQUD42JKqgicOG1kEUoncu1x8IH4s3YUq/m3ALIMFAsorJ8DNa8RDVbjOvJ+aB9X9Aif/pB1xQLog==",
"inBundle": true,
"dependencies": {
"@npmcli/installed-package-contents": "^1.0.6",
@@ -639,6 +645,15 @@
"sprintf-js": "~1.0.2"
}
},
+ "node_modules/array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/array-includes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz",
@@ -1333,6 +1348,15 @@
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"inBundle": true
},
+ "node_modules/correct-license-metadata": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/correct-license-metadata/-/correct-license-metadata-1.4.0.tgz",
+ "integrity": "sha512-nvbNpK/aYCbztZWGi9adIPqR+ZcQmZTWNT7eMYLvkaVGroN1nTHiVuuNPl7pK6ZNx1mvDztlRBJtfUdrVwKJ5A==",
+ "dev": true,
+ "dependencies": {
+ "spdx-expression-validate": "^2.0.0"
+ }
+ },
"node_modules/coveralls": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz",
@@ -1612,6 +1636,15 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/docopt": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz",
+ "integrity": "sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
@@ -2573,6 +2606,19 @@
"node": ">= 0.12"
}
},
+ "node_modules/fs-access": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-2.0.0.tgz",
+ "integrity": "sha512-Vt45hBKJrYDQeAD9ja43liw8JfK75uB7XexIXWEtDKwFLQNmzmvuulh28hRxexxuFm0zsGGq7nISGQSK6KnGrA==",
+ "deprecated": "This package is no longer relevant as Node.js 0.12 is unmaintained.",
+ "dev": true,
+ "dependencies": {
+ "null-check": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
@@ -3605,6 +3651,12 @@
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
"dev": true
},
+ "node_modules/json-parse-errback": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/json-parse-errback/-/json-parse-errback-2.0.1.tgz",
+ "integrity": "sha1-x6nCvjqFWzQvgqv8ibyFk1tYhPo=",
+ "dev": true
+ },
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
@@ -3858,6 +3910,41 @@
"stringify-package": "^1.0.1"
}
},
+ "node_modules/licensee": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/licensee/-/licensee-8.1.0.tgz",
+ "integrity": "sha512-rnXUmUuLzZrGfm3bfWNl71Emw/OJqwUyIrIRq5D06Ct9EbiFnZtiydA5ryf4FDPikdneJ0l1Q+g6TuMjpWGfrA==",
+ "dev": true,
+ "dependencies": {
+ "@blueoak/list": "^1.0.2",
+ "correct-license-metadata": "^1.0.1",
+ "docopt": "^0.6.2",
+ "fs-access": "^2.0.0",
+ "has": "^1.0.3",
+ "json-parse-errback": "^2.0.1",
+ "npm-license-corrections": "^1.0.0",
+ "read-package-tree": "^5.3.1",
+ "run-parallel": "^1.1.9",
+ "semver": "^6.3.0",
+ "simple-concat": "^1.0.0",
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-expression-validate": "^2.0.0",
+ "spdx-osi": "^3.0.0",
+ "spdx-whitelisted": "^1.0.0"
+ },
+ "bin": {
+ "licensee": "licensee"
+ }
+ },
+ "node_modules/licensee/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/load-json-file": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
@@ -4388,6 +4475,12 @@
"node": ">=10"
}
},
+ "node_modules/npm-license-corrections": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/npm-license-corrections/-/npm-license-corrections-1.4.0.tgz",
+ "integrity": "sha512-elrOuaygiK9SDD1Rzl6gxbRSJgcClcNER5RvdilSwlHWurD2GTlTt8RHZDMKkwgfkDHTg2F7n10IrPqCzdCCcw==",
+ "dev": true
+ },
"node_modules/npm-normalize-package-bin": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
@@ -4486,6 +4579,15 @@
"set-blocking": "~2.0.0"
}
},
+ "node_modules/null-check": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz",
+ "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
@@ -4667,6 +4769,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/object.getownpropertydescriptors": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz",
+ "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/object.values": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz",
@@ -5145,6 +5264,26 @@
"node": ">=0.6"
}
},
+ "node_modules/queue-microtask": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz",
+ "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@@ -5241,6 +5380,56 @@
"node": ">=10"
}
},
+ "node_modules/read-package-tree": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz",
+ "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==",
+ "dev": true,
+ "dependencies": {
+ "read-package-json": "^2.0.0",
+ "readdir-scoped-modules": "^1.0.0",
+ "util-promisify": "^2.1.0"
+ }
+ },
+ "node_modules/read-package-tree/node_modules/hosted-git-info": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
+ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
+ "dev": true
+ },
+ "node_modules/read-package-tree/node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/read-package-tree/node_modules/read-package-json": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz",
+ "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "normalize-package-data": "^2.0.0",
+ "npm-normalize-package-bin": "^1.0.0"
+ }
+ },
+ "node_modules/read-package-tree/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
"node_modules/read-pkg": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
@@ -5528,6 +5717,29 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -5764,6 +5976,17 @@
"which": "bin/which"
}
},
+ "node_modules/spdx-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz",
+ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==",
+ "dev": true,
+ "dependencies": {
+ "array-find-index": "^1.0.2",
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-ranges": "^2.0.0"
+ }
+ },
"node_modules/spdx-correct": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
@@ -5790,12 +6013,43 @@
"spdx-license-ids": "^3.0.0"
}
},
+ "node_modules/spdx-expression-validate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-validate/-/spdx-expression-validate-2.0.0.tgz",
+ "integrity": "sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==",
+ "dev": true,
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
"node_modules/spdx-license-ids": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz",
"integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==",
"inBundle": true
},
+ "node_modules/spdx-osi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-osi/-/spdx-osi-3.0.0.tgz",
+ "integrity": "sha512-7DZMaD/rNHWGf82qWOazBsLXQsaLsoJb9RRjhEUQr5o86kw3A1ErGzSdvaXl+KalZyKkkU5T2a5NjCCutAKQSw==",
+ "dev": true
+ },
+ "node_modules/spdx-ranges": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz",
+ "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==",
+ "dev": true
+ },
+ "node_modules/spdx-whitelisted": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-whitelisted/-/spdx-whitelisted-1.0.0.tgz",
+ "integrity": "sha512-X4FOpUCvZuo42MdB1zAZ/wdX4N0lLcWDozf2KYFVDgtLv8Lx+f31LOYLP2/FcwTzsPi64bS/VwKqklI4RBletg==",
+ "dev": true,
+ "dependencies": {
+ "spdx-compare": "^1.0.0",
+ "spdx-ranges": "^2.0.0"
+ }
+ },
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -6080,7 +6334,102 @@
"signal-exit",
"tap-parser",
"tap-yaml",
- "yaml"
+ "yaml",
+ "@babel/code-frame",
+ "@babel/core",
+ "@babel/generator",
+ "@babel/helper-annotate-as-pure",
+ "@babel/helper-builder-react-jsx",
+ "@babel/helper-builder-react-jsx-experimental",
+ "@babel/helper-function-name",
+ "@babel/helper-get-function-arity",
+ "@babel/helper-member-expression-to-functions",
+ "@babel/helper-module-imports",
+ "@babel/helper-module-transforms",
+ "@babel/helper-optimise-call-expression",
+ "@babel/helper-plugin-utils",
+ "@babel/helper-replace-supers",
+ "@babel/helper-simple-access",
+ "@babel/helper-split-export-declaration",
+ "@babel/helper-validator-identifier",
+ "@babel/helpers",
+ "@babel/highlight",
+ "@babel/parser",
+ "@babel/plugin-proposal-object-rest-spread",
+ "@babel/plugin-syntax-jsx",
+ "@babel/plugin-syntax-object-rest-spread",
+ "@babel/plugin-transform-destructuring",
+ "@babel/plugin-transform-parameters",
+ "@babel/plugin-transform-react-jsx",
+ "@babel/template",
+ "@babel/traverse",
+ "@babel/types",
+ "@types/color-name",
+ "@types/prop-types",
+ "@types/yoga-layout",
+ "ansi-escapes",
+ "ansi-regex",
+ "ansi-styles",
+ "ansicolors",
+ "arrify",
+ "astral-regex",
+ "auto-bind",
+ "caller-callsite",
+ "caller-path",
+ "callsites",
+ "cardinal",
+ "chalk",
+ "ci-info",
+ "cli-cursor",
+ "cli-truncate",
+ "color-convert",
+ "color-name",
+ "convert-source-map",
+ "csstype",
+ "debug",
+ "emoji-regex",
+ "escape-string-regexp",
+ "esprima",
+ "events-to-array",
+ "gensync",
+ "globals",
+ "has-flag",
+ "is-ci",
+ "is-fullwidth-code-point",
+ "js-tokens",
+ "jsesc",
+ "json5",
+ "lodash",
+ "lodash.throttle",
+ "log-update",
+ "loose-envify",
+ "mimic-fn",
+ "minimist",
+ "ms",
+ "object-assign",
+ "onetime",
+ "path-parse",
+ "prop-types",
+ "punycode",
+ "react-is",
+ "react-reconciler",
+ "redeyed",
+ "resolve",
+ "resolve-from",
+ "restore-cursor",
+ "scheduler",
+ "semver",
+ "slice-ansi",
+ "string-length",
+ "string-width",
+ "strip-ansi",
+ "supports-color",
+ "to-fast-properties",
+ "type-fest",
+ "unicode-length",
+ "widest-line",
+ "wrap-ansi",
+ "yoga-layout-prebuilt"
],
"dev": true,
"dependencies": {
@@ -8540,6 +8889,15 @@
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"inBundle": true
},
+ "node_modules/util-promisify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz",
+ "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=",
+ "dev": true,
+ "dependencies": {
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
"node_modules/uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
diff --git a/node_modules/@npmcli/arborist/bin/ideal.js b/node_modules/@npmcli/arborist/bin/ideal.js
index 18a5b9eb3..74d79ce0a 100644
--- a/node_modules/@npmcli/arborist/bin/ideal.js
+++ b/node_modules/@npmcli/arborist/bin/ideal.js
@@ -1,59 +1,11 @@
const Arborist = require('../')
+const { inspect } = require('util')
const options = require('./lib/options.js')
const print = require('./lib/print-tree.js')
require('./lib/logging.js')
require('./lib/timers.js')
-const c = require('chalk')
-
-const whichIsA = (name, dependents, indent = ' ') => {
- if (!dependents || dependents.length === 0)
- return ''
- const str = `\nfor: ` +
- dependents.map(dep => {
- return dep.more ? `${dep.more} more (${dep.names.join(', ')})`
- : `${dep.type} dependency ` +
- `${c.bold(name)}@"${c.bold(dep.spec)}"` + `\nfrom:` +
- (dep.from.location ? (dep.from.name
- ? ` ${c.bold(dep.from.name)}@${c.bold(dep.from.version)} ` +
- c.dim(`at ${dep.from.location}`)
- : ' the root project')
- : ` ${c.bold(dep.from.name)}@${c.bold(dep.from.version)}`) +
- whichIsA(dep.from.name, dep.from.dependents, ' ')
- }).join('\nand: ')
-
- return str.split(/\n/).join(`\n${indent}`)
-}
-
-const explainEresolve = ({ dep, current, peerConflict, fixWithForce }) => {
- return (!dep.whileInstalling ? '' : `While resolving: ` +
- `${c.bold(dep.whileInstalling.name)}@${c.bold(dep.whileInstalling.version)}\n`) +
-
- `Found: ` +
- `${c.bold(current.name)}@${c.bold(current.version)} ` +
- c.dim(`at ${current.location}`) +
- `${whichIsA(current.name, current.dependents)}` +
-
- `\n\nCould not add conflicting dependency: ` +
- `${c.bold(dep.name)}@${c.bold(dep.version)} ` +
- c.dim(`at ${dep.location}`) +
- `${whichIsA(dep.name, dep.dependents)}\n` +
-
- (!peerConflict ? '' :
- `\nConflicting peer dependency: ` +
- `${c.bold(peerConflict.name)}@${c.bold(peerConflict.version)} ` +
- c.dim(`at ${peerConflict.location}`) +
- `${whichIsA(peerConflict.name, peerConflict.dependents)}\n`
- ) +
-
- `\nFix the upstream dependency conflict, or
-run this command with --legacy-peer-deps${
- fixWithForce ? ' or --force' : ''}
-to accept an incorrect (and potentially broken) dependency resolution.
-`
-}
-
const start = process.hrtime()
new Arborist(options).buildIdealTree(options).then(tree => {
const end = process.hrtime(start)
@@ -62,7 +14,7 @@ new Arborist(options).buildIdealTree(options).then(tree => {
if (tree.meta && options.save)
tree.meta.save()
}).catch(er => {
- console.error(er)
- if (er.code === 'ERESOLVE')
- console.error(explainEresolve(er))
+ const opt = { depth: Infinity, color: true }
+ console.error(er.code === 'ERESOLVE' ? inspect(er, opt) : er)
+ process.exitCode = 1
})
diff --git a/node_modules/@npmcli/arborist/bin/lib/logging.js b/node_modules/@npmcli/arborist/bin/lib/logging.js
index 57597b2e5..a7d20a1f5 100644
--- a/node_modules/@npmcli/arborist/bin/lib/logging.js
+++ b/node_modules/@npmcli/arborist/bin/lib/logging.js
@@ -26,7 +26,7 @@ if (loglevel !== 'silent') {
return
const pref = `${process.pid} ${level} `
if (level === 'warn' && args[0] === 'ERESOLVE')
- args[2] = inspect(args[2], { depth: Infinity })
+ args[2] = inspect(args[2], { depth: 10 })
const msg = pref + format(...args).trim().split('\n').join(`\n${pref}`)
console.error(msg)
})
diff --git a/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js b/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
index 4c2665021..0de10044b 100644
--- a/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
+++ b/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
@@ -397,7 +397,7 @@ module.exports = cls => class IdealTreeBuilder extends cls {
// that they're there, and not reinstall the world unnecessarily.
if (this[_global] && (this[_updateAll] || this[_updateNames].length)) {
const nm = resolve(this.path, 'node_modules')
- for (const name of await readdir(nm)) {
+ for (const name of await readdir(nm).catch(() => [])) {
tree.package.dependencies = tree.package.dependencies || {}
if (this[_updateAll] || this[_updateNames].includes(name))
tree.package.dependencies[name] = '*'
@@ -491,7 +491,8 @@ module.exports = cls => class IdealTreeBuilder extends cls {
/* istanbul ignore else - should also be covered by realpath failure */
if (filepath) {
const { name } = spec
- spec = npa(`file:${relpath(this.path, filepath)}`, this.path)
+ const tree = this.idealTree.target || this.idealTree
+ spec = npa(`file:${relpath(tree.path, filepath)}`, tree.path)
spec.name = name
}
return spec
@@ -663,6 +664,11 @@ This is a one-time fix-up, please be patient...
})
}
await promiseCallLimit(queue)
+
+ // have to re-calc dep flags, because the nodes don't have edges
+ // until their packages get assigned, so everything looks extraneous
+ calcDepFlags(this.idealTree)
+
// yes, yes, this isn't the "original" version, but now that it's been
// upgraded, we need to make sure we don't do the work to upgrade it
// again, since it's now as new as can be.
@@ -800,6 +806,7 @@ This is a one-time fix-up, please be patient...
// a virtual root of whatever brought in THIS node.
// so we VR the node itself if the edge is not a peer
const source = edge.peer ? peerSource : node
+
const virtualRoot = this[_virtualRoot](source, true)
// reuse virtual root if we already have one, but don't
// try to do the override ahead of time, since we MAY be able
@@ -821,13 +828,17 @@ This is a one-time fix-up, please be patient...
// +-- z@1
// But if x and y are loaded in the same virtual root, then they will
// be forced to agree on a version of z.
+ const required = new Set([edge.from])
+ const parent = edge.peer ? virtualRoot : null
const dep = vrDep && vrDep.satisfies(edge) ? vrDep
- : await this[_nodeFromEdge](edge, edge.peer ? virtualRoot : null)
+ : await this[_nodeFromEdge](edge, parent, null, required)
+
/* istanbul ignore next */
debug(() => {
if (!dep)
throw new Error('no dep??')
})
+
tasks.push({edge, dep})
}
@@ -864,7 +875,7 @@ This is a one-time fix-up, please be patient...
// loads a node from an edge, and then loads its peer deps (and their
// peer deps, on down the line) into a virtual root parent.
- async [_nodeFromEdge] (edge, parent_, secondEdge = null) {
+ async [_nodeFromEdge] (edge, parent_, secondEdge, required) {
// create a virtual root node with the same deps as the node that
// is requesting this one, so that we can get all the peer deps in
// a context where they're likely to be resolvable.
@@ -895,6 +906,11 @@ This is a one-time fix-up, please be patient...
// ensure the one we want is the one that's placed
node.parent = parent
+ if (required.has(edge.from) && edge.type !== 'peerOptional' ||
+ secondEdge && (
+ required.has(secondEdge.from) && secondEdge.type !== 'peerOptional'))
+ required.add(node)
+
// handle otherwise unresolvable dependency nesting loops by
// creating a symbolic link
// a1 -> b1 -> a2 -> b2 -> a1 -> ...
@@ -908,7 +924,7 @@ This is a one-time fix-up, please be patient...
// keep track of the thing that caused this node to be included.
const src = parent.sourceReference
this[_peerSetSource].set(node, src)
- return this[_loadPeerSet](node)
+ return this[_loadPeerSet](node, required)
}
[_virtualRoot] (node, reuse = false) {
@@ -1053,7 +1069,7 @@ This is a one-time fix-up, please be patient...
// gets placed first. In non-strict mode, we behave strictly if the
// virtual root is based on the root project, and allow non-peer parent
// deps to override, but throw if no preference can be determined.
- async [_loadPeerSet] (node) {
+ async [_loadPeerSet] (node, required) {
const peerEdges = [...node.edgesOut.values()]
// we typically only install non-optional peers, but we have to
// factor them into the peerSet so that we can avoid conflicts
@@ -1068,10 +1084,12 @@ This is a one-time fix-up, please be patient...
const parentEdge = node.parent.edgesOut.get(edge.name)
const {isProjectRoot, isWorkspace} = node.parent.sourceReference
const isMine = isProjectRoot || isWorkspace
+ const conflictOK = this[_force] || !isMine && !this[_strictPeerDeps]
+
if (!edge.to) {
if (!parentEdge) {
// easy, just put the thing there
- await this[_nodeFromEdge](edge, node.parent)
+ await this[_nodeFromEdge](edge, node.parent, null, required)
continue
} else {
// if the parent's edge is very broad like >=1, and the edge in
@@ -1082,14 +1100,16 @@ This is a one-time fix-up, please be patient...
// a conflict. this is always a problem in strict mode, never
// in force mode, and a problem in non-strict mode if this isn't
// on behalf of our project. in all such cases, we warn at least.
- await this[_nodeFromEdge](parentEdge, node.parent, edge)
+ const dep = await this[_nodeFromEdge](parentEdge, node.parent, edge, required)
// hooray! that worked!
if (edge.valid)
continue
- // allow it
- if (this[_force] || !isMine && !this[_strictPeerDeps])
+ // allow it. either we're overriding, or it's not something
+ // that will be installed by default anyway, and we'll fail when
+ // we get to the point where we need to, if we need to.
+ if (conflictOK || !required.has(dep))
continue
// problem
@@ -1102,7 +1122,7 @@ This is a one-time fix-up, please be patient...
// in non-strict mode if it's not our fault. don't warn here, because
// we are going to warn again when we place the deps, if we end up
// overriding for something else.
- if (this[_force] || !isMine && !this[_strictPeerDeps])
+ if (conflictOK)
continue
// ok, it's the root, or we're in unforced strict mode, so this is bad
@@ -1198,8 +1218,25 @@ This is a one-time fix-up, please be patient...
break
}
- if (!target)
- this[_failPeerConflict](edge)
+ // if we can't find a target, that means that the last placed checked
+ // (and all the places before it) had a copy already. if we're in
+ // --force mode, then the user has explicitly said that they're ok
+ // with conflicts. This can only occur in --force mode in the case
+ // when a node was added to the tree with a peerOptional dep that we
+ // ignored, and then later, that edge became invalid, and we fail to
+ // resolve it. We will warn about it in a moment.
+ if (!target) {
+ if (this[_force]) {
+ // we know that there is a dep (not the root) which is the target
+ // of this edge, or else it wouldn't have been a conflict.
+ target = edge.to.resolveParent
+ canPlace = KEEP
+ } else
+ this[_failPeerConflict](edge)
+ } else {
+ // it worked, so we clearly have no peer conflicts at this point.
+ this[_peerConflict] = null
+ }
this.log.silly(
'placeDep',
@@ -1210,9 +1247,6 @@ This is a one-time fix-up, please be patient...
`want: ${edge.spec || '*'}`
)
- // it worked, so we clearly have no peer conflicts at this point.
- this[_peerConflict] = null
-
// Can only get KEEP here if the original edge was valid,
// and we're checking for an update but it's already up to date.
if (canPlace === KEEP) {
@@ -1398,6 +1432,7 @@ This is a one-time fix-up, please be patient...
})
const entryEdge = peerEntryEdge || edge
const source = this[_peerSetSource].get(dep)
+
isSource = isSource || target === source
// if we're overriding the source, then we care if the *target* is
// ours, even if it wasn't actually the original source, since we
diff --git a/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js b/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js
index f03bd80c4..3a38905b7 100644
--- a/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js
+++ b/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js
@@ -24,6 +24,7 @@ const loadWorkspacesVirtual = Symbol.for('loadWorkspacesVirtual')
const flagsSuspect = Symbol.for('flagsSuspect')
const reCalcDepFlags = Symbol('reCalcDepFlags')
const checkRootEdges = Symbol('checkRootEdges')
+const rootOptionProvided = Symbol('rootOptionProvided')
const depsToEdges = (type, deps) =>
Object.entries(deps).map(d => [type, ...d])
@@ -63,6 +64,8 @@ module.exports = cls => class VirtualLoader extends cls {
root = await this[loadRoot](s),
} = options
+ this[rootOptionProvided] = options.root
+
await this[loadFromShrinkwrap](s, root)
return treeCheck(this.virtualTree)
}
@@ -74,13 +77,17 @@ module.exports = cls => class VirtualLoader extends cls {
}
async [loadFromShrinkwrap] (s, root) {
- // root is never any of these things, but might be a brand new
- // baby Node object that never had its dep flags calculated.
- root.extraneous = false
- root.dev = false
- root.optional = false
- root.devOptional = false
- root.peer = false
+ if (!this[rootOptionProvided]) {
+ // root is never any of these things, but might be a brand new
+ // baby Node object that never had its dep flags calculated.
+ root.extraneous = false
+ root.dev = false
+ root.optional = false
+ root.devOptional = false
+ root.peer = false
+ } else
+ this[flagsSuspect] = true
+
this[checkRootEdges](s, root)
root.meta = s
this.virtualTree = root
@@ -88,20 +95,23 @@ module.exports = cls => class VirtualLoader extends cls {
await this[resolveLinks](links, nodes)
this[assignBundles](nodes)
if (this[flagsSuspect])
- this[reCalcDepFlags]()
+ this[reCalcDepFlags](nodes.values())
return root
}
- [reCalcDepFlags] () {
+ [reCalcDepFlags] (nodes) {
// reset all dep flags
- for (const node of this.virtualTree.inventory.values()) {
+ // can't use inventory here, because virtualTree might not be root
+ for (const node of nodes) {
+ if (node.isRoot || node === this[rootOptionProvided])
+ continue
node.extraneous = true
node.dev = true
node.optional = true
node.devOptional = true
node.peer = true
}
- calcDepFlags(this.virtualTree, true)
+ calcDepFlags(this.virtualTree, !this[rootOptionProvided])
}
// check the lockfile deps, and see if they match. if they do not
@@ -237,6 +247,12 @@ module.exports = cls => class VirtualLoader extends cls {
// shrinkwrap doesn't include package name unless necessary
if (!sw.name)
sw.name = nameFromFolder(path)
+
+ const dev = sw.dev
+ const optional = sw.optional
+ const devOptional = dev || optional || sw.devOptional
+ const peer = sw.peer
+
const node = new Node({
legacyPeerDeps: this.legacyPeerDeps,
root: this.virtualTree,
@@ -246,6 +262,10 @@ module.exports = cls => class VirtualLoader extends cls {
resolved: consistentResolve(sw.resolved, this.path, path),
pkg: sw,
hasShrinkwrap: sw.hasShrinkwrap,
+ dev,
+ optional,
+ devOptional,
+ peer,
})
// cast to boolean because they're undefined in the lock file when false
node.extraneous = !!sw.extraneous
diff --git a/node_modules/@npmcli/arborist/lib/arborist/reify.js b/node_modules/@npmcli/arborist/lib/arborist/reify.js
index 1dd4b4b0f..b33823e46 100644
--- a/node_modules/@npmcli/arborist/lib/arborist/reify.js
+++ b/node_modules/@npmcli/arborist/lib/arborist/reify.js
@@ -442,7 +442,8 @@ module.exports = cls => class Reifier extends cls {
if (this[_trashList].has(node.path))
return node
- process.emit('time', `reifyNode:${node.location}`)
+ const timer = `reifyNode:${node.location}`
+ process.emit('time', timer)
this.addTracker('reify', node.name, node.location)
const p = Promise.resolve()
@@ -454,7 +455,7 @@ module.exports = cls => class Reifier extends cls {
return this[_handleOptionalFailure](node, p)
.then(() => {
this.finishTracker('reify', node.name, node.location)
- process.emit('timeEnd', `reifyNode:${node.location}`)
+ process.emit('timeEnd', timer)
return node
})
}
@@ -474,9 +475,14 @@ module.exports = cls => class Reifier extends cls {
// no idea what this thing is. remove it from the tree.
if (!res) {
- node.parent = null
+ const warning = 'invalid or damaged lockfile detected\n' +
+ 'please re-try this operation once it completes\n' +
+ 'so that the damage can be corrected, or perform\n' +
+ 'a fresh install with no lockfile if the problem persists.'
+ this.log.warn('reify', warning)
this.log.verbose('reify', 'unrecognized node in tree', node.path)
node.parent = null
+ node.fsParent = null
this[_addNodeToTrashList](node)
return
}
diff --git a/node_modules/@npmcli/arborist/lib/calc-dep-flags.js b/node_modules/@npmcli/arborist/lib/calc-dep-flags.js
index 73f1e60d7..d6ae266db 100644
--- a/node_modules/@npmcli/arborist/lib/calc-dep-flags.js
+++ b/node_modules/@npmcli/arborist/lib/calc-dep-flags.js
@@ -11,7 +11,7 @@ const calcDepFlags = (tree, resetRoot = true) => {
tree,
visit: node => calcDepFlagsStep(node),
filter: node => node,
- getChildren: node => [...node.edgesOut.values()].map(edge => edge.to),
+ getChildren: (node, tree) => [...tree.edgesOut.values()].map(edge => edge.to),
})
return ret
}
diff --git a/node_modules/@npmcli/arborist/package.json b/node_modules/@npmcli/arborist/package.json
index 6e88b9cbb..b57922dd6 100644
--- a/node_modules/@npmcli/arborist/package.json
+++ b/node_modules/@npmcli/arborist/package.json
@@ -1,6 +1,6 @@
{
"name": "@npmcli/arborist",
- "version": "2.2.1",
+ "version": "2.2.2",
"description": "Manage node_modules trees",
"dependencies": {
"@npmcli/installed-package-contents": "^1.0.6",