diff --git a/package-lock.json b/package-lock.json index 0e8b29b365fe8..4eec2be94c0a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -336,7 +336,6 @@ "version": "7.28.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -883,7 +882,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -930,7 +928,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -939,6 +936,7 @@ "version": "4.9.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -956,6 +954,7 @@ "version": "4.12.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -964,6 +963,7 @@ "version": "2.1.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -986,6 +986,7 @@ "version": "6.12.6", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1001,6 +1002,7 @@ "version": "1.1.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1009,12 +1011,14 @@ "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1026,6 +1030,7 @@ "version": "8.57.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -1063,7 +1068,6 @@ "version": "5.2.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -1220,6 +1224,7 @@ "version": "0.13.0", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", @@ -1233,6 +1238,7 @@ "version": "1.1.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1242,6 +1248,7 @@ "version": "3.1.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1253,6 +1260,7 @@ "version": "1.0.1", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=12.22" }, @@ -1264,7 +1272,8 @@ "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", "dev": true, - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/@iarna/toml": { "version": "3.0.0", @@ -1533,6 +1542,7 @@ "version": "2.1.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1545,6 +1555,7 @@ "version": "2.0.5", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 8" } @@ -1553,6 +1564,7 @@ "version": "1.2.8", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1836,7 +1848,6 @@ "version": "7.0.4", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.1", @@ -2044,7 +2055,8 @@ "node_modules/@rtsao/scc": { "version": "1.1.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@sigstore/bundle": { "version": "4.0.0", @@ -2187,7 +2199,8 @@ "node_modules/@types/json5": { "version": "0.0.29", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/mdast": { "version": "4.0.4", @@ -2211,7 +2224,6 @@ "version": "24.5.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~7.12.0" } @@ -2281,6 +2293,7 @@ "version": "5.3.2", "dev": true, "license": "MIT", + "peer": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -2309,7 +2322,6 @@ "version": "8.17.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -2516,6 +2528,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" @@ -2536,6 +2549,7 @@ "version": "3.1.9", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -2557,6 +2571,7 @@ "version": "1.2.6", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -2577,6 +2592,7 @@ "version": "1.3.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -2594,6 +2610,7 @@ "version": "1.3.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -2611,6 +2628,7 @@ "version": "1.0.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", @@ -2639,6 +2657,7 @@ "version": "1.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" } @@ -2671,6 +2690,7 @@ "version": "1.0.7", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -2826,7 +2846,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.3", "caniuse-lite": "^1.0.30001741", @@ -2901,6 +2920,7 @@ "version": "1.0.8", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", @@ -2918,6 +2938,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -2930,6 +2951,7 @@ "version": "1.0.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" @@ -3229,7 +3251,6 @@ "version": "5.2.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -3703,7 +3724,6 @@ "version": "9.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -3867,6 +3887,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -3883,6 +3904,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -3899,6 +3921,7 @@ "version": "1.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -3999,7 +4022,8 @@ "node_modules/deep-is": { "version": "0.1.4", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/default-require-extensions": { "version": "3.0.1", @@ -4019,6 +4043,7 @@ "version": "1.1.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -4035,6 +4060,7 @@ "version": "1.2.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -4096,6 +4122,7 @@ "version": "3.0.0", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "esutils": "^2.0.2" }, @@ -4169,6 +4196,7 @@ "version": "1.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", @@ -4238,6 +4266,7 @@ "version": "1.24.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", @@ -4305,6 +4334,7 @@ "version": "1.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" } @@ -4313,6 +4343,7 @@ "version": "1.3.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" } @@ -4321,6 +4352,7 @@ "version": "1.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0" }, @@ -4332,6 +4364,7 @@ "version": "2.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -4346,6 +4379,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "hasown": "^2.0.2" }, @@ -4357,6 +4391,7 @@ "version": "1.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", @@ -4386,6 +4421,7 @@ "version": "4.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -4452,6 +4488,7 @@ "version": "0.3.9", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -4462,6 +4499,7 @@ "version": "3.2.7", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -4470,6 +4508,7 @@ "version": "2.12.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "^3.2.7" }, @@ -4486,6 +4525,7 @@ "version": "3.2.7", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -4494,6 +4534,7 @@ "version": "3.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" @@ -4512,6 +4553,7 @@ "version": "2.32.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -4544,6 +4586,7 @@ "version": "1.1.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4553,6 +4596,7 @@ "version": "3.2.7", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -4561,6 +4605,7 @@ "version": "2.1.0", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "esutils": "^2.0.2" }, @@ -4572,6 +4617,7 @@ "version": "3.1.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4583,6 +4629,7 @@ "version": "6.3.1", "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -4591,6 +4638,7 @@ "version": "11.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "eslint-plugin-es": "^3.0.0", "eslint-utils": "^2.0.0", @@ -4610,6 +4658,7 @@ "version": "1.1.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4619,6 +4668,7 @@ "version": "3.1.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4630,6 +4680,7 @@ "version": "6.3.1", "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -4653,6 +4704,7 @@ "version": "7.2.2", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -4668,6 +4720,7 @@ "version": "2.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -4682,6 +4735,7 @@ "version": "1.3.0", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=4" } @@ -4690,6 +4744,7 @@ "version": "3.4.3", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4701,6 +4756,7 @@ "version": "6.12.6", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4716,6 +4772,7 @@ "version": "4.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -4730,6 +4787,7 @@ "version": "1.1.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4739,6 +4797,7 @@ "version": "4.1.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4754,6 +4813,7 @@ "version": "5.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -4768,12 +4828,14 @@ "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -4788,6 +4850,7 @@ "version": "3.1.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4799,6 +4862,7 @@ "version": "3.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -4813,6 +4877,7 @@ "version": "5.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -4827,6 +4892,7 @@ "version": "4.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -4835,6 +4901,7 @@ "version": "7.2.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -4846,6 +4913,7 @@ "version": "0.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -4857,6 +4925,7 @@ "version": "9.6.1", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -4885,6 +4954,7 @@ "version": "1.6.0", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -4896,6 +4966,7 @@ "version": "4.3.0", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -4907,6 +4978,7 @@ "version": "5.3.0", "dev": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=4.0" } @@ -4915,6 +4987,7 @@ "version": "2.0.3", "dev": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -4962,12 +5035,14 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/fast-uri": { "version": "3.1.0", @@ -4996,6 +5071,7 @@ "version": "1.19.1", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "reusify": "^1.0.4" } @@ -5026,6 +5102,7 @@ "version": "6.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "flat-cache": "^3.0.4" }, @@ -5085,6 +5162,7 @@ "version": "3.2.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -5098,6 +5176,7 @@ "version": "1.1.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5107,6 +5186,7 @@ "version": "7.2.3", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5126,6 +5206,7 @@ "version": "3.1.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5137,6 +5218,7 @@ "version": "3.0.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -5150,12 +5232,14 @@ "node_modules/flatted": { "version": "3.3.3", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/for-each": { "version": "0.3.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-callable": "^1.2.7" }, @@ -5281,6 +5365,7 @@ "version": "1.1.8", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -5300,6 +5385,7 @@ "version": "1.2.3", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5324,6 +5410,7 @@ "version": "1.3.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", @@ -5355,6 +5442,7 @@ "version": "1.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -5367,6 +5455,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -5426,6 +5515,7 @@ "version": "6.0.2", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -5459,6 +5549,7 @@ "version": "13.24.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -5473,6 +5564,7 @@ "version": "1.0.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" @@ -5488,6 +5580,7 @@ "version": "1.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -5503,7 +5596,8 @@ "node_modules/graphemer": { "version": "1.4.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/groff-escape": { "version": "2.0.1", @@ -5546,6 +5640,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -5565,6 +5660,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -5576,6 +5672,7 @@ "version": "1.2.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "dunder-proto": "^1.0.0" }, @@ -5590,6 +5687,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -5601,6 +5699,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-symbols": "^1.0.3" }, @@ -5773,6 +5872,7 @@ "version": "5.3.2", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 4" } @@ -5879,6 +5979,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", @@ -5911,6 +6012,7 @@ "version": "3.0.5", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -5932,6 +6034,7 @@ "version": "2.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", @@ -5950,6 +6053,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-bigints": "^1.0.2" }, @@ -5986,6 +6090,7 @@ "version": "1.2.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -6001,6 +6106,7 @@ "version": "1.2.7", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -6037,6 +6143,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", @@ -6053,6 +6160,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -6076,6 +6184,7 @@ "version": "1.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -6098,6 +6207,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "get-proto": "^1.0.0", @@ -6126,6 +6236,7 @@ "version": "2.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -6137,6 +6248,7 @@ "version": "2.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -6156,6 +6268,7 @@ "version": "1.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -6179,6 +6292,7 @@ "version": "3.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -6203,6 +6317,7 @@ "version": "1.2.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", @@ -6220,6 +6335,7 @@ "version": "2.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -6231,6 +6347,7 @@ "version": "1.0.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -6256,6 +6373,7 @@ "version": "1.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -6271,6 +6389,7 @@ "version": "1.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", @@ -6298,6 +6417,7 @@ "version": "1.1.15", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "which-typed-array": "^1.1.16" }, @@ -6317,6 +6437,7 @@ "version": "2.0.2", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -6328,6 +6449,7 @@ "version": "1.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -6342,6 +6464,7 @@ "version": "2.0.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" @@ -6364,7 +6487,8 @@ "node_modules/isarray": { "version": "2.0.5", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/isexe": { "version": "3.1.1", @@ -6640,7 +6764,6 @@ "version": "1.4.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 10.16.0" } @@ -6659,7 +6782,8 @@ "node_modules/json-buffer": { "version": "3.0.1", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/json-parse-even-better-errors": { "version": "4.0.0", @@ -6677,7 +6801,8 @@ "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/json-stringify-nice": { "version": "1.1.4", @@ -6776,6 +6901,7 @@ "version": "4.5.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "json-buffer": "3.0.1" } @@ -6800,6 +6926,7 @@ "version": "0.4.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -7061,6 +7188,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" } @@ -8133,6 +8261,7 @@ } ], "license": "MIT", + "peer": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -8143,7 +8272,8 @@ "node_modules/natural-compare": { "version": "1.4.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/nearley": { "version": "2.20.1", @@ -8769,6 +8899,7 @@ "version": "1.13.4", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -8780,6 +8911,7 @@ "version": "1.1.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" } @@ -8788,6 +8920,7 @@ "version": "4.1.7", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -8807,6 +8940,7 @@ "version": "2.0.8", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -8824,6 +8958,7 @@ "version": "1.0.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -8837,6 +8972,7 @@ "version": "1.2.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -8870,6 +9006,7 @@ "version": "0.9.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -8886,6 +9023,7 @@ "version": "1.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -9210,6 +9348,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" } @@ -9259,6 +9398,7 @@ "version": "1.2.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -9391,7 +9531,8 @@ "url": "https://feross.org/support" } ], - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/quick-lru": { "version": "4.0.1", @@ -9600,6 +9741,7 @@ "version": "1.0.10", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -9621,6 +9763,7 @@ "version": "1.5.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -9640,6 +9783,7 @@ "version": "3.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -9717,7 +9861,6 @@ "version": "5.2.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -10221,6 +10364,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -10269,6 +10413,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "queue-microtask": "^1.2.2" } @@ -10277,6 +10422,7 @@ "version": "1.1.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -10295,6 +10441,7 @@ "version": "1.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -10310,6 +10457,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -10367,6 +10515,7 @@ "version": "1.2.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -10383,6 +10532,7 @@ "version": "2.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -10397,6 +10547,7 @@ "version": "1.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -10429,6 +10580,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", @@ -10447,6 +10599,7 @@ "version": "1.0.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" @@ -10462,6 +10615,7 @@ "version": "1.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -10479,6 +10633,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -10810,6 +10965,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" @@ -10861,6 +11017,7 @@ "version": "1.2.10", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -10881,6 +11038,7 @@ "version": "1.0.9", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -10898,6 +11056,7 @@ "version": "1.0.8", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -10969,6 +11128,7 @@ "version": "3.1.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -11231,7 +11391,6 @@ "dev": true, "inBundle": true, "license": "MIT", - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.23.5", @@ -11688,7 +11847,6 @@ "dev": true, "inBundle": true, "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -11817,7 +11975,6 @@ ], "inBundle": true, "license": "MIT", - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001565", "electron-to-chromium": "^1.4.601", @@ -12683,7 +12840,6 @@ "dev": true, "inBundle": true, "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -13386,7 +13542,6 @@ "version": "4.0.3", "inBundle": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -13509,6 +13664,7 @@ "version": "3.15.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -13520,6 +13676,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "minimist": "^1.2.0" }, @@ -13531,6 +13688,7 @@ "version": "3.0.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=4" } @@ -13560,6 +13718,7 @@ "version": "0.4.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -13571,6 +13730,7 @@ "version": "0.20.2", "dev": true, "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=10" }, @@ -13582,6 +13742,7 @@ "version": "1.0.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -13595,6 +13756,7 @@ "version": "1.0.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -13613,6 +13775,7 @@ "version": "1.0.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -13633,6 +13796,7 @@ "version": "1.0.7", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -13685,6 +13849,7 @@ "version": "1.1.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -14060,6 +14225,7 @@ "version": "1.1.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -14078,6 +14244,7 @@ "version": "1.2.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -14104,6 +14271,7 @@ "version": "1.0.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -14126,6 +14294,7 @@ "version": "1.1.19", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -14146,6 +14315,7 @@ "version": "1.2.5", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } diff --git a/tap-snapshots/test/lib/commands/ls.js.test.cjs b/tap-snapshots/test/lib/commands/ls.js.test.cjs index 3b303261fd635..fc7fbdf8a906f 100644 --- a/tap-snapshots/test/lib/commands/ls.js.test.cjs +++ b/tap-snapshots/test/lib/commands/ls.js.test.cjs @@ -9,7 +9,9 @@ exports[`test/lib/commands/ls.js TAP ignore missing optional deps --json > ls -- Array [ "invalid: optional-wrong@3.2.1 {CWD}/prefix/node_modules/optional-wrong", "missing: peer-missing@1, required by test-npm-ls-ignore-missing-optional@1.2.3", + "extraneous: peer-optional-ok@1.2.3 {CWD}/prefix/node_modules/peer-optional-ok", "invalid: peer-optional-wrong@3.2.1 {CWD}/prefix/node_modules/peer-optional-wrong", + "extraneous: peer-optional-wrong@3.2.1 {CWD}/prefix/node_modules/peer-optional-wrong", "invalid: peer-wrong@3.2.1 {CWD}/prefix/node_modules/peer-wrong", "missing: prod-missing@1, required by test-npm-ls-ignore-missing-optional@1.2.3", "invalid: prod-wrong@3.2.1 {CWD}/prefix/node_modules/prod-wrong", @@ -36,8 +38,8 @@ test-npm-ls-ignore-missing-optional@1.2.3 {CWD}/prefix +-- UNMET DEPENDENCY peer-missing@1 +-- peer-ok@1.2.3 +-- UNMET OPTIONAL DEPENDENCY peer-optional-missing@1 -+-- peer-optional-ok@1.2.3 -+-- peer-optional-wrong@3.2.1 invalid: "1" from the root project ++-- peer-optional-ok@1.2.3 extraneous ++-- peer-optional-wrong@3.2.1 invalid: "1" from the root project extraneous +-- peer-wrong@3.2.1 invalid: "1" from the root project +-- UNMET DEPENDENCY prod-missing@1 +-- prod-ok@1.2.3 diff --git a/workspaces/arborist/lib/arborist/build-ideal-tree.js b/workspaces/arborist/lib/arborist/build-ideal-tree.js index 3a066d9b6d336..9631a3eca890f 100644 --- a/workspaces/arborist/lib/arborist/build-ideal-tree.js +++ b/workspaces/arborist/lib/arborist/build-ideal-tree.js @@ -351,7 +351,7 @@ module.exports = cls => class IdealTreeBuilder extends cls { filter: node => node, visit: node => { for (const edge of node.edgesOut.values()) { - if (!edge.to || !edge.valid) { + if ((!edge.to && edge.type !== 'peerOptional') || !edge.valid) { this.#depsQueue.push(node) break // no need to continue the loop after the first hit } @@ -754,6 +754,7 @@ This is a one-time fix-up, please be patient... // have to re-calc dep flags, because the nodes don't have edges // until their packages get assigned, so everything looks extraneous + resetDepFlags(this.idealTree) calcDepFlags(this.idealTree) // yes, yes, this isn't the "original" version, but now that it's been @@ -1508,11 +1509,7 @@ This is a one-time fix-up, please be patient... } else { // otherwise just unset all the flags on the root node // since they will sometimes have the default value - this.idealTree.extraneous = false - this.idealTree.dev = false - this.idealTree.optional = false - this.idealTree.devOptional = false - this.idealTree.peer = false + this.idealTree.unsetDepFlags() } // at this point, any node marked as extraneous should be pruned. @@ -1555,12 +1552,7 @@ This is a one-time fix-up, please be patient... #idealTreePrune () { for (const node of this.idealTree.inventory.values()) { - // optional peer dependencies are meant to be added to the tree - // through an explicit required dependency (most commonly in the - // root package.json), at which point they won't be optional so - // any dependencies still marked as both optional and peer at - // this point can be pruned as a special kind of extraneous - if (node.extraneous || (node.peer && node.optional)) { + if (node.extraneous) { node.parent = null } } diff --git a/workspaces/arborist/lib/arborist/load-virtual.js b/workspaces/arborist/lib/arborist/load-virtual.js index ba1b7478bd510..ff0583181529b 100644 --- a/workspaces/arborist/lib/arborist/load-virtual.js +++ b/workspaces/arborist/lib/arborist/load-virtual.js @@ -69,11 +69,7 @@ module.exports = cls => class VirtualLoader extends cls { 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 + root.unsetDepFlags() } else { this[flagsSuspect] = true } @@ -93,11 +89,7 @@ module.exports = cls => class VirtualLoader extends cls { if (node.isRoot || node === this.#rootOptionProvided) { continue } - node.extraneous = true - node.dev = true - node.optional = true - node.devOptional = true - node.peer = true + node.resetDepFlags() } calcDepFlags(this.virtualTree, !this.#rootOptionProvided) } @@ -255,11 +247,6 @@ To fix: 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({ installLinks: this.installLinks, legacyPeerDeps: this.legacyPeerDeps, @@ -270,18 +257,15 @@ To fix: resolved: consistentResolve(sw.resolved, this.path, path), pkg: sw, hasShrinkwrap: sw.hasShrinkwrap, - dev, - optional, - devOptional, - peer, loadOverrides, + // cast to boolean because they're undefined in the lock file when false + extraneous: !!sw.extraneous, + devOptional: !!(sw.devOptional || sw.dev || sw.optional), + peer: !!sw.peer, + optional: !!sw.optional, + dev: !!sw.dev, }) - // cast to boolean because they're undefined in the lock file when false - node.extraneous = !!sw.extraneous - node.devOptional = !!(sw.devOptional || sw.dev || sw.optional) - node.peer = !!sw.peer - node.optional = !!sw.optional - node.dev = !!sw.dev + return node } diff --git a/workspaces/arborist/lib/calc-dep-flags.js b/workspaces/arborist/lib/calc-dep-flags.js index 76de452ed3d80..5f2484858094d 100644 --- a/workspaces/arborist/lib/calc-dep-flags.js +++ b/workspaces/arborist/lib/calc-dep-flags.js @@ -1,144 +1,102 @@ -const { depth } = require('treeverse') - +// Dep flag (dev, peer, etc.) calculation requires default or reset flags. +// Flags are true by default and are unset to false as we walk deps. +// We iterate outward edges looking for dep flags that can +// be unset based on the current nodes flags and edge type. +// Examples: +// - a non-optional node with a non-optional edge out, the edge node should not be optional +// - a non-peer node with a non-peer edge out, the edge node should not be peer +// If a node is changed, we add to the queue and continue until no more changes. +// Flags that remain after all this unsetting should be valid. +// Examples: +// - a node still flagged optional must only be reachable via optional edges +// - a node still flagged peer must only be reachable via peer edges const calcDepFlags = (tree, resetRoot = true) => { if (resetRoot) { - tree.dev = false - tree.optional = false - tree.devOptional = false - tree.peer = false + tree.unsetDepFlags() } - const ret = depth({ - tree, - visit: node => calcDepFlagsStep(node), - filter: node => node, - getChildren: (node, tree) => - [...tree.edgesOut.values()].map(edge => edge.to), - }) - return ret -} - -const calcDepFlagsStep = (node) => { - // This rewalk is necessary to handle cases where devDep and optional - // or normal dependency graphs overlap deep in the dep graph. - // Since we're only walking through deps that are not already flagged - // as non-dev/non-optional, it's typically a very shallow traversal - - node.extraneous = false - resetParents(node, 'extraneous') - resetParents(node, 'dev') - resetParents(node, 'peer') - resetParents(node, 'devOptional') - resetParents(node, 'optional') - - // for links, map their hierarchy appropriately - if (node.isLink) { - // node.target can be null, we check to ensure it's not null before proceeding - if (node.target == null) { - return node - } - node.target.dev = node.dev - node.target.optional = node.optional - node.target.devOptional = node.devOptional - node.target.peer = node.peer - return calcDepFlagsStep(node.target) - } - - node.edgesOut.forEach(({ peer, optional, dev, to }) => { - // if the dep is missing, then its flags are already maximally unset - if (!to) { - return - } - // everything with any kind of edge into it is not extraneous - to.extraneous = false - - // If this is a peer edge, mark the target as peer - if (peer) { - to.peer = true - } else if (to.peer && !hasIncomingPeerEdge(to)) { - unsetFlag(to, 'peer') - } - // devOptional is the *overlap* of the dev and optional tree. - // however, for convenience and to save an extra rewalk, we leave - // it set when we are in *either* tree, and then omit it from the - // package-lock if either dev or optional are set. - const unsetDevOpt = !node.devOptional && !node.dev && !node.optional && !dev && !optional + const seen = new Set() + const queue = [tree] - // if we are not in the devOpt tree, then we're also not in - // either the dev or opt trees - const unsetDev = unsetDevOpt || !node.dev && !dev - const unsetOpt = unsetDevOpt || !node.optional && !optional + let node + while (node = queue.pop()) { + seen.add(node) - if (unsetDevOpt) { - unsetFlag(to, 'devOptional') + // Unset extraneous from all parents to avoid removal of children. + if (!node.extraneous) { + for (let n = node.resolveParent; n?.extraneous; n = n.resolveParent) { + n.extraneous = false + } } - if (unsetDev) { - unsetFlag(to, 'dev') + // for links, map their hierarchy appropriately + if (node.isLink) { + // node.target can be null, we check to ensure it's not null before proceeding + if (node.target == null) { + continue + } + node.target.dev = node.dev + node.target.optional = node.optional + node.target.devOptional = node.devOptional + node.target.peer = node.peer + node.target.extraneous = node.extraneous + queue.push(node.target) + continue } - if (unsetOpt) { - unsetFlag(to, 'optional') - } - }) - - return node -} - -const hasIncomingPeerEdge = (node) => { - const target = node.isLink && node.target ? node.target : node - for (const edge of target.edgesIn) { - if (edge.type === 'peer') { - return true + for (const { peer, optional, dev, to } of node.edgesOut.values()) { + // if the dep is missing, then its flags are already maximally unset + if (!to) { + continue + } + + let changed = false + + // only optional peer dependencies should stay extraneous + if (to.extraneous && !node.extraneous && !(peer && optional)) { + to.extraneous = false + changed = true + } + + if (to.dev && !node.dev && !dev) { + to.dev = false + changed = true + } + + if (to.optional && !node.optional && !optional) { + to.optional = false + changed = true + } + + // devOptional is the *overlap* of the dev and optional tree. + // A node may be depended on by separate dev and optional nodes. + // It SHOULD NOT be removed when pruning dev OR optional. + // It SHOULD be removed when pruning dev AND optional. + // We only unset here if a node is not dev AND not optional because + // if we did unset, it would prevent any overlap deeper in the tree. + // We correct this later by removing if dev OR optional is set. + if (to.devOptional && !node.devOptional && !node.dev && !node.optional && !dev && !optional) { + to.devOptional = false + changed = true + } + + if (to.peer && !node.peer && !peer) { + to.peer = false + changed = true + } + + if (changed) { + queue.push(to) + } } } - return false -} -const resetParents = (node, flag) => { - if (node[flag]) { - return - } - - for (let p = node; p && (p === node || p[flag]); p = p.resolveParent) { - p[flag] = false - } -} - -// typically a short walk, since it only traverses deps that have the flag set. -const unsetFlag = (node, flag) => { - if (node[flag]) { - node[flag] = false - depth({ - tree: node, - visit: node => { - node.extraneous = node[flag] = false - if (node.isLink && node.target) { - node.target.extraneous = node.target[flag] = false - } - }, - getChildren: node => { - const children = [] - const targetNode = node.isLink && node.target ? node.target : node - for (const edge of targetNode.edgesOut.values()) { - if (edge.to?.[flag]) { - // For the peer flag, only follow peer edges to unset the flag - // Don't propagate peer flag through prod/dev/optional edges - if (flag === 'peer') { - if (edge.type === 'peer') { - children.push(edge.to) - } - } else { - // For other flags, follow prod edges (and peer edges for non-peer flags) - if (edge.type === 'prod' || edge.type === 'peer') { - children.push(edge.to) - } - } - } - } - return children - }, - }) + // Remove incorrect devOptional flags now that we have walked all deps. + seen.delete(tree) + for (const node of seen.values()) { + if (node.devOptional && (node.dev || node.optional)) { + node.devOptional = false + } } } diff --git a/workspaces/arborist/lib/node.js b/workspaces/arborist/lib/node.js index 41871756c221c..8c6d361e86385 100644 --- a/workspaces/arborist/lib/node.js +++ b/workspaces/arborist/lib/node.js @@ -1613,6 +1613,22 @@ class Node { [util.inspect.custom] () { return this.toJSON() } + + resetDepFlags () { + this.extraneous = true + this.dev = true + this.optional = true + this.devOptional = true + this.peer = true + } + + unsetDepFlags () { + this.extraneous = false + this.dev = false + this.optional = false + this.devOptional = false + this.peer = false + } } module.exports = Node diff --git a/workspaces/arborist/lib/reset-dep-flags.js b/workspaces/arborist/lib/reset-dep-flags.js index e259e901a5625..6bb4ceceb6972 100644 --- a/workspaces/arborist/lib/reset-dep-flags.js +++ b/workspaces/arborist/lib/reset-dep-flags.js @@ -6,10 +6,6 @@ // we can find the set that is actually extraneous. module.exports = tree => { for (const node of tree.inventory.values()) { - node.extraneous = true - node.dev = true - node.devOptional = true - node.peer = true - node.optional = true + node.resetDepFlags() } } diff --git a/workspaces/arborist/tap-snapshots/test/arborist/build-ideal-tree.js.test.cjs b/workspaces/arborist/tap-snapshots/test/arborist/build-ideal-tree.js.test.cjs index 0f8b8b1382e8d..fe597ef08727d 100644 --- a/workspaces/arborist/tap-snapshots/test/arborist/build-ideal-tree.js.test.cjs +++ b/workspaces/arborist/tap-snapshots/test/arborist/build-ideal-tree.js.test.cjs @@ -2249,7 +2249,6 @@ ArboristNode { "location": "node_modules/@isaacs/conflicted-peer-optional-from-dev-dep-peer", "name": "@isaacs/conflicted-peer-optional-from-dev-dep-peer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-ERESOLVE-to-be-forced-when-not-in-the-source-both-direct-and-peer-of-the-same-type-dependencies/node_modules/@isaacs/conflicted-peer-optional-from-dev-dep-peer", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/conflicted-peer-optional-from-dev-dep-peer/-/conflicted-peer-optional-from-dev-dep-peer-1.0.0.tgz", "version": "1.0.0", }, @@ -2327,7 +2326,6 @@ ArboristNode { "location": "node_modules/@isaacs/conflicted-peer-optional-from-dev-dep-peer", "name": "@isaacs/conflicted-peer-optional-from-dev-dep-peer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-ERESOLVE-to-be-forced-when-not-in-the-source-both-direct-and-peer-of-the-same-type-devDependencies/node_modules/@isaacs/conflicted-peer-optional-from-dev-dep-peer", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/conflicted-peer-optional-from-dev-dep-peer/-/conflicted-peer-optional-from-dev-dep-peer-1.0.0.tgz", "version": "1.0.0", }, @@ -2405,7 +2403,6 @@ ArboristNode { "name": "@isaacs/conflicted-peer-optional-from-dev-dep-peer", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-ERESOLVE-to-be-forced-when-not-in-the-source-both-direct-and-peer-of-the-same-type-optionalDependencies/node_modules/@isaacs/conflicted-peer-optional-from-dev-dep-peer", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/conflicted-peer-optional-from-dev-dep-peer/-/conflicted-peer-optional-from-dev-dep-peer-1.0.0.tgz", "version": "1.0.0", }, @@ -2559,7 +2556,6 @@ ArboristNode { "location": "node_modules/@isaacs/conflicted-peer-optional-from-dev-dep-peer", "name": "@isaacs/conflicted-peer-optional-from-dev-dep-peer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-ERESOLVE-to-be-forced-when-not-in-the-source-peer-is-peer-b-is-some-other-type-dependencies/node_modules/@isaacs/conflicted-peer-optional-from-dev-dep-peer", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/conflicted-peer-optional-from-dev-dep-peer/-/conflicted-peer-optional-from-dev-dep-peer-1.0.0.tgz", "version": "1.0.0", }, @@ -2713,7 +2709,6 @@ ArboristNode { "location": "node_modules/@isaacs/conflicted-peer-optional-from-dev-dep-peer", "name": "@isaacs/conflicted-peer-optional-from-dev-dep-peer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-ERESOLVE-to-be-forced-when-not-in-the-source-peer-is-peer-b-is-some-other-type-devDependencies/node_modules/@isaacs/conflicted-peer-optional-from-dev-dep-peer", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/conflicted-peer-optional-from-dev-dep-peer/-/conflicted-peer-optional-from-dev-dep-peer-1.0.0.tgz", "version": "1.0.0", }, @@ -2868,7 +2863,6 @@ ArboristNode { "name": "@isaacs/conflicted-peer-optional-from-dev-dep-peer", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-ERESOLVE-to-be-forced-when-not-in-the-source-peer-is-peer-b-is-some-other-type-optionalDependencies/node_modules/@isaacs/conflicted-peer-optional-from-dev-dep-peer", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/conflicted-peer-optional-from-dev-dep-peer/-/conflicted-peer-optional-from-dev-dep-peer-1.0.0.tgz", "version": "1.0.0", }, @@ -3002,7 +2996,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-a-link-dep-to-satisfy-a-peer-dep/main/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -3120,7 +3113,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-v", "name": "@isaacs/testing-peer-dep-conflict-chain-v", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-a-link-dep-to-satisfy-a-peer-dep/main/node_modules/@isaacs/testing-peer-dep-conflict-chain-v", - "peer": true, "realpath": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-a-link-dep-to-satisfy-a-peer-dep/v2", "resolved": "file:../../../v2", "target": ArboristNode { @@ -3128,7 +3120,6 @@ ArboristNode { "name": "v2", "packageName": "@isaacs/testing-peer-dep-conflict-chain-v", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-a-link-dep-to-satisfy-a-peer-dep/v2", - "peer": true, "version": "2.0.0", }, "version": "2.0.0", @@ -3214,7 +3205,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-a-link-dep-to-satisfy-a-peer-dep/main/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -3332,14 +3322,12 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-v", "name": "@isaacs/testing-peer-dep-conflict-chain-v", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-a-link-dep-to-satisfy-a-peer-dep/main/node_modules/@isaacs/testing-peer-dep-conflict-chain-v", - "peer": true, "realpath": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-a-link-dep-to-satisfy-a-peer-dep/v2", "resolved": "file:../../../v2", "target": ArboristNode { "location": "../v2", "name": "@isaacs/testing-peer-dep-conflict-chain-v", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-a-link-dep-to-satisfy-a-peer-dep/v2", - "peer": true, "version": "2.0.0", }, "version": "2.0.0", @@ -3441,7 +3429,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-updating-when-peer-outside-of-explicit-update-set-conflict-but-resolves-appropriately-with---force/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -3569,7 +3556,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-single-a", "name": "@isaacs/testing-peer-dep-conflict-chain-single-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-updating-when-peer-outside-of-explicit-update-set-conflict-but-resolves-appropriately-with---force/node_modules/@isaacs/testing-peer-dep-conflict-chain-single-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-single-a/-/testing-peer-dep-conflict-chain-single-a-2.0.1.tgz", "version": "2.0.1", }, @@ -3675,7 +3661,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-updating-when-peer-outside-of-explicit-update-set-valid-no-force-required/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -3801,7 +3786,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-single-a", "name": "@isaacs/testing-peer-dep-conflict-chain-single-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-allow-updating-when-peer-outside-of-explicit-update-set-valid-no-force-required/node_modules/@isaacs/testing-peer-dep-conflict-chain-single-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-single-a/-/testing-peer-dep-conflict-chain-single-a-2.0.1.tgz", "version": "2.0.1", }, @@ -3995,6 +3979,7 @@ ArboristNode { "location": "node_modules/@types/eslint", "name": "@types/eslint", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@types/eslint", + "peer": true, "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.4.tgz", "version": "7.2.4", }, @@ -4024,6 +4009,7 @@ ArboristNode { "location": "node_modules/@types/eslint-scope", "name": "@types/eslint-scope", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@types/eslint-scope", + "peer": true, "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", "version": "3.7.0", }, @@ -4051,6 +4037,7 @@ ArboristNode { "location": "node_modules/@types/estree", "name": "@types/estree", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@types/estree", + "peer": true, "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", "version": "0.0.45", }, @@ -4099,6 +4086,7 @@ ArboristNode { "location": "node_modules/@types/node", "name": "@types/node", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@types/node", + "peer": true, "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.8.tgz", "version": "14.11.8", }, @@ -4197,6 +4185,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/ast", "name": "@webassemblyjs/ast", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/ast", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "version": "1.9.0", }, @@ -4212,6 +4201,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/floating-point-hex-parser", "name": "@webassemblyjs/floating-point-hex-parser", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/floating-point-hex-parser", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", "version": "1.9.0", }, @@ -4233,6 +4223,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-api-error", "name": "@webassemblyjs/helper-api-error", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/helper-api-error", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", "version": "1.9.0", }, @@ -4260,6 +4251,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-buffer", "name": "@webassemblyjs/helper-buffer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/helper-buffer", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", "version": "1.9.0", }, @@ -4283,6 +4275,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-code-frame", "name": "@webassemblyjs/helper-code-frame", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/helper-code-frame", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", "version": "1.9.0", }, @@ -4298,6 +4291,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-fsm", "name": "@webassemblyjs/helper-fsm", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/helper-fsm", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", "version": "1.9.0", }, @@ -4327,6 +4321,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-module-context", "name": "@webassemblyjs/helper-module-context", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/helper-module-context", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", "version": "1.9.0", }, @@ -4366,6 +4361,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-wasm-bytecode", "name": "@webassemblyjs/helper-wasm-bytecode", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/helper-wasm-bytecode", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", "version": "1.9.0", }, @@ -4407,6 +4403,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-wasm-section", "name": "@webassemblyjs/helper-wasm-section", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/helper-wasm-section", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", "version": "1.9.0", }, @@ -4436,6 +4433,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/ieee754", "name": "@webassemblyjs/ieee754", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/ieee754", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "version": "1.9.0", }, @@ -4465,6 +4463,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/leb128", "name": "@webassemblyjs/leb128", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/leb128", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "version": "1.9.0", }, @@ -4486,6 +4485,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/utf8", "name": "@webassemblyjs/utf8", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/utf8", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", "version": "1.9.0", }, @@ -4551,6 +4551,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wasm-edit", "name": "@webassemblyjs/wasm-edit", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/wasm-edit", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", "version": "1.9.0", }, @@ -4610,6 +4611,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wasm-gen", "name": "@webassemblyjs/wasm-gen", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/wasm-gen", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "version": "1.9.0", }, @@ -4651,6 +4653,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wasm-opt", "name": "@webassemblyjs/wasm-opt", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/wasm-opt", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "version": "1.9.0", }, @@ -4716,6 +4719,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wasm-parser", "name": "@webassemblyjs/wasm-parser", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/wasm-parser", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "version": "1.9.0", }, @@ -4775,6 +4779,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wast-parser", "name": "@webassemblyjs/wast-parser", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/wast-parser", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", "version": "1.9.0", }, @@ -4816,6 +4821,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wast-printer", "name": "@webassemblyjs/wast-printer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@webassemblyjs/wast-printer", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", "version": "1.9.0", }, @@ -4831,6 +4837,7 @@ ArboristNode { "location": "node_modules/@xtuc/ieee754", "name": "@xtuc/ieee754", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@xtuc/ieee754", + "peer": true, "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "version": "1.2.0", }, @@ -4858,6 +4865,7 @@ ArboristNode { "location": "node_modules/@xtuc/long", "name": "@xtuc/long", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/@xtuc/long", + "peer": true, "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "version": "4.2.2", }, @@ -4873,6 +4881,7 @@ ArboristNode { "location": "node_modules/acorn", "name": "acorn", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/acorn", + "peer": true, "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz", "version": "8.0.4", }, @@ -4932,7 +4941,6 @@ ArboristNode { "location": "node_modules/ajv", "name": "ajv", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/ajv", - "peer": true, "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "version": "6.12.6", }, @@ -5144,6 +5152,7 @@ ArboristNode { "location": "node_modules/browserslist", "name": "browserslist", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/browserslist", + "peer": true, "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", "version": "4.14.5", }, @@ -5159,6 +5168,7 @@ ArboristNode { "location": "node_modules/buffer-from", "name": "buffer-from", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/buffer-from", + "peer": true, "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "version": "1.1.1", }, @@ -5174,6 +5184,7 @@ ArboristNode { "location": "node_modules/caniuse-lite", "name": "caniuse-lite", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/caniuse-lite", + "peer": true, "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz", "version": "1.0.30001148", }, @@ -5226,6 +5237,7 @@ ArboristNode { "location": "node_modules/chrome-trace-event", "name": "chrome-trace-event", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/chrome-trace-event", + "peer": true, "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", "version": "1.0.2", }, @@ -5384,6 +5396,7 @@ ArboristNode { "location": "node_modules/commander", "name": "commander", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/commander", + "peer": true, "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "version": "2.20.3", }, @@ -5414,6 +5427,7 @@ ArboristNode { "location": "node_modules/electron-to-chromium", "name": "electron-to-chromium", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/electron-to-chromium", + "peer": true, "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.582.tgz", "version": "1.3.582", }, @@ -5458,6 +5472,7 @@ ArboristNode { "location": "node_modules/enhanced-resolve", "name": "enhanced-resolve", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/enhanced-resolve", + "peer": true, "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz", "version": "5.3.1", }, @@ -5496,6 +5511,7 @@ ArboristNode { "location": "node_modules/escalade", "name": "escalade", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/escalade", + "peer": true, "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "version": "3.1.1", }, @@ -5540,6 +5556,7 @@ ArboristNode { "location": "node_modules/eslint-scope", "name": "eslint-scope", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/eslint-scope", + "peer": true, "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "version": "5.1.1", }, @@ -5557,6 +5574,7 @@ ArboristNode { "location": "node_modules/esrecurse/node_modules/estraverse", "name": "estraverse", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/esrecurse/node_modules/estraverse", + "peer": true, "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "version": "5.2.0", }, @@ -5580,6 +5598,7 @@ ArboristNode { "location": "node_modules/esrecurse", "name": "esrecurse", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/esrecurse", + "peer": true, "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "version": "4.3.0", }, @@ -5595,6 +5614,7 @@ ArboristNode { "location": "node_modules/estraverse", "name": "estraverse", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/estraverse", + "peer": true, "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "version": "4.3.0", }, @@ -5610,6 +5630,7 @@ ArboristNode { "location": "node_modules/events", "name": "events", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/events", + "peer": true, "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", "version": "3.2.0", }, @@ -5669,6 +5690,7 @@ ArboristNode { "location": "node_modules/find-up", "name": "find-up", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/find-up", + "peer": true, "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "version": "4.1.0", }, @@ -5690,6 +5712,7 @@ ArboristNode { "location": "node_modules/glob-to-regexp", "name": "glob-to-regexp", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/glob-to-regexp", + "peer": true, "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "version": "0.4.1", }, @@ -5717,6 +5740,7 @@ ArboristNode { "location": "node_modules/graceful-fs", "name": "graceful-fs", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/graceful-fs", + "peer": true, "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "version": "4.2.4", }, @@ -6057,6 +6081,7 @@ ArboristNode { "location": "node_modules/jest-worker", "name": "jest-worker", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/jest-worker", + "peer": true, "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", "version": "26.6.2", }, @@ -6087,6 +6112,7 @@ ArboristNode { "location": "node_modules/json-parse-better-errors", "name": "json-parse-better-errors", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/json-parse-better-errors", + "peer": true, "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "version": "1.0.2", }, @@ -6117,6 +6143,7 @@ ArboristNode { "location": "node_modules/loader-runner", "name": "loader-runner", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/loader-runner", + "peer": true, "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.1.0.tgz", "version": "4.1.0", }, @@ -6140,6 +6167,7 @@ ArboristNode { "location": "node_modules/locate-path", "name": "locate-path", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/locate-path", + "peer": true, "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "version": "5.0.0", }, @@ -6223,6 +6251,7 @@ ArboristNode { "location": "node_modules/merge-stream", "name": "merge-stream", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/merge-stream", + "peer": true, "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "version": "2.0.0", }, @@ -6238,6 +6267,7 @@ ArboristNode { "location": "node_modules/mime-db", "name": "mime-db", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/mime-db", + "peer": true, "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", "version": "1.44.0", }, @@ -6261,6 +6291,7 @@ ArboristNode { "location": "node_modules/mime-types", "name": "mime-types", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/mime-types", + "peer": true, "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "version": "2.1.27", }, @@ -6314,6 +6345,7 @@ ArboristNode { "location": "node_modules/neo-async", "name": "neo-async", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/neo-async", + "peer": true, "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "version": "2.6.2", }, @@ -6329,6 +6361,7 @@ ArboristNode { "location": "node_modules/node-releases", "name": "node-releases", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/node-releases", + "peer": true, "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.63.tgz", "version": "1.1.63", }, @@ -6420,6 +6453,7 @@ ArboristNode { "location": "node_modules/p-limit", "name": "p-limit", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/p-limit", + "peer": true, "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "version": "2.3.0", }, @@ -6443,6 +6477,7 @@ ArboristNode { "location": "node_modules/p-locate", "name": "p-locate", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/p-locate", + "peer": true, "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "version": "4.1.0", }, @@ -6464,6 +6499,7 @@ ArboristNode { "location": "node_modules/p-try", "name": "p-try", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/p-try", + "peer": true, "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "version": "2.2.0", }, @@ -6494,6 +6530,7 @@ ArboristNode { "location": "node_modules/path-exists", "name": "path-exists", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/path-exists", + "peer": true, "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "version": "4.0.0", }, @@ -6517,6 +6554,7 @@ ArboristNode { "location": "node_modules/pkg-dir", "name": "pkg-dir", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/pkg-dir", + "peer": true, "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "version": "4.2.0", }, @@ -6617,6 +6655,7 @@ ArboristNode { "location": "node_modules/randombytes", "name": "randombytes", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/randombytes", + "peer": true, "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "version": "2.1.0", }, @@ -6847,6 +6886,7 @@ ArboristNode { "location": "node_modules/safe-buffer", "name": "safe-buffer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/safe-buffer", + "peer": true, "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "version": "5.2.1", }, @@ -6940,6 +6980,7 @@ ArboristNode { "location": "node_modules/serialize-javascript", "name": "serialize-javascript", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/serialize-javascript", + "peer": true, "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", "version": "5.0.1", }, @@ -7032,6 +7073,7 @@ ArboristNode { "location": "node_modules/source-list-map", "name": "source-list-map", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/source-list-map", + "peer": true, "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "version": "2.0.1", }, @@ -7070,6 +7112,7 @@ ArboristNode { "location": "node_modules/source-map-support/node_modules/source-map", "name": "source-map", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/source-map-support/node_modules/source-map", + "peer": true, "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "version": "0.6.1", }, @@ -7099,6 +7142,7 @@ ArboristNode { "location": "node_modules/source-map-support", "name": "source-map-support", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/source-map-support", + "peer": true, "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "version": "0.5.19", }, @@ -7343,6 +7387,7 @@ ArboristNode { "location": "node_modules/tapable", "name": "tapable", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/tapable", + "peer": true, "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.0.0.tgz", "version": "2.0.0", }, @@ -7378,6 +7423,7 @@ ArboristNode { "location": "node_modules/terser", "name": "terser", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/terser", + "peer": true, "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz", "version": "5.3.8", }, @@ -7403,6 +7449,7 @@ ArboristNode { "location": "node_modules/terser-webpack-plugin/node_modules/p-limit", "name": "p-limit", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/terser-webpack-plugin/node_modules/p-limit", + "peer": true, "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", "version": "3.0.2", }, @@ -7438,6 +7485,7 @@ ArboristNode { "location": "node_modules/terser-webpack-plugin/node_modules/schema-utils", "name": "schema-utils", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/terser-webpack-plugin/node_modules/schema-utils", + "peer": true, "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", "version": "3.0.0", }, @@ -7453,6 +7501,7 @@ ArboristNode { "location": "node_modules/terser-webpack-plugin/node_modules/source-map", "name": "source-map", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/terser-webpack-plugin/node_modules/source-map", + "peer": true, "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "version": "0.6.1", }, @@ -7512,6 +7561,7 @@ ArboristNode { "location": "node_modules/terser-webpack-plugin", "name": "terser-webpack-plugin", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/terser-webpack-plugin", + "peer": true, "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz", "version": "5.0.3", }, @@ -7527,6 +7577,7 @@ ArboristNode { "location": "node_modules/tslib", "name": "tslib", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/tslib", + "peer": true, "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "version": "1.14.1", }, @@ -7549,7 +7600,6 @@ ArboristNode { "location": "node_modules/type-fest", "name": "type-fest", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/type-fest", - "peer": true, "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", "version": "0.12.0", }, @@ -7602,6 +7652,7 @@ ArboristNode { "location": "node_modules/watchpack", "name": "watchpack", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/watchpack", + "peer": true, "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.0.1.tgz", "version": "2.0.1", }, @@ -7639,6 +7690,7 @@ ArboristNode { "location": "node_modules/webpack/node_modules/schema-utils", "name": "schema-utils", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/webpack/node_modules/schema-utils", + "peer": true, "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", "version": "3.0.0", }, @@ -7806,6 +7858,7 @@ ArboristNode { "location": "node_modules/webpack", "name": "webpack", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/webpack", + "peer": true, "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.3.2.tgz", "version": "5.3.2", }, @@ -7823,6 +7876,7 @@ ArboristNode { "location": "node_modules/webpack-sources/node_modules/source-map", "name": "source-map", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/webpack-sources/node_modules/source-map", + "peer": true, "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "version": "0.6.1", }, @@ -7852,6 +7906,7 @@ ArboristNode { "location": "node_modules/webpack-sources", "name": "webpack-sources", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-always-prefer-deduping-peer-deps/node_modules/webpack-sources", + "peer": true, "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", "version": "2.2.0", }, @@ -10038,7 +10093,6 @@ ArboristNode { "location": "node_modules/@typescript-eslint/parser", "name": "@typescript-eslint/parser", "path": "{CWD}/test/fixtures/carbonium/node_modules/@typescript-eslint/parser", - "peer": true, "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.4.1.tgz", "version": "4.4.1", }, @@ -10251,7 +10305,6 @@ ArboristNode { "location": "node_modules/acorn", "name": "acorn", "path": "{CWD}/test/fixtures/carbonium/node_modules/acorn", - "peer": true, "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "version": "7.4.1", }, @@ -11076,7 +11129,6 @@ ArboristNode { "location": "node_modules/eslint", "name": "eslint", "path": "{CWD}/test/fixtures/carbonium/node_modules/eslint", - "peer": true, "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.11.0.tgz", "version": "7.11.0", }, @@ -15482,7 +15534,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-b", "name": "@isaacs/peer-dep-cycle-b", "path": "{CWD}/test/fixtures/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-b/-/peer-dep-cycle-b-2.0.0.tgz", "version": "2.0.0", }, @@ -15557,7 +15608,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -15656,7 +15706,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-2.0.0.tgz", "version": "2.0.0", }, @@ -15755,7 +15804,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -15946,7 +15994,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-b", "name": "@isaacs/peer-dep-cycle-b", "path": "{CWD}/test/fixtures/peer-dep-cycle-with-sw/node_modules/@isaacs/peer-dep-cycle-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-b/-/peer-dep-cycle-b-2.0.0.tgz", "version": "2.0.0", }, @@ -16021,7 +16068,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-with-sw/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -16120,7 +16166,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-with-sw/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-2.0.0.tgz", "version": "2.0.0", }, @@ -16219,7 +16264,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-with-sw/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -16945,6 +16989,7 @@ ArboristNode { "type": "peerOptional", }, }, + "extraneous": true, "location": "node_modules/@isaacs/test-conflicted-optional-peer-dep-meta-peer-optional/node_modules/@isaacs/test-conflicted-optional-peer-dep-peer", "name": "@isaacs/test-conflicted-optional-peer-dep-peer", "optional": true, @@ -17450,7 +17495,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-optional-conflict-e-z", "name": "@isaacs/testing-peer-optional-conflict-e-z", "path": "{CWD}/test/fixtures/peer-optional-eresolve/e/node_modules/@isaacs/testing-peer-optional-conflict-e-z", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-optional-conflict-e-z/-/testing-peer-optional-conflict-e-z-1.0.0.tgz", "version": "1.0.0", }, @@ -17564,7 +17608,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-optional-conflict-f-z", "name": "@isaacs/testing-peer-optional-conflict-f-z", "path": "{CWD}/test/fixtures/peer-optional-eresolve/f/node_modules/@isaacs/testing-peer-optional-conflict-f-z", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-optional-conflict-f-z/-/testing-peer-optional-conflict-f-z-1.0.0.tgz", "version": "1.0.0", }, @@ -17711,6 +17754,162 @@ ArboristNode { } ` +exports[`test/arborist/build-ideal-tree.js TAP do not get confused if root matches duped metadep > must match snapshot 1`] = ` +ArboristNode { + "children": Map { + "test-root-matches-metadep" => ArboristNode { + "edgesIn": Set { + EdgeIn { + "from": "node_modules/test-root-matches-metadep-x", + "name": "test-root-matches-metadep", + "spec": "1.0.0", + "type": "prod", + }, + }, + "edgesOut": Map { + "test-root-matches-metadep-x" => EdgeOut { + "name": "test-root-matches-metadep-x", + "spec": "1.0.0", + "to": "node_modules/test-root-matches-metadep-x", + "type": "prod", + }, + "test-root-matches-metadep-y" => EdgeOut { + "name": "test-root-matches-metadep-y", + "spec": "1.0.0", + "to": "node_modules/test-root-matches-metadep-y", + "type": "prod", + }, + }, + "location": "node_modules/test-root-matches-metadep", + "name": "test-root-matches-metadep", + "path": "{CWD}/test/fixtures/test-root-matches-metadep/node_modules/test-root-matches-metadep", + "resolved": "https://registry.npmjs.org/test-root-matches-metadep/-/test-root-matches-metadep-1.0.0.tgz", + "version": "1.0.0", + }, + "test-root-matches-metadep-x" => ArboristNode { + "edgesIn": Set { + EdgeIn { + "from": "", + "name": "test-root-matches-metadep-x", + "spec": "1.0.0", + "type": "prod", + }, + EdgeIn { + "from": "node_modules/test-root-matches-metadep", + "name": "test-root-matches-metadep-x", + "spec": "1.0.0", + "type": "prod", + }, + EdgeIn { + "from": "node_modules/test-root-matches-metadep-y/node_modules/test-root-matches-metadep", + "name": "test-root-matches-metadep-x", + "spec": "1.0.0", + "type": "prod", + }, + }, + "edgesOut": Map { + "test-root-matches-metadep" => EdgeOut { + "name": "test-root-matches-metadep", + "spec": "1.0.0", + "to": "node_modules/test-root-matches-metadep", + "type": "prod", + }, + }, + "location": "node_modules/test-root-matches-metadep-x", + "name": "test-root-matches-metadep-x", + "path": "{CWD}/test/fixtures/test-root-matches-metadep/node_modules/test-root-matches-metadep-x", + "resolved": "https://registry.npmjs.org/test-root-matches-metadep-x/-/test-root-matches-metadep-x-1.0.0.tgz", + "version": "1.0.0", + }, + "test-root-matches-metadep-y" => ArboristNode { + "children": Map { + "test-root-matches-metadep" => ArboristNode { + "edgesIn": Set { + EdgeIn { + "from": "node_modules/test-root-matches-metadep-y", + "name": "test-root-matches-metadep", + "spec": "1.0.1", + "type": "prod", + }, + }, + "edgesOut": Map { + "test-root-matches-metadep-x" => EdgeOut { + "name": "test-root-matches-metadep-x", + "spec": "1.0.0", + "to": "node_modules/test-root-matches-metadep-x", + "type": "prod", + }, + "test-root-matches-metadep-y" => EdgeOut { + "name": "test-root-matches-metadep-y", + "spec": "1.0.0", + "to": "node_modules/test-root-matches-metadep-y", + "type": "prod", + }, + }, + "location": "node_modules/test-root-matches-metadep-y/node_modules/test-root-matches-metadep", + "name": "test-root-matches-metadep", + "path": "{CWD}/test/fixtures/test-root-matches-metadep/node_modules/test-root-matches-metadep-y/node_modules/test-root-matches-metadep", + "resolved": "https://registry.npmjs.org/test-root-matches-metadep/-/test-root-matches-metadep-1.0.1.tgz", + "version": "1.0.1", + }, + }, + "edgesIn": Set { + EdgeIn { + "from": "", + "name": "test-root-matches-metadep-y", + "spec": "1.0.0", + "type": "prod", + }, + EdgeIn { + "from": "node_modules/test-root-matches-metadep", + "name": "test-root-matches-metadep-y", + "spec": "1.0.0", + "type": "prod", + }, + EdgeIn { + "from": "node_modules/test-root-matches-metadep-y/node_modules/test-root-matches-metadep", + "name": "test-root-matches-metadep-y", + "spec": "1.0.0", + "type": "prod", + }, + }, + "edgesOut": Map { + "test-root-matches-metadep" => EdgeOut { + "name": "test-root-matches-metadep", + "spec": "1.0.1", + "to": "node_modules/test-root-matches-metadep-y/node_modules/test-root-matches-metadep", + "type": "prod", + }, + }, + "location": "node_modules/test-root-matches-metadep-y", + "name": "test-root-matches-metadep-y", + "path": "{CWD}/test/fixtures/test-root-matches-metadep/node_modules/test-root-matches-metadep-y", + "resolved": "https://registry.npmjs.org/test-root-matches-metadep-y/-/test-root-matches-metadep-y-1.0.0.tgz", + "version": "1.0.0", + }, + }, + "edgesOut": Map { + "test-root-matches-metadep-x" => EdgeOut { + "name": "test-root-matches-metadep-x", + "spec": "1.0.0", + "to": "node_modules/test-root-matches-metadep-x", + "type": "prod", + }, + "test-root-matches-metadep-y" => EdgeOut { + "name": "test-root-matches-metadep-y", + "spec": "1.0.0", + "to": "node_modules/test-root-matches-metadep-y", + "type": "prod", + }, + }, + "isProjectRoot": true, + "location": "", + "name": "test-root-matches-metadep", + "path": "{CWD}/test/fixtures/test-root-matches-metadep", + "version": "1.0.1", +} +` + exports[`test/arborist/build-ideal-tree.js TAP do not update shrinkwrapped deps > expect resolving Promise 1`] = ` ArboristNode { "children": Map { @@ -17883,162 +18082,6 @@ ArboristNode { } ` -exports[`test/arborist/build-ideal-tree.js TAP do not get confused if root matches duped metadep > must match snapshot 1`] = ` -ArboristNode { - "children": Map { - "test-root-matches-metadep" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "node_modules/test-root-matches-metadep-x", - "name": "test-root-matches-metadep", - "spec": "1.0.0", - "type": "prod", - }, - }, - "edgesOut": Map { - "test-root-matches-metadep-x" => EdgeOut { - "name": "test-root-matches-metadep-x", - "spec": "1.0.0", - "to": "node_modules/test-root-matches-metadep-x", - "type": "prod", - }, - "test-root-matches-metadep-y" => EdgeOut { - "name": "test-root-matches-metadep-y", - "spec": "1.0.0", - "to": "node_modules/test-root-matches-metadep-y", - "type": "prod", - }, - }, - "location": "node_modules/test-root-matches-metadep", - "name": "test-root-matches-metadep", - "path": "{CWD}/test/fixtures/test-root-matches-metadep/node_modules/test-root-matches-metadep", - "resolved": "https://registry.npmjs.org/test-root-matches-metadep/-/test-root-matches-metadep-1.0.0.tgz", - "version": "1.0.0", - }, - "test-root-matches-metadep-x" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "test-root-matches-metadep-x", - "spec": "1.0.0", - "type": "prod", - }, - EdgeIn { - "from": "node_modules/test-root-matches-metadep", - "name": "test-root-matches-metadep-x", - "spec": "1.0.0", - "type": "prod", - }, - EdgeIn { - "from": "node_modules/test-root-matches-metadep-y/node_modules/test-root-matches-metadep", - "name": "test-root-matches-metadep-x", - "spec": "1.0.0", - "type": "prod", - }, - }, - "edgesOut": Map { - "test-root-matches-metadep" => EdgeOut { - "name": "test-root-matches-metadep", - "spec": "1.0.0", - "to": "node_modules/test-root-matches-metadep", - "type": "prod", - }, - }, - "location": "node_modules/test-root-matches-metadep-x", - "name": "test-root-matches-metadep-x", - "path": "{CWD}/test/fixtures/test-root-matches-metadep/node_modules/test-root-matches-metadep-x", - "resolved": "https://registry.npmjs.org/test-root-matches-metadep-x/-/test-root-matches-metadep-x-1.0.0.tgz", - "version": "1.0.0", - }, - "test-root-matches-metadep-y" => ArboristNode { - "children": Map { - "test-root-matches-metadep" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "node_modules/test-root-matches-metadep-y", - "name": "test-root-matches-metadep", - "spec": "1.0.1", - "type": "prod", - }, - }, - "edgesOut": Map { - "test-root-matches-metadep-x" => EdgeOut { - "name": "test-root-matches-metadep-x", - "spec": "1.0.0", - "to": "node_modules/test-root-matches-metadep-x", - "type": "prod", - }, - "test-root-matches-metadep-y" => EdgeOut { - "name": "test-root-matches-metadep-y", - "spec": "1.0.0", - "to": "node_modules/test-root-matches-metadep-y", - "type": "prod", - }, - }, - "location": "node_modules/test-root-matches-metadep-y/node_modules/test-root-matches-metadep", - "name": "test-root-matches-metadep", - "path": "{CWD}/test/fixtures/test-root-matches-metadep/node_modules/test-root-matches-metadep-y/node_modules/test-root-matches-metadep", - "resolved": "https://registry.npmjs.org/test-root-matches-metadep/-/test-root-matches-metadep-1.0.1.tgz", - "version": "1.0.1", - }, - }, - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "test-root-matches-metadep-y", - "spec": "1.0.0", - "type": "prod", - }, - EdgeIn { - "from": "node_modules/test-root-matches-metadep", - "name": "test-root-matches-metadep-y", - "spec": "1.0.0", - "type": "prod", - }, - EdgeIn { - "from": "node_modules/test-root-matches-metadep-y/node_modules/test-root-matches-metadep", - "name": "test-root-matches-metadep-y", - "spec": "1.0.0", - "type": "prod", - }, - }, - "edgesOut": Map { - "test-root-matches-metadep" => EdgeOut { - "name": "test-root-matches-metadep", - "spec": "1.0.1", - "to": "node_modules/test-root-matches-metadep-y/node_modules/test-root-matches-metadep", - "type": "prod", - }, - }, - "location": "node_modules/test-root-matches-metadep-y", - "name": "test-root-matches-metadep-y", - "path": "{CWD}/test/fixtures/test-root-matches-metadep/node_modules/test-root-matches-metadep-y", - "resolved": "https://registry.npmjs.org/test-root-matches-metadep-y/-/test-root-matches-metadep-y-1.0.0.tgz", - "version": "1.0.0", - }, - }, - "edgesOut": Map { - "test-root-matches-metadep-x" => EdgeOut { - "name": "test-root-matches-metadep-x", - "spec": "1.0.0", - "to": "node_modules/test-root-matches-metadep-x", - "type": "prod", - }, - "test-root-matches-metadep-y" => EdgeOut { - "name": "test-root-matches-metadep-y", - "spec": "1.0.0", - "to": "node_modules/test-root-matches-metadep-y", - "type": "prod", - }, - }, - "isProjectRoot": true, - "location": "", - "name": "test-root-matches-metadep", - "path": "{CWD}/test/fixtures/test-root-matches-metadep", - "version": "1.0.1", -} -` - exports[`test/arborist/build-ideal-tree.js TAP force a new mkdirp (but not semver major) > must match snapshot 1`] = ` ArboristNode { "children": Map { @@ -22876,7 +22919,6 @@ ArboristNode { "location": "node_modules/ajv", "name": "ajv", "path": "{CWD}/test/fixtures/sax/node_modules/ajv", - "peer": true, "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.2.tgz", "version": "4.11.2", }, @@ -25743,7 +25785,6 @@ ArboristNode { "location": "node_modules/eslint", "name": "eslint", "path": "{CWD}/test/fixtures/sax/node_modules/eslint", - "peer": true, "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.10.2.tgz", "version": "3.10.2", }, @@ -25832,7 +25873,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-promise", "name": "eslint-plugin-promise", "path": "{CWD}/test/fixtures/sax/node_modules/eslint-plugin-promise", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.4.1.tgz", "version": "3.4.1", }, @@ -25875,7 +25915,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-react", "name": "eslint-plugin-react", "path": "{CWD}/test/fixtures/sax/node_modules/eslint-plugin-react", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.7.1.tgz", "version": "6.7.1", }, @@ -25906,7 +25945,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-standard", "name": "eslint-plugin-standard", "path": "{CWD}/test/fixtures/sax/node_modules/eslint-plugin-standard", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-2.0.1.tgz", "version": "2.0.1", }, @@ -38532,7 +38570,6 @@ ArboristNode { "location": "node_modules/@babel/core", "name": "@babel/core", "path": "{CWD}/test/fixtures/yargs/node_modules/@babel/core", - "peer": true, "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.1.tgz", "version": "7.12.1", }, @@ -43981,7 +44018,6 @@ ArboristNode { "location": "node_modules/@typescript-eslint/parser", "name": "@typescript-eslint/parser", "path": "{CWD}/test/fixtures/yargs/node_modules/@typescript-eslint/parser", - "peer": true, "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.4.1.tgz", "version": "4.4.1", }, @@ -44498,7 +44534,6 @@ ArboristNode { "location": "node_modules/acorn", "name": "acorn", "path": "{CWD}/test/fixtures/yargs/node_modules/acorn", - "peer": true, "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "version": "7.4.1", }, @@ -48276,7 +48311,6 @@ ArboristNode { "location": "node_modules/eslint", "name": "eslint", "path": "{CWD}/test/fixtures/yargs/node_modules/eslint", - "peer": true, "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.11.0.tgz", "version": "7.11.0", }, @@ -48639,7 +48673,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-promise", "name": "eslint-plugin-promise", "path": "{CWD}/test/fixtures/yargs/node_modules/eslint-plugin-promise", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", "version": "4.2.1", }, @@ -48670,7 +48703,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-standard", "name": "eslint-plugin-standard", "path": "{CWD}/test/fixtures/yargs/node_modules/eslint-plugin-standard", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz", "version": "4.0.1", }, @@ -56204,7 +56236,6 @@ ArboristNode { "location": "node_modules/prettier", "name": "prettier", "path": "{CWD}/test/fixtures/yargs/node_modules/prettier", - "peer": true, "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", "version": "2.1.2", }, @@ -57624,7 +57655,6 @@ ArboristNode { "location": "node_modules/rollup", "name": "rollup", "path": "{CWD}/test/fixtures/yargs/node_modules/rollup", - "peer": true, "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.31.0.tgz", "version": "2.31.0", }, @@ -58905,7 +58935,6 @@ ArboristNode { "location": "node_modules/standard/node_modules/eslint", "name": "eslint", "path": "{CWD}/test/fixtures/yargs/node_modules/standard/node_modules/eslint", - "peer": true, "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", "version": "6.8.0", }, @@ -59190,7 +59219,6 @@ ArboristNode { "location": "node_modules/standard/node_modules/eslint-plugin-import", "name": "eslint-plugin-import", "path": "{CWD}/test/fixtures/yargs/node_modules/standard/node_modules/eslint-plugin-import", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", "version": "2.18.2", }, @@ -59291,7 +59319,6 @@ ArboristNode { "location": "node_modules/standard/node_modules/eslint-plugin-node", "name": "eslint-plugin-node", "path": "{CWD}/test/fixtures/yargs/node_modules/standard/node_modules/eslint-plugin-node", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz", "version": "10.0.0", }, @@ -59402,7 +59429,6 @@ ArboristNode { "location": "node_modules/standard/node_modules/eslint-plugin-react", "name": "eslint-plugin-react", "path": "{CWD}/test/fixtures/yargs/node_modules/standard/node_modules/eslint-plugin-react", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz", "version": "7.14.3", }, @@ -61585,7 +61611,6 @@ ArboristNode { "location": "node_modules/typescript", "name": "typescript", "path": "{CWD}/test/fixtures/yargs/node_modules/typescript", - "peer": true, "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz", "version": "4.0.3", }, @@ -63346,7 +63371,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-via-add-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -63498,7 +63522,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-via-add-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -63648,7 +63671,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-via-add-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -63800,7 +63822,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-via-add-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -63950,7 +63971,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-via-add-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -64102,7 +64122,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-via-add-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -64404,7 +64423,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-via-add-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -64729,7 +64747,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-via-add-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -65054,7 +65071,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-via-add-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -65379,7 +65395,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -65704,7 +65719,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -66029,7 +66043,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -66202,7 +66215,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -66354,7 +66366,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -66504,7 +66515,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -66656,7 +66666,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -66806,7 +66815,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -66958,7 +66966,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -67108,7 +67115,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -67306,7 +67312,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -67456,7 +67461,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -67654,7 +67658,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -67804,7 +67807,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -68002,7 +68004,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -68152,7 +68153,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -68327,7 +68327,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -68500,7 +68499,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -68675,7 +68673,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -68848,7 +68845,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -69023,7 +69019,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-j/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -69366,7 +69361,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-d", "name": "@isaacs/testing-peer-dep-conflict-chain-d", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-conflict-on-root-edge-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-d", - "peer": true, "realpath": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-conflict-on-root-edge-order-2", "resolved": "file:../..", "target": ArboristNode { @@ -69431,7 +69425,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-dep-indirectly-on-conflicted-peer/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -69827,7 +69820,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -69978,7 +69970,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -70175,7 +70166,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -70326,7 +70316,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -70523,7 +70512,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -70674,7 +70662,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-1/node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -70871,7 +70858,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -71022,7 +71008,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -71219,7 +71204,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -71370,7 +71354,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -71567,7 +71550,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -71718,7 +71700,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-direct-collision-forcing-metadep-duplication-order-2/node_modules/@isaacs/testing-peer-dep-conflict-chain-jj/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -71905,7 +71886,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-metadep-conflict-that-warns-because-source-is-target/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -72221,7 +72201,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-metadep-conflict-that-warns-because-source-is-target/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -74167,7 +74146,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-metadeps-with-conflicting-peers/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -74448,7 +74426,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-metadeps-with-conflicting-peers/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -74744,7 +74721,6 @@ ArboristNode { "location": "node_modules/@test/a", "name": "@test/a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-peerDep-replacement-of-top-level-dep-with-different-version-resulting-detached-top-level-dep/node_modules/@test/a", - "peer": true, "resolved": "http://localhost:4873/@test/a/-/a-1.1.0.tgz", "version": "1.1.0", }, @@ -74775,7 +74751,6 @@ ArboristNode { "location": "node_modules/@test/b", "name": "@test/b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-peerDep-replacement-of-top-level-dep-with-different-version-resulting-detached-top-level-dep/node_modules/@test/b", - "peer": true, "resolved": "http://localhost:4873/@test/b/-/b-1.1.0.tgz", "version": "1.1.0", }, @@ -74849,7 +74824,6 @@ ArboristNode { "location": "node_modules/@test/a", "name": "@test/a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-peerDep-replacement-of-top-level-dep-with-different-version-resulting-detached-top-level-dep/node_modules/@test/a", - "peer": true, "resolved": "http://localhost:4873/@test/a/-/a-1.1.0.tgz", "version": "1.1.0", }, @@ -74880,7 +74854,6 @@ ArboristNode { "location": "node_modules/@test/b", "name": "@test/b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-peerDep-replacement-of-top-level-dep-with-different-version-resulting-detached-top-level-dep/node_modules/@test/b", - "peer": true, "resolved": "http://localhost:4873/@test/b/-/b-1.1.0.tgz", "version": "1.1.0", }, @@ -74954,7 +74927,6 @@ ArboristNode { "location": "node_modules/@test/a", "name": "@test/a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-peerDep-replacement-of-top-level-dep-with-different-version-resulting-detached-top-level-dep/node_modules/@test/a", - "peer": true, "resolved": "http://localhost:4873/@test/a/-/a-1.1.0.tgz", "version": "1.1.0", }, @@ -74985,7 +74957,6 @@ ArboristNode { "location": "node_modules/@test/b", "name": "@test/b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-peerDep-replacement-of-top-level-dep-with-different-version-resulting-detached-top-level-dep/node_modules/@test/b", - "peer": true, "resolved": "http://localhost:4873/@test/b/-/b-1.1.0.tgz", "version": "1.1.0", }, @@ -75044,7 +75015,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-full-peer-set-newer/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -75076,7 +75046,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-full-peer-set-newer/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -75106,7 +75075,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-c", "name": "@isaacs/testing-peer-dep-conflict-chain-c", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-full-peer-set-newer/node_modules/@isaacs/testing-peer-dep-conflict-chain-c", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-c/-/testing-peer-dep-conflict-chain-c-2.0.0.tgz", "version": "2.0.0", }, @@ -75136,7 +75104,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-d", "name": "@isaacs/testing-peer-dep-conflict-chain-d", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-full-peer-set-newer/node_modules/@isaacs/testing-peer-dep-conflict-chain-d", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-d/-/testing-peer-dep-conflict-chain-d-2.0.0.tgz", "version": "2.0.0", }, @@ -75168,7 +75135,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-e", "name": "@isaacs/testing-peer-dep-conflict-chain-e", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-full-peer-set-newer/node_modules/@isaacs/testing-peer-dep-conflict-chain-e", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-e/-/testing-peer-dep-conflict-chain-e-2.0.0.tgz", "version": "2.0.0", }, @@ -75245,7 +75211,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-full-peer-set-older/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -75277,7 +75242,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-full-peer-set-older/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -75307,7 +75271,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-c", "name": "@isaacs/testing-peer-dep-conflict-chain-c", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-full-peer-set-older/node_modules/@isaacs/testing-peer-dep-conflict-chain-c", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-c/-/testing-peer-dep-conflict-chain-c-1.0.0.tgz", "version": "1.0.0", }, @@ -75337,7 +75300,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-d", "name": "@isaacs/testing-peer-dep-conflict-chain-d", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-full-peer-set-older/node_modules/@isaacs/testing-peer-dep-conflict-chain-d", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-d/-/testing-peer-dep-conflict-chain-d-1.0.0.tgz", "version": "1.0.0", }, @@ -75369,7 +75331,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-e", "name": "@isaacs/testing-peer-dep-conflict-chain-e", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-full-peer-set-older/node_modules/@isaacs/testing-peer-dep-conflict-chain-e", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-e/-/testing-peer-dep-conflict-chain-e-1.0.0.tgz", "version": "1.0.0", }, @@ -75470,7 +75431,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-meta-peer-set-older/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -75526,7 +75486,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-d", "name": "@isaacs/testing-peer-dep-conflict-chain-d", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-meta-peer-set-older/node_modules/@isaacs/testing-peer-dep-conflict-chain-d", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-d/-/testing-peer-dep-conflict-chain-d-1.0.0.tgz", "version": "1.0.0", }, @@ -75564,7 +75523,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-e", "name": "@isaacs/testing-peer-dep-conflict-chain-e", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-meta-peer-set-older/node_modules/@isaacs/testing-peer-dep-conflict-chain-e", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-e/-/testing-peer-dep-conflict-chain-e-2.0.0.tgz", "version": "2.0.0", }, @@ -75681,7 +75639,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-newer/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-1.0.0.tgz", "version": "1.0.0", }, @@ -75713,7 +75670,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-newer/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-2.0.0.tgz", "version": "2.0.0", }, @@ -75846,7 +75802,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-older/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -75878,7 +75833,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-more-peer-dep-conflicts-prod-dep-directly-on-conflicted-peer-older/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-1.0.0.tgz", "version": "1.0.0", }, @@ -76570,7 +76524,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -76671,7 +76624,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested/node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -76772,7 +76724,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-2.0.0.tgz", "version": "2.0.0", }, @@ -76879,7 +76830,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested/node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -76980,7 +76930,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-2.0.0.tgz", "version": "2.0.0", }, @@ -77010,7 +76959,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-b", "name": "@isaacs/peer-dep-cycle-b", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested/node_modules/@isaacs/peer-dep-cycle-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-b/-/peer-dep-cycle-b-2.0.0.tgz", "version": "2.0.0", }, @@ -77099,7 +77047,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested/node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -77248,7 +77195,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-c", "name": "@isaacs/peer-dep-cycle-c", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested/node_modules/@isaacs/peer-dep-cycle-c", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-c/-/peer-dep-cycle-c-2.0.0.tgz", "version": "2.0.0", }, @@ -77328,7 +77274,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested-with-sw/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -77429,7 +77374,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested-with-sw/node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -77530,7 +77474,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested-with-sw/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-2.0.0.tgz", "version": "2.0.0", }, @@ -77637,7 +77580,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested-with-sw/node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -77738,7 +77680,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested-with-sw/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-2.0.0.tgz", "version": "2.0.0", }, @@ -77768,7 +77709,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-b", "name": "@isaacs/peer-dep-cycle-b", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested-with-sw/node_modules/@isaacs/peer-dep-cycle-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-b/-/peer-dep-cycle-b-2.0.0.tgz", "version": "2.0.0", }, @@ -77857,7 +77797,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", "name": "@isaacs/peer-dep-cycle-a", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested-with-sw/node_modules/@isaacs/peer-dep-cycle/node_modules/@isaacs/peer-dep-cycle-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-a/-/peer-dep-cycle-a-1.0.0.tgz", "version": "1.0.0", }, @@ -78006,7 +77945,6 @@ ArboristNode { "location": "node_modules/@isaacs/peer-dep-cycle-c", "name": "@isaacs/peer-dep-cycle-c", "path": "{CWD}/test/fixtures/peer-dep-cycle-nested-with-sw/node_modules/@isaacs/peer-dep-cycle-c", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/peer-dep-cycle-c/-/peer-dep-cycle-c-2.0.0.tgz", "version": "2.0.0", }, @@ -78525,7 +78463,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/fixtures/testing-peer-dep-conflict-chain/override/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -78711,7 +78648,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/fixtures/testing-peer-dep-conflict-chain/override/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -79847,6 +79783,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/ast", "name": "@webassemblyjs/ast", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/ast", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "version": "1.9.0", }, @@ -79862,6 +79799,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/floating-point-hex-parser", "name": "@webassemblyjs/floating-point-hex-parser", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/floating-point-hex-parser", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", "version": "1.9.0", }, @@ -79883,6 +79821,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-api-error", "name": "@webassemblyjs/helper-api-error", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/helper-api-error", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", "version": "1.9.0", }, @@ -79910,6 +79849,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-buffer", "name": "@webassemblyjs/helper-buffer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/helper-buffer", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", "version": "1.9.0", }, @@ -79933,6 +79873,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-code-frame", "name": "@webassemblyjs/helper-code-frame", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/helper-code-frame", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", "version": "1.9.0", }, @@ -79948,6 +79889,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-fsm", "name": "@webassemblyjs/helper-fsm", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/helper-fsm", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", "version": "1.9.0", }, @@ -79977,6 +79919,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-module-context", "name": "@webassemblyjs/helper-module-context", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/helper-module-context", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", "version": "1.9.0", }, @@ -80016,6 +79959,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-wasm-bytecode", "name": "@webassemblyjs/helper-wasm-bytecode", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/helper-wasm-bytecode", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", "version": "1.9.0", }, @@ -80057,6 +80001,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/helper-wasm-section", "name": "@webassemblyjs/helper-wasm-section", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/helper-wasm-section", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", "version": "1.9.0", }, @@ -80086,6 +80031,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/ieee754", "name": "@webassemblyjs/ieee754", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/ieee754", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "version": "1.9.0", }, @@ -80115,6 +80061,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/leb128", "name": "@webassemblyjs/leb128", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/leb128", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "version": "1.9.0", }, @@ -80136,6 +80083,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/utf8", "name": "@webassemblyjs/utf8", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/utf8", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", "version": "1.9.0", }, @@ -80201,6 +80149,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wasm-edit", "name": "@webassemblyjs/wasm-edit", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/wasm-edit", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", "version": "1.9.0", }, @@ -80260,6 +80209,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wasm-gen", "name": "@webassemblyjs/wasm-gen", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/wasm-gen", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "version": "1.9.0", }, @@ -80301,6 +80251,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wasm-opt", "name": "@webassemblyjs/wasm-opt", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/wasm-opt", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "version": "1.9.0", }, @@ -80366,6 +80317,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wasm-parser", "name": "@webassemblyjs/wasm-parser", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/wasm-parser", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "version": "1.9.0", }, @@ -80425,6 +80377,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wast-parser", "name": "@webassemblyjs/wast-parser", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/wast-parser", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", "version": "1.9.0", }, @@ -80466,6 +80419,7 @@ ArboristNode { "location": "node_modules/@webassemblyjs/wast-printer", "name": "@webassemblyjs/wast-printer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@webassemblyjs/wast-printer", + "peer": true, "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", "version": "1.9.0", }, @@ -80481,6 +80435,7 @@ ArboristNode { "location": "node_modules/@xtuc/ieee754", "name": "@xtuc/ieee754", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@xtuc/ieee754", + "peer": true, "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "version": "1.2.0", }, @@ -80508,6 +80463,7 @@ ArboristNode { "location": "node_modules/@xtuc/long", "name": "@xtuc/long", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/@xtuc/long", + "peer": true, "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "version": "4.2.2", }, @@ -80564,6 +80520,7 @@ ArboristNode { "location": "node_modules/acorn", "name": "acorn", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/acorn", + "peer": true, "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", "version": "6.4.2", }, @@ -80641,7 +80598,6 @@ ArboristNode { "location": "node_modules/ajv", "name": "ajv", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/ajv", - "peer": true, "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "version": "6.12.6", }, @@ -80879,6 +80835,7 @@ ArboristNode { "location": "node_modules/aproba", "name": "aproba", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/aproba", + "peer": true, "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "version": "1.2.0", }, @@ -81039,6 +80996,7 @@ ArboristNode { "location": "node_modules/asn1.js/node_modules/bn.js", "name": "bn.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/asn1.js/node_modules/bn.js", + "peer": true, "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", "version": "4.11.9", }, @@ -81080,6 +81038,7 @@ ArboristNode { "location": "node_modules/asn1.js", "name": "asn1.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/asn1.js", + "peer": true, "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", "version": "5.4.1", }, @@ -81097,6 +81056,7 @@ ArboristNode { "location": "node_modules/assert/node_modules/inherits", "name": "inherits", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/assert/node_modules/inherits", + "peer": true, "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "version": "2.0.1", }, @@ -81120,6 +81080,7 @@ ArboristNode { "location": "node_modules/assert/node_modules/util", "name": "util", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/assert/node_modules/util", + "peer": true, "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "version": "0.10.3", }, @@ -81149,6 +81110,7 @@ ArboristNode { "location": "node_modules/assert", "name": "assert", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/assert", + "peer": true, "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "version": "1.5.0", }, @@ -81370,6 +81332,7 @@ ArboristNode { "location": "node_modules/base64-js", "name": "base64-js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/base64-js", + "peer": true, "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "version": "1.5.1", }, @@ -81400,6 +81363,7 @@ ArboristNode { "location": "node_modules/big.js", "name": "big.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/big.js", + "peer": true, "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "version": "5.2.2", }, @@ -81454,6 +81418,7 @@ ArboristNode { "location": "node_modules/bluebird", "name": "bluebird", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/bluebird", + "peer": true, "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "version": "3.7.2", }, @@ -81469,6 +81434,7 @@ ArboristNode { "location": "node_modules/bn.js", "name": "bn.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/bn.js", + "peer": true, "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", "version": "5.1.3", }, @@ -81787,6 +81753,7 @@ ArboristNode { "location": "node_modules/brorand", "name": "brorand", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/brorand", + "peer": true, "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "version": "1.1.0", }, @@ -81846,6 +81813,7 @@ ArboristNode { "location": "node_modules/browserify-aes", "name": "browserify-aes", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/browserify-aes", + "peer": true, "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "version": "1.2.0", }, @@ -81881,6 +81849,7 @@ ArboristNode { "location": "node_modules/browserify-cipher", "name": "browserify-cipher", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/browserify-cipher", + "peer": true, "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "version": "1.0.1", }, @@ -81922,6 +81891,7 @@ ArboristNode { "location": "node_modules/browserify-des", "name": "browserify-des", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/browserify-des", + "peer": true, "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "version": "1.0.2", }, @@ -81939,6 +81909,7 @@ ArboristNode { "location": "node_modules/browserify-rsa/node_modules/bn.js", "name": "bn.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/browserify-rsa/node_modules/bn.js", + "peer": true, "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", "version": "4.11.9", }, @@ -81974,6 +81945,7 @@ ArboristNode { "location": "node_modules/browserify-rsa", "name": "browserify-rsa", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/browserify-rsa", + "peer": true, "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "version": "4.0.1", }, @@ -82011,6 +81983,7 @@ ArboristNode { "location": "node_modules/browserify-sign/node_modules/readable-stream", "name": "readable-stream", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/browserify-sign/node_modules/readable-stream", + "peer": true, "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "version": "3.6.0", }, @@ -82026,6 +81999,7 @@ ArboristNode { "location": "node_modules/browserify-sign/node_modules/safe-buffer", "name": "safe-buffer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/browserify-sign/node_modules/safe-buffer", + "peer": true, "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "version": "5.2.1", }, @@ -82097,6 +82071,7 @@ ArboristNode { "location": "node_modules/browserify-sign", "name": "browserify-sign", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/browserify-sign", + "peer": true, "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", "version": "4.2.1", }, @@ -82120,6 +82095,7 @@ ArboristNode { "location": "node_modules/browserify-zlib", "name": "browserify-zlib", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/browserify-zlib", + "peer": true, "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "version": "0.2.0", }, @@ -82155,6 +82131,7 @@ ArboristNode { "location": "node_modules/buffer", "name": "buffer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/buffer", + "peer": true, "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "version": "4.9.2", }, @@ -82176,6 +82153,7 @@ ArboristNode { "location": "node_modules/buffer-from", "name": "buffer-from", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/buffer-from", + "peer": true, "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "version": "1.1.1", }, @@ -82206,6 +82184,7 @@ ArboristNode { "location": "node_modules/buffer-xor", "name": "buffer-xor", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/buffer-xor", + "peer": true, "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "version": "1.0.3", }, @@ -82221,6 +82200,7 @@ ArboristNode { "location": "node_modules/builtin-status-codes", "name": "builtin-status-codes", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/builtin-status-codes", + "peer": true, "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "version": "3.0.0", }, @@ -82343,6 +82323,7 @@ ArboristNode { "location": "node_modules/cacache", "name": "cacache", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/cacache", + "peer": true, "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "version": "12.0.4", }, @@ -82539,6 +82520,7 @@ ArboristNode { "location": "node_modules/chownr", "name": "chownr", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/chownr", + "peer": true, "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "version": "1.1.4", }, @@ -82562,6 +82544,7 @@ ArboristNode { "location": "node_modules/chrome-trace-event", "name": "chrome-trace-event", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/chrome-trace-event", + "peer": true, "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", "version": "1.0.2", }, @@ -82609,6 +82592,7 @@ ArboristNode { "location": "node_modules/cipher-base", "name": "cipher-base", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/cipher-base", + "peer": true, "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "version": "1.0.4", }, @@ -82930,6 +82914,7 @@ ArboristNode { "location": "node_modules/commander", "name": "commander", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/commander", + "peer": true, "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "version": "2.20.3", }, @@ -82945,6 +82930,7 @@ ArboristNode { "location": "node_modules/commondir", "name": "commondir", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/commondir", + "peer": true, "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "version": "1.0.1", }, @@ -83144,6 +83130,7 @@ ArboristNode { "location": "node_modules/concat-stream", "name": "concat-stream", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/concat-stream", + "peer": true, "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "version": "1.6.2", }, @@ -83174,6 +83161,7 @@ ArboristNode { "location": "node_modules/console-browserify", "name": "console-browserify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/console-browserify", + "peer": true, "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "version": "1.2.0", }, @@ -83189,6 +83177,7 @@ ArboristNode { "location": "node_modules/constants-browserify", "name": "constants-browserify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/constants-browserify", + "peer": true, "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "version": "1.0.0", }, @@ -83316,6 +83305,7 @@ ArboristNode { "location": "node_modules/copy-concurrently", "name": "copy-concurrently", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/copy-concurrently", + "peer": true, "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "version": "1.0.5", }, @@ -83363,6 +83353,7 @@ ArboristNode { "location": "node_modules/create-ecdh/node_modules/bn.js", "name": "bn.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/create-ecdh/node_modules/bn.js", + "peer": true, "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", "version": "4.11.9", }, @@ -83392,6 +83383,7 @@ ArboristNode { "location": "node_modules/create-ecdh", "name": "create-ecdh", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/create-ecdh", + "peer": true, "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "version": "4.0.4", }, @@ -83469,6 +83461,7 @@ ArboristNode { "location": "node_modules/create-hash", "name": "create-hash", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/create-hash", + "peer": true, "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "version": "1.2.0", }, @@ -83534,6 +83527,7 @@ ArboristNode { "location": "node_modules/create-hmac", "name": "create-hmac", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/create-hmac", + "peer": true, "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "version": "1.1.7", }, @@ -83681,6 +83675,7 @@ ArboristNode { "location": "node_modules/crypto-browserify", "name": "crypto-browserify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/crypto-browserify", + "peer": true, "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "version": "3.12.0", }, @@ -83696,6 +83691,7 @@ ArboristNode { "location": "node_modules/cyclist", "name": "cyclist", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/cyclist", + "peer": true, "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", "version": "1.0.1", }, @@ -84058,6 +84054,7 @@ ArboristNode { "location": "node_modules/des.js", "name": "des.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/des.js", + "peer": true, "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "version": "1.0.1", }, @@ -84105,6 +84102,7 @@ ArboristNode { "location": "node_modules/diffie-hellman/node_modules/bn.js", "name": "bn.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/diffie-hellman/node_modules/bn.js", + "peer": true, "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", "version": "4.11.9", }, @@ -84140,6 +84138,7 @@ ArboristNode { "location": "node_modules/diffie-hellman", "name": "diffie-hellman", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/diffie-hellman", + "peer": true, "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "version": "5.0.3", }, @@ -84222,6 +84221,7 @@ ArboristNode { "location": "node_modules/domain-browser", "name": "domain-browser", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/domain-browser", + "peer": true, "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "version": "1.2.0", }, @@ -84269,6 +84269,7 @@ ArboristNode { "location": "node_modules/duplexify", "name": "duplexify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/duplexify", + "peer": true, "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "version": "3.7.1", }, @@ -84301,6 +84302,7 @@ ArboristNode { "location": "node_modules/elliptic/node_modules/bn.js", "name": "bn.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/elliptic/node_modules/bn.js", + "peer": true, "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", "version": "4.11.9", }, @@ -84366,6 +84368,7 @@ ArboristNode { "location": "node_modules/elliptic", "name": "elliptic", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/elliptic", + "peer": true, "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", "version": "6.5.3", }, @@ -84396,6 +84399,7 @@ ArboristNode { "location": "node_modules/emojis-list", "name": "emojis-list", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/emojis-list", + "peer": true, "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "version": "3.0.0", }, @@ -84507,6 +84511,7 @@ ArboristNode { "location": "node_modules/enhanced-resolve/node_modules/memory-fs", "name": "memory-fs", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/enhanced-resolve/node_modules/memory-fs", + "peer": true, "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "version": "0.5.0", }, @@ -84542,6 +84547,7 @@ ArboristNode { "location": "node_modules/enhanced-resolve", "name": "enhanced-resolve", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/enhanced-resolve", + "peer": true, "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", "version": "4.3.0", }, @@ -84816,6 +84822,7 @@ ArboristNode { "location": "node_modules/eslint-scope", "name": "eslint-scope", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/eslint-scope", + "peer": true, "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "version": "4.0.3", }, @@ -84833,6 +84840,7 @@ ArboristNode { "location": "node_modules/esrecurse/node_modules/estraverse", "name": "estraverse", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/esrecurse/node_modules/estraverse", + "peer": true, "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "version": "5.2.0", }, @@ -84856,6 +84864,7 @@ ArboristNode { "location": "node_modules/esrecurse", "name": "esrecurse", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/esrecurse", + "peer": true, "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "version": "4.3.0", }, @@ -84871,6 +84880,7 @@ ArboristNode { "location": "node_modules/estraverse", "name": "estraverse", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/estraverse", + "peer": true, "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "version": "4.3.0", }, @@ -84922,6 +84932,7 @@ ArboristNode { "location": "node_modules/events", "name": "events", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/events", + "peer": true, "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", "version": "3.2.0", }, @@ -84986,6 +84997,7 @@ ArboristNode { "location": "node_modules/evp_bytestokey", "name": "evp_bytestokey", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/evp_bytestokey", + "peer": true, "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "version": "1.0.3", }, @@ -85734,6 +85746,7 @@ ArboristNode { "location": "node_modules/figgy-pudding", "name": "figgy-pudding", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/figgy-pudding", + "peer": true, "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", "version": "3.5.2", }, @@ -85925,6 +85938,7 @@ ArboristNode { "location": "node_modules/find-cache-dir", "name": "find-cache-dir", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/find-cache-dir", + "peer": true, "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "version": "2.1.0", }, @@ -85983,6 +85997,7 @@ ArboristNode { "location": "node_modules/flush-write-stream", "name": "flush-write-stream", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/flush-write-stream", + "peer": true, "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "version": "1.1.1", }, @@ -86113,6 +86128,7 @@ ArboristNode { "location": "node_modules/from2", "name": "from2", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/from2", + "peer": true, "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "version": "2.3.0", }, @@ -86160,6 +86176,7 @@ ArboristNode { "location": "node_modules/fs-write-stream-atomic", "name": "fs-write-stream-atomic", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/fs-write-stream-atomic", + "peer": true, "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "version": "1.0.10", }, @@ -86785,6 +86802,7 @@ ArboristNode { "location": "node_modules/hash-base/node_modules/readable-stream", "name": "readable-stream", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/hash-base/node_modules/readable-stream", + "peer": true, "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "version": "3.6.0", }, @@ -86800,6 +86818,7 @@ ArboristNode { "location": "node_modules/hash-base/node_modules/safe-buffer", "name": "safe-buffer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/hash-base/node_modules/safe-buffer", + "peer": true, "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "version": "5.2.1", }, @@ -86841,6 +86860,7 @@ ArboristNode { "location": "node_modules/hash-base", "name": "hash-base", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/hash-base", + "peer": true, "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "version": "3.1.0", }, @@ -86876,6 +86896,7 @@ ArboristNode { "location": "node_modules/hash.js", "name": "hash.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/hash.js", + "peer": true, "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "version": "1.1.7", }, @@ -86911,6 +86932,7 @@ ArboristNode { "location": "node_modules/hmac-drbg", "name": "hmac-drbg", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/hmac-drbg", + "peer": true, "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "version": "1.0.1", }, @@ -87155,6 +87177,7 @@ ArboristNode { "location": "node_modules/https-browserify", "name": "https-browserify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/https-browserify", + "peer": true, "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "version": "1.0.0", }, @@ -87199,6 +87222,7 @@ ArboristNode { "location": "node_modules/ieee754", "name": "ieee754", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/ieee754", + "peer": true, "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "version": "1.2.1", }, @@ -87220,6 +87244,7 @@ ArboristNode { "location": "node_modules/iferr", "name": "iferr", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/iferr", + "peer": true, "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", "version": "0.1.5", }, @@ -87270,6 +87295,7 @@ ArboristNode { "location": "node_modules/imurmurhash", "name": "imurmurhash", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/imurmurhash", + "peer": true, "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "version": "0.1.4", }, @@ -87285,6 +87311,7 @@ ArboristNode { "location": "node_modules/infer-owner", "name": "infer-owner", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/infer-owner", + "peer": true, "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "version": "1.0.4", }, @@ -88406,6 +88433,7 @@ ArboristNode { "location": "node_modules/json-parse-better-errors", "name": "json-parse-better-errors", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/json-parse-better-errors", + "peer": true, "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "version": "1.0.2", }, @@ -88459,6 +88487,7 @@ ArboristNode { "location": "node_modules/json5", "name": "json5", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/json5", + "peer": true, "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "version": "1.0.1", }, @@ -88590,6 +88619,7 @@ ArboristNode { "location": "node_modules/loader-runner", "name": "loader-runner", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/loader-runner", + "peer": true, "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "version": "2.4.0", }, @@ -88625,6 +88655,7 @@ ArboristNode { "location": "node_modules/loader-utils", "name": "loader-utils", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/loader-utils", + "peer": true, "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "version": "1.4.0", }, @@ -88713,6 +88744,7 @@ ArboristNode { "location": "node_modules/lru-cache", "name": "lru-cache", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/lru-cache", + "peer": true, "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "version": "5.1.1", }, @@ -88730,6 +88762,7 @@ ArboristNode { "location": "node_modules/make-dir/node_modules/semver", "name": "semver", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/make-dir/node_modules/semver", + "peer": true, "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "version": "5.7.1", }, @@ -88759,6 +88792,7 @@ ArboristNode { "location": "node_modules/make-dir", "name": "make-dir", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/make-dir", + "peer": true, "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "version": "2.1.0", }, @@ -88844,6 +88878,7 @@ ArboristNode { "location": "node_modules/md5.js", "name": "md5.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/md5.js", + "peer": true, "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "version": "1.3.5", }, @@ -89123,6 +89158,7 @@ ArboristNode { "location": "node_modules/miller-rabin/node_modules/bn.js", "name": "bn.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/miller-rabin/node_modules/bn.js", + "peer": true, "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", "version": "4.11.9", }, @@ -89152,6 +89188,7 @@ ArboristNode { "location": "node_modules/miller-rabin", "name": "miller-rabin", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/miller-rabin", + "peer": true, "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "version": "4.0.1", }, @@ -89289,6 +89326,7 @@ ArboristNode { "location": "node_modules/minimalistic-crypto-utils", "name": "minimalistic-crypto-utils", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/minimalistic-crypto-utils", + "peer": true, "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "version": "1.0.1", }, @@ -89410,6 +89448,7 @@ ArboristNode { "location": "node_modules/mississippi", "name": "mississippi", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/mississippi", + "peer": true, "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", "version": "3.0.0", }, @@ -89570,6 +89609,7 @@ ArboristNode { "location": "node_modules/move-concurrently", "name": "move-concurrently", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/move-concurrently", + "peer": true, "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "version": "1.0.1", }, @@ -89868,6 +89908,7 @@ ArboristNode { "location": "node_modules/neo-async", "name": "neo-async", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/neo-async", + "peer": true, "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "version": "2.6.2", }, @@ -89915,6 +89956,7 @@ ArboristNode { "location": "node_modules/node-libs-browser/node_modules/punycode", "name": "punycode", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/node-libs-browser/node_modules/punycode", + "peer": true, "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "version": "1.4.1", }, @@ -90070,6 +90112,7 @@ ArboristNode { "location": "node_modules/node-libs-browser", "name": "node-libs-browser", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/node-libs-browser", + "peer": true, "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "version": "2.2.1", }, @@ -90714,6 +90757,7 @@ ArboristNode { "location": "node_modules/os-browserify", "name": "os-browserify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/os-browserify", + "peer": true, "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "version": "0.3.0", }, @@ -90843,6 +90887,7 @@ ArboristNode { "location": "node_modules/pako", "name": "pako", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/pako", + "peer": true, "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "version": "1.0.11", }, @@ -90878,6 +90923,7 @@ ArboristNode { "location": "node_modules/parallel-transform", "name": "parallel-transform", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/parallel-transform", + "peer": true, "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", "version": "1.2.0", }, @@ -90931,6 +90977,7 @@ ArboristNode { "location": "node_modules/parse-asn1", "name": "parse-asn1", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/parse-asn1", + "peer": true, "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", "version": "5.1.6", }, @@ -90994,6 +91041,7 @@ ArboristNode { "location": "node_modules/path-browserify", "name": "path-browserify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/path-browserify", + "peer": true, "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", "version": "0.0.1", }, @@ -91149,6 +91197,7 @@ ArboristNode { "location": "node_modules/pbkdf2", "name": "pbkdf2", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/pbkdf2", + "peer": true, "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", "version": "3.1.1", }, @@ -91171,6 +91220,7 @@ ArboristNode { "name": "picomatch", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/picomatch", + "peer": true, "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "version": "2.2.2", }, @@ -91349,6 +91399,7 @@ ArboristNode { "location": "node_modules/process", "name": "process", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/process", + "peer": true, "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "version": "0.11.10", }, @@ -91379,6 +91430,7 @@ ArboristNode { "location": "node_modules/promise-inflight", "name": "promise-inflight", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/promise-inflight", + "peer": true, "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "version": "1.0.1", }, @@ -91440,6 +91492,7 @@ ArboristNode { "location": "node_modules/public-encrypt/node_modules/bn.js", "name": "bn.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/public-encrypt/node_modules/bn.js", + "peer": true, "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", "version": "4.11.9", }, @@ -91493,6 +91546,7 @@ ArboristNode { "location": "node_modules/public-encrypt", "name": "public-encrypt", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/public-encrypt", + "peer": true, "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "version": "4.0.3", }, @@ -91559,6 +91613,7 @@ ArboristNode { "location": "node_modules/pumpify/node_modules/pump", "name": "pump", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/pumpify/node_modules/pump", + "peer": true, "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "version": "2.0.1", }, @@ -91594,6 +91649,7 @@ ArboristNode { "location": "node_modules/pumpify", "name": "pumpify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/pumpify", + "peer": true, "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "version": "1.5.1", }, @@ -91666,6 +91722,7 @@ ArboristNode { "location": "node_modules/querystring-es3", "name": "querystring-es3", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/querystring-es3", + "peer": true, "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "version": "0.2.1", }, @@ -91734,6 +91791,7 @@ ArboristNode { "location": "node_modules/randombytes", "name": "randombytes", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/randombytes", + "peer": true, "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "version": "2.1.0", }, @@ -91763,6 +91821,7 @@ ArboristNode { "location": "node_modules/randomfill", "name": "randomfill", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/randomfill", + "peer": true, "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "version": "1.0.4", }, @@ -92524,6 +92583,7 @@ ArboristNode { "location": "node_modules/ripemd160", "name": "ripemd160", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/ripemd160", + "peer": true, "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "version": "2.0.2", }, @@ -92553,6 +92613,7 @@ ArboristNode { "location": "node_modules/run-queue", "name": "run-queue", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/run-queue", + "peer": true, "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "version": "1.0.3", }, @@ -92989,6 +93050,7 @@ ArboristNode { "location": "node_modules/serialize-javascript", "name": "serialize-javascript", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/serialize-javascript", + "peer": true, "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "version": "4.0.0", }, @@ -93277,6 +93339,7 @@ ArboristNode { "location": "node_modules/setimmediate", "name": "setimmediate", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/setimmediate", + "peer": true, "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "version": "1.0.5", }, @@ -93339,6 +93402,7 @@ ArboristNode { "location": "node_modules/sha.js", "name": "sha.js", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/sha.js", + "peer": true, "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "version": "2.4.11", }, @@ -93882,7 +93946,6 @@ ArboristNode { "location": "node_modules/sockjs-client", "name": "sockjs-client", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/sockjs-client", - "peer": true, "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", "version": "1.4.0", }, @@ -93898,6 +93961,7 @@ ArboristNode { "location": "node_modules/source-list-map", "name": "source-list-map", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/source-list-map", + "peer": true, "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "version": "2.0.1", }, @@ -93977,6 +94041,7 @@ ArboristNode { "location": "node_modules/source-map-support/node_modules/source-map", "name": "source-map", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/source-map-support/node_modules/source-map", + "peer": true, "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "version": "0.6.1", }, @@ -94006,6 +94071,7 @@ ArboristNode { "location": "node_modules/source-map-support", "name": "source-map-support", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/source-map-support", + "peer": true, "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "version": "0.5.19", }, @@ -94264,6 +94330,7 @@ ArboristNode { "location": "node_modules/ssri", "name": "ssri", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/ssri", + "peer": true, "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", "version": "6.0.1", }, @@ -94499,6 +94566,7 @@ ArboristNode { "location": "node_modules/stream-browserify", "name": "stream-browserify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/stream-browserify", + "peer": true, "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "version": "2.0.2", }, @@ -94528,6 +94596,7 @@ ArboristNode { "location": "node_modules/stream-each", "name": "stream-each", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/stream-each", + "peer": true, "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "version": "1.2.3", }, @@ -94575,6 +94644,7 @@ ArboristNode { "location": "node_modules/stream-http", "name": "stream-http", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/stream-http", + "peer": true, "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "version": "2.8.3", }, @@ -94596,6 +94666,7 @@ ArboristNode { "location": "node_modules/stream-shift", "name": "stream-shift", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/stream-shift", + "peer": true, "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "version": "1.0.1", }, @@ -95053,6 +95124,7 @@ ArboristNode { "location": "node_modules/tapable", "name": "tapable", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/tapable", + "peer": true, "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "version": "1.1.3", }, @@ -95070,6 +95142,7 @@ ArboristNode { "location": "node_modules/terser/node_modules/source-map", "name": "source-map", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/terser/node_modules/source-map", + "peer": true, "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "version": "0.6.1", }, @@ -95105,6 +95178,7 @@ ArboristNode { "location": "node_modules/terser", "name": "terser", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/terser", + "peer": true, "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", "version": "4.8.0", }, @@ -95142,6 +95216,7 @@ ArboristNode { "location": "node_modules/terser-webpack-plugin/node_modules/schema-utils", "name": "schema-utils", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/terser-webpack-plugin/node_modules/schema-utils", + "peer": true, "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "version": "1.0.0", }, @@ -95157,6 +95232,7 @@ ArboristNode { "location": "node_modules/terser-webpack-plugin/node_modules/source-map", "name": "source-map", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/terser-webpack-plugin/node_modules/source-map", + "peer": true, "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "version": "0.6.1", }, @@ -95234,6 +95310,7 @@ ArboristNode { "location": "node_modules/terser-webpack-plugin", "name": "terser-webpack-plugin", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/terser-webpack-plugin", + "peer": true, "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", "version": "1.4.5", }, @@ -95263,6 +95340,7 @@ ArboristNode { "location": "node_modules/through2", "name": "through2", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/through2", + "peer": true, "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "version": "2.0.5", }, @@ -95301,6 +95379,7 @@ ArboristNode { "location": "node_modules/timers-browserify", "name": "timers-browserify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/timers-browserify", + "peer": true, "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", "version": "2.0.12", }, @@ -95316,6 +95395,7 @@ ArboristNode { "location": "node_modules/to-arraybuffer", "name": "to-arraybuffer", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/to-arraybuffer", + "peer": true, "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "version": "1.0.1", }, @@ -95517,6 +95597,7 @@ ArboristNode { "location": "node_modules/tslib", "name": "tslib", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/tslib", + "peer": true, "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "version": "1.14.1", }, @@ -95532,6 +95613,7 @@ ArboristNode { "location": "node_modules/tty-browserify", "name": "tty-browserify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/tty-browserify", + "peer": true, "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "version": "0.0.0", }, @@ -95582,6 +95664,7 @@ ArboristNode { "location": "node_modules/typedarray", "name": "typedarray", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/typedarray", + "peer": true, "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "version": "0.0.6", }, @@ -95646,6 +95729,7 @@ ArboristNode { "location": "node_modules/unique-filename", "name": "unique-filename", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/unique-filename", + "peer": true, "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "version": "1.1.1", }, @@ -95669,6 +95753,7 @@ ArboristNode { "location": "node_modules/unique-slug", "name": "unique-slug", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/unique-slug", + "peer": true, "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "version": "2.0.2", }, @@ -95968,6 +96053,7 @@ ArboristNode { "location": "node_modules/util/node_modules/inherits", "name": "inherits", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/util/node_modules/inherits", + "peer": true, "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "version": "2.0.3", }, @@ -95991,6 +96077,7 @@ ArboristNode { "location": "node_modules/util", "name": "util", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/util", + "peer": true, "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "version": "0.11.1", }, @@ -96096,6 +96183,7 @@ ArboristNode { "location": "node_modules/vm-browserify", "name": "vm-browserify", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/vm-browserify", + "peer": true, "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "version": "1.1.2", }, @@ -96128,6 +96216,7 @@ ArboristNode { "name": "anymatch", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/anymatch", + "peer": true, "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "version": "3.1.1", }, @@ -96144,6 +96233,7 @@ ArboristNode { "name": "binary-extensions", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/binary-extensions", + "peer": true, "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "version": "2.1.0", }, @@ -96168,6 +96258,7 @@ ArboristNode { "name": "braces", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/braces", + "peer": true, "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "version": "3.0.2", }, @@ -96234,6 +96325,7 @@ ArboristNode { "name": "chokidar", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/chokidar", + "peer": true, "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", "version": "3.4.3", }, @@ -96258,6 +96350,7 @@ ArboristNode { "name": "fill-range", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/fill-range", + "peer": true, "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "version": "7.0.1", }, @@ -96274,6 +96367,7 @@ ArboristNode { "name": "fsevents", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/fsevents", + "peer": true, "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "version": "2.1.3", }, @@ -96298,6 +96392,7 @@ ArboristNode { "name": "glob-parent", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/glob-parent", + "peer": true, "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "version": "5.1.1", }, @@ -96322,6 +96417,7 @@ ArboristNode { "name": "is-binary-path", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/is-binary-path", + "peer": true, "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "version": "2.1.0", }, @@ -96338,6 +96434,7 @@ ArboristNode { "name": "is-number", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/is-number", + "peer": true, "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "version": "7.0.0", }, @@ -96362,6 +96459,7 @@ ArboristNode { "name": "readdirp", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/readdirp", + "peer": true, "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", "version": "3.5.0", }, @@ -96386,6 +96484,7 @@ ArboristNode { "name": "to-regex-range", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack/node_modules/to-regex-range", + "peer": true, "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "version": "5.0.1", }, @@ -96427,6 +96526,7 @@ ArboristNode { "location": "node_modules/watchpack", "name": "watchpack", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack", + "peer": true, "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", "version": "1.7.4", }, @@ -96451,6 +96551,7 @@ ArboristNode { "name": "watchpack-chokidar2", "optional": true, "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/watchpack-chokidar2", + "peer": true, "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", "version": "2.0.1", }, @@ -96517,6 +96618,7 @@ ArboristNode { "location": "node_modules/webpack/node_modules/schema-utils", "name": "schema-utils", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/webpack/node_modules/schema-utils", + "peer": true, "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "version": "1.0.0", }, @@ -97048,7 +97150,6 @@ ArboristNode { "location": "node_modules/webpack-dev-server", "name": "webpack-dev-server", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/webpack-dev-server", - "peer": true, "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", "version": "3.11.0", }, @@ -97101,6 +97202,7 @@ ArboristNode { "location": "node_modules/webpack-sources/node_modules/source-map", "name": "source-map", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/webpack-sources/node_modules/source-map", + "peer": true, "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "version": "0.6.1", }, @@ -97136,6 +97238,7 @@ ArboristNode { "location": "node_modules/webpack-sources", "name": "webpack-sources", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/webpack-sources", + "peer": true, "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "version": "1.4.3", }, @@ -97247,6 +97350,7 @@ ArboristNode { "location": "node_modules/worker-farm", "name": "worker-farm", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/worker-farm", + "peer": true, "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "version": "1.7.0", }, @@ -97387,6 +97491,7 @@ ArboristNode { "location": "node_modules/xtend", "name": "xtend", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/xtend", + "peer": true, "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "version": "4.0.2", }, @@ -97423,6 +97528,7 @@ ArboristNode { "location": "node_modules/yallist", "name": "yallist", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-peer-dep-that-needs-to-be-replaced/node_modules/yallist", + "peer": true, "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "version": "3.1.1", }, @@ -97566,6 +97672,7 @@ ArboristNode { "type": "peerOptional", }, }, + "extraneous": true, "location": "node_modules/abbrev", "name": "abbrev", "optional": true, @@ -97948,7 +98055,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-override/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", "name": "@isaacs/testing-peer-dep-conflict-chain-a", "path": "{CWD}/test/fixtures/testing-peer-dep-conflict-chain/override-dep/node_modules/@isaacs/testing-peer-dep-conflict-chain-override/node_modules/@isaacs/testing-peer-dep-conflict-chain-a", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-a/-/testing-peer-dep-conflict-chain-a-2.0.0.tgz", "version": "2.0.0", }, @@ -98491,7 +98597,6 @@ ArboristNode { "location": "node_modules/@babel/core", "name": "@babel/core", "path": "{CWD}/test/fixtures/tap-react15-collision/node_modules/@babel/core", - "peer": true, "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.1.tgz", "version": "7.12.1", }, @@ -107199,7 +107304,6 @@ ArboristNode { "location": "node_modules/tap/node_modules/react", "name": "react", "path": "{CWD}/test/fixtures/tap-react15-collision/node_modules/tap/node_modules/react", - "peer": true, "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", "version": "16.14.0", }, @@ -108198,7 +108302,6 @@ ArboristNode { "location": "node_modules/typescript", "name": "typescript", "path": "{CWD}/test/fixtures/tap-react15-collision/node_modules/typescript", - "peer": true, "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", "version": "3.9.7", }, @@ -109428,7 +109531,6 @@ ArboristNode { "location": "node_modules/@babel/core", "name": "@babel/core", "path": "{CWD}/test/fixtures/tap-react15-collision-legacy-sw/node_modules/@babel/core", - "peer": true, "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", "version": "7.7.7", }, @@ -116611,7 +116713,6 @@ ArboristNode { "location": "node_modules/react", "name": "react", "path": "{CWD}/test/fixtures/tap-react15-collision-legacy-sw/node_modules/react", - "peer": true, "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", "version": "15.6.2", }, @@ -119361,7 +119462,6 @@ ArboristNode { "location": "node_modules/typescript", "name": "typescript", "path": "{CWD}/test/fixtures/tap-react15-collision-legacy-sw/node_modules/typescript", - "peer": true, "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", "version": "3.7.4", }, @@ -120707,7 +120807,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-deps-b", "name": "@isaacs/testing-peer-deps-b", "path": "{CWD}/test/fixtures/testing-peer-deps-nested/node_modules/@isaacs/testing-peer-deps-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-deps-b/-/testing-peer-deps-b-2.0.1.tgz", "version": "2.0.1", }, @@ -121186,6 +121285,7 @@ ArboristNode { "location": "node_modules/@angular/common/node_modules/tslib", "name": "tslib", "path": "{CWD}/test/fixtures/testing-peer-deps-overlap/node_modules/@angular/common/node_modules/tslib", + "peer": true, "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", "version": "2.0.3", }, @@ -121251,6 +121351,7 @@ ArboristNode { "location": "node_modules/@angular/core/node_modules/tslib", "name": "tslib", "path": "{CWD}/test/fixtures/testing-peer-deps-overlap/node_modules/@angular/core/node_modules/tslib", + "peer": true, "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", "version": "2.0.3", }, @@ -121375,7 +121476,6 @@ ArboristNode { "location": "node_modules/@angular/forms", "name": "@angular/forms", "path": "{CWD}/test/fixtures/testing-peer-deps-overlap/node_modules/@angular/forms", - "peer": true, "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.2.5.tgz", "version": "10.2.5", }, @@ -121393,6 +121493,7 @@ ArboristNode { "location": "node_modules/@angular/platform-browser/node_modules/tslib", "name": "tslib", "path": "{CWD}/test/fixtures/testing-peer-deps-overlap/node_modules/@angular/platform-browser/node_modules/tslib", + "peer": true, "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", "version": "2.0.3", }, @@ -121434,6 +121535,7 @@ ArboristNode { "location": "node_modules/@angular/platform-browser", "name": "@angular/platform-browser", "path": "{CWD}/test/fixtures/testing-peer-deps-overlap/node_modules/@angular/platform-browser", + "peer": true, "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.2.5.tgz", "version": "10.2.5", }, @@ -121490,7 +121592,6 @@ ArboristNode { "location": "node_modules/rxjs", "name": "rxjs", "path": "{CWD}/test/fixtures/testing-peer-deps-overlap/node_modules/rxjs", - "peer": true, "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", "version": "6.6.3", }, @@ -121653,7 +121754,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-transitive-conflicted-peer-b", "name": "@isaacs/testing-transitive-conflicted-peer-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-transitive-conflicted-peer-dependency/node_modules/@isaacs/testing-transitive-conflicted-peer-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-transitive-conflicted-peer-b/-/testing-transitive-conflicted-peer-b-2.0.0.tgz", "version": "2.0.0", }, @@ -121764,7 +121864,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-transitive-conflicted-peer-b", "name": "@isaacs/testing-transitive-conflicted-peer-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-transitive-conflicted-peer-dependency/node_modules/@isaacs/testing-transitive-conflicted-peer-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-transitive-conflicted-peer-b/-/testing-transitive-conflicted-peer-b-2.0.0.tgz", "version": "2.0.0", }, @@ -122915,7 +123014,6 @@ ArboristNode { "location": "node_modules/@babel/core", "name": "@babel/core", "path": "{CWD}/test/fixtures/tap-and-flow/node_modules/@babel/core", - "peer": true, "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.1.tgz", "version": "7.12.1", }, @@ -129715,7 +129813,6 @@ ArboristNode { "location": "node_modules/react", "name": "react", "path": "{CWD}/test/fixtures/tap-and-flow/node_modules/react", - "peer": true, "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", "version": "16.14.0", }, @@ -131779,7 +131876,6 @@ ArboristNode { "location": "node_modules/typescript", "name": "typescript", "path": "{CWD}/test/fixtures/tap-and-flow/node_modules/typescript", - "peer": true, "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", "version": "3.9.7", }, @@ -138766,7 +138862,6 @@ ArboristNode { "location": "node_modules/react", "name": "react", "path": "{CWD}/test/fixtures/tap-and-flow/node_modules/react", - "peer": true, "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", "version": "16.12.0", }, @@ -140385,7 +140480,6 @@ ArboristNode { "location": "node_modules/tap/node_modules/@babel/core", "name": "@babel/core", "path": "{CWD}/test/fixtures/tap-and-flow/node_modules/tap/node_modules/@babel/core", - "peer": true, "version": "7.7.5", }, "@babel/generator" => ArboristNode { @@ -141256,7 +141350,6 @@ ArboristNode { "location": "node_modules/tap/node_modules/@types/react", "name": "@types/react", "path": "{CWD}/test/fixtures/tap-and-flow/node_modules/tap/node_modules/@types/react", - "peer": true, "version": "16.9.16", }, "ansi-escapes" => ArboristNode { @@ -144644,7 +144737,6 @@ ArboristNode { "location": "node_modules/typescript", "name": "typescript", "path": "{CWD}/test/fixtures/tap-and-flow/node_modules/typescript", - "peer": true, "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.3.tgz", "version": "3.7.3", }, @@ -145638,7 +145730,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-b", "name": "@isaacs/testing-peer-dep-conflict-chain-b", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-upgrade-a-partly-overlapping-peer-set/node_modules/@isaacs/testing-peer-dep-conflict-chain-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-b/-/testing-peer-dep-conflict-chain-b-3.0.0.tgz", "version": "3.0.0", }, @@ -145814,7 +145905,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-dep-conflict-chain-m/node_modules/@isaacs/testing-peer-dep-conflict-chain-e", "name": "@isaacs/testing-peer-dep-conflict-chain-e", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-upgrade-a-partly-overlapping-peer-set/node_modules/@isaacs/testing-peer-dep-conflict-chain-m/node_modules/@isaacs/testing-peer-dep-conflict-chain-e", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-dep-conflict-chain-e/-/testing-peer-dep-conflict-chain-e-2.0.0.tgz", "version": "2.0.0", }, @@ -145957,7 +146047,6 @@ ArboristNode { "location": "node_modules/ajv", "name": "ajv", "path": "{CWD}/test/fixtures/sax/node_modules/ajv", - "peer": true, "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.2.tgz", "version": "4.11.2", }, @@ -148824,7 +148913,6 @@ ArboristNode { "location": "node_modules/eslint", "name": "eslint", "path": "{CWD}/test/fixtures/sax/node_modules/eslint", - "peer": true, "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.10.2.tgz", "version": "3.10.2", }, @@ -148913,7 +149001,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-promise", "name": "eslint-plugin-promise", "path": "{CWD}/test/fixtures/sax/node_modules/eslint-plugin-promise", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.4.1.tgz", "version": "3.4.1", }, @@ -148956,7 +149043,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-react", "name": "eslint-plugin-react", "path": "{CWD}/test/fixtures/sax/node_modules/eslint-plugin-react", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.7.1.tgz", "version": "6.7.1", }, @@ -148987,7 +149073,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-standard", "name": "eslint-plugin-standard", "path": "{CWD}/test/fixtures/sax/node_modules/eslint-plugin-standard", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-2.0.1.tgz", "version": "2.0.1", }, @@ -160275,7 +160360,6 @@ ArboristNode { "location": "node_modules/workspace-a", "name": "workspace-a", "path": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-workspaces-should-allow-cyclic-peer-dependencies-between-workspaces-and-packages-from-a-repository/node_modules/workspace-a", - "peer": true, "realpath": "{CWD}/test/arborist/tap-testdir-build-ideal-tree-workspaces-should-allow-cyclic-peer-dependencies-between-workspaces-and-packages-from-a-repository/workspace-a", "resolved": "file:../workspace-a", "target": ArboristNode { diff --git a/workspaces/arborist/tap-snapshots/test/arborist/load-actual.js.test.cjs b/workspaces/arborist/tap-snapshots/test/arborist/load-actual.js.test.cjs index 27b9ee1f906b2..a4ca3e75702f5 100644 --- a/workspaces/arborist/tap-snapshots/test/arborist/load-actual.js.test.cjs +++ b/workspaces/arborist/tap-snapshots/test/arborist/load-actual.js.test.cjs @@ -280,7 +280,6 @@ ArboristNode { "location": "node_modules/@scope/y", "name": "@scope/y", "path": "root/node_modules/@scope/y", - "peer": true, "version": "1.2.3", }, "foo" => ArboristNode { @@ -870,7 +869,6 @@ ArboristLink { "location": "node_modules/@scope/y", "name": "@scope/y", "path": "root/node_modules/@scope/y", - "peer": true, "version": "1.2.3", }, "foo" => ArboristNode { @@ -2701,7 +2699,6 @@ ArboristLink { "location": "node_modules/@scope/y", "name": "@scope/y", "path": "root/node_modules/@scope/y", - "peer": true, "version": "1.2.3", }, "foo" => ArboristNode { @@ -4431,7 +4428,6 @@ ArboristNode { "location": "node_modules/@scope/y", "name": "@scope/y", "path": "root/node_modules/@scope/y", - "peer": true, "version": "1.2.3", }, "foo" => ArboristNode { @@ -6076,7 +6072,6 @@ ArboristNode { "location": "node_modules/@scope/y", "name": "@scope/y", "path": "root/node_modules/@scope/y", - "peer": true, "version": "1.2.3", }, "foo" => ArboristNode { @@ -6397,237 +6392,6 @@ ArboristNode { } ` -exports[`test/arborist/load-actual.js TAP shake out Link target timing issue > loaded tree 1`] = ` -ArboristNode { - "children": Map { - "@scope/y" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "@scope/y", - "spec": "*", - "type": "prod", - }, - }, - "edgesOut": Map { - "foo" => EdgeOut { - "name": "foo", - "spec": "*", - "to": "node_modules/foo", - "type": "prod", - }, - }, - "location": "node_modules/@scope/y", - "name": "@scope/y", - "path": "selflink/node_modules/@scope/y", - "version": "1.2.3", - }, - "@scope/z" => ArboristNode { - "children": Map { - "glob" => ArboristLink { - "dev": true, - "edgesIn": Set { - EdgeIn { - "from": "node_modules/@scope/z", - "name": "glob", - "spec": "4", - "type": "prod", - }, - }, - "extraneous": true, - "location": "node_modules/@scope/z/node_modules/glob", - "name": "glob", - "optional": true, - "path": "selflink/node_modules/@scope/z/node_modules/glob", - "peer": true, - "realpath": "selflink/node_modules/foo/node_modules/glob", - "resolved": "file:../../../foo/node_modules/glob", - "target": ArboristNode { - "children": Map { - "graceful-fs" => ArboristNode { - "dev": true, - "extraneous": true, - "location": "node_modules/foo/node_modules/glob/node_modules/graceful-fs", - "name": "graceful-fs", - "optional": true, - "path": "selflink/node_modules/foo/node_modules/glob/node_modules/graceful-fs", - "peer": true, - "version": "3.0.2", - }, - "inherits" => ArboristNode { - "dev": true, - "extraneous": true, - "location": "node_modules/foo/node_modules/glob/node_modules/inherits", - "name": "inherits", - "optional": true, - "path": "selflink/node_modules/foo/node_modules/glob/node_modules/inherits", - "peer": true, - "version": "2.0.1", - }, - "minimatch" => ArboristNode { - "children": Map { - "lru-cache" => ArboristNode { - "dev": true, - "extraneous": true, - "location": "node_modules/foo/node_modules/glob/node_modules/minimatch/node_modules/lru-cache", - "name": "lru-cache", - "optional": true, - "path": "selflink/node_modules/foo/node_modules/glob/node_modules/minimatch/node_modules/lru-cache", - "peer": true, - "version": "2.5.0", - }, - "sigmund" => ArboristNode { - "dev": true, - "extraneous": true, - "location": "node_modules/foo/node_modules/glob/node_modules/minimatch/node_modules/sigmund", - "name": "sigmund", - "optional": true, - "path": "selflink/node_modules/foo/node_modules/glob/node_modules/minimatch/node_modules/sigmund", - "peer": true, - "version": "1.0.0", - }, - }, - "dev": true, - "extraneous": true, - "location": "node_modules/foo/node_modules/glob/node_modules/minimatch", - "name": "minimatch", - "optional": true, - "path": "selflink/node_modules/foo/node_modules/glob/node_modules/minimatch", - "peer": true, - "version": "1.0.0", - }, - "once" => ArboristNode { - "dev": true, - "extraneous": true, - "location": "node_modules/foo/node_modules/glob/node_modules/once", - "name": "once", - "optional": true, - "path": "selflink/node_modules/foo/node_modules/glob/node_modules/once", - "peer": true, - "version": "1.3.0", - }, - }, - "edgesIn": Set { - EdgeIn { - "from": "node_modules/foo", - "name": "glob", - "spec": "4", - "type": "prod", - }, - }, - "location": "node_modules/foo/node_modules/glob", - "name": "glob", - "path": "selflink/node_modules/foo/node_modules/glob", - "version": "4.0.5", - }, - "version": "4.0.5", - }, - }, - "dev": true, - "edgesOut": Map { - "glob" => EdgeOut { - "name": "glob", - "spec": "4", - "to": "node_modules/@scope/z/node_modules/glob", - "type": "prod", - }, - }, - "extraneous": true, - "location": "node_modules/@scope/z", - "name": "@scope/z", - "optional": true, - "path": "selflink/node_modules/@scope/z", - "peer": true, - "version": "1.2.3", - }, - "foo" => ArboristNode { - "children": Map { - "glob" => ArboristNode { - "location": "node_modules/foo/node_modules/glob", - }, - "selflink" => ArboristLink { - "edgesIn": Set { - EdgeIn { - "from": "node_modules/foo", - "name": "selflink", - "spec": "*", - "type": "prod", - }, - }, - "location": "node_modules/foo/node_modules/selflink", - "name": "selflink", - "path": "selflink/node_modules/foo/node_modules/selflink", - "realpath": "selflink", - "resolved": "file:../../..", - "target": ArboristNode { - "location": "", - }, - "version": "1.2.3", - }, - }, - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "foo", - "spec": "*", - "type": "prod", - }, - EdgeIn { - "from": "node_modules/@scope/y", - "name": "foo", - "spec": "*", - "type": "prod", - }, - }, - "edgesOut": Map { - "glob" => EdgeOut { - "name": "glob", - "spec": "4", - "to": "node_modules/foo/node_modules/glob", - "type": "prod", - }, - "selflink" => EdgeOut { - "name": "selflink", - "spec": "*", - "to": "node_modules/foo/node_modules/selflink", - "type": "prod", - }, - }, - "location": "node_modules/foo", - "name": "foo", - "path": "selflink/node_modules/foo", - "version": "1.2.3", - }, - }, - "edgesOut": Map { - "@scope/x" => EdgeOut { - "error": "MISSING", - "name": "@scope/x", - "spec": "*", - "to": null, - "type": "prod", - }, - "@scope/y" => EdgeOut { - "name": "@scope/y", - "spec": "*", - "to": "node_modules/@scope/y", - "type": "prod", - }, - "foo" => EdgeOut { - "name": "foo", - "spec": "*", - "to": "node_modules/foo", - "type": "prod", - }, - }, - "isProjectRoot": true, - "location": "", - "name": "selflink", - "path": "selflink", - "version": "1.2.3", -} -` - exports[`test/arborist/load-actual.js TAP symlinked-node-modules/example > loaded tree 1`] = ` ArboristNode { "children": Map { @@ -6696,6 +6460,7 @@ ArboristNode { "type": "prod", }, }, + "extraneous": true, "fsChildren": Set { ArboristNode { "dev": true, @@ -6749,6 +6514,7 @@ ArboristNode { "type": "prod", }, }, + "extraneous": true, "fsChildren": Set { ArboristNode { "dev": true, diff --git a/workspaces/arborist/tap-snapshots/test/arborist/load-virtual.js.test.cjs b/workspaces/arborist/tap-snapshots/test/arborist/load-virtual.js.test.cjs index 72a33e6a58632..25ac9457c8c86 100644 --- a/workspaces/arborist/tap-snapshots/test/arborist/load-virtual.js.test.cjs +++ b/workspaces/arborist/tap-snapshots/test/arborist/load-virtual.js.test.cjs @@ -259,6 +259,7 @@ ArboristNode { "type": "peerOptional", }, }, + "extraneous": true, "location": "node_modules/semver", "name": "semver", "optional": true, @@ -303,6 +304,7 @@ ArboristNode { "location": "node_modules/wrappy", "name": "wrappy", "path": "{CWD}/test/fixtures/edit-package-json/changed/node_modules/wrappy", + "peer": true, "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "version": "1.0.2", }, diff --git a/workspaces/arborist/tap-snapshots/test/arborist/pruner.js.test.cjs b/workspaces/arborist/tap-snapshots/test/arborist/pruner.js.test.cjs index 9e60beb05a59b..16c732a8b5600 100644 --- a/workspaces/arborist/tap-snapshots/test/arborist/pruner.js.test.cjs +++ b/workspaces/arborist/tap-snapshots/test/arborist/pruner.js.test.cjs @@ -5,99 +5,6 @@ * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' -exports[`test/arborist/pruner.js TAP do not prune dependencies that are optional but not peer > must match snapshot 1`] = ` -ArboristNode { - "children": Map { - "optional-dep" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "node_modules/peer-pkg", - "name": "optional-dep", - "spec": "1.0.0", - "type": "optional", - }, - }, - "location": "node_modules/optional-dep", - "name": "optional-dep", - "optional": true, - "path": "{CWD}/test/arborist/tap-testdir-pruner-do-not-prune-dependencies-that-are-optional-but-not-peer/node_modules/optional-dep", - "version": "1.0.0", - }, - "peer-pkg" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "peer-pkg", - "spec": "1.0.0", - "type": "peer", - }, - EdgeIn { - "from": "node_modules/pkg-a", - "name": "peer-pkg", - "spec": "1.0.0", - "type": "peer", - }, - }, - "edgesOut": Map { - "optional-dep" => EdgeOut { - "name": "optional-dep", - "spec": "1.0.0", - "to": "node_modules/optional-dep", - "type": "optional", - }, - }, - "location": "node_modules/peer-pkg", - "name": "peer-pkg", - "path": "{CWD}/test/arborist/tap-testdir-pruner-do-not-prune-dependencies-that-are-optional-but-not-peer/node_modules/peer-pkg", - "peer": true, - "version": "1.0.0", - }, - "pkg-a" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "pkg-a", - "spec": "1.0.0", - "type": "prod", - }, - }, - "edgesOut": Map { - "peer-pkg" => EdgeOut { - "name": "peer-pkg", - "spec": "1.0.0", - "to": "node_modules/peer-pkg", - "type": "peer", - }, - }, - "location": "node_modules/pkg-a", - "name": "pkg-a", - "path": "{CWD}/test/arborist/tap-testdir-pruner-do-not-prune-dependencies-that-are-optional-but-not-peer/node_modules/pkg-a", - "version": "1.0.0", - }, - }, - "edgesOut": Map { - "peer-pkg" => EdgeOut { - "name": "peer-pkg", - "spec": "1.0.0", - "to": "node_modules/peer-pkg", - "type": "peer", - }, - "pkg-a" => EdgeOut { - "name": "pkg-a", - "spec": "1.0.0", - "to": "node_modules/pkg-a", - "type": "prod", - }, - }, - "isProjectRoot": true, - "location": "", - "name": "tap-testdir-pruner-do-not-prune-dependencies-that-are-optional-but-not-peer", - "packageName": "peer-optional-test", - "path": "{CWD}/test/arborist/tap-testdir-pruner-do-not-prune-dependencies-that-are-optional-but-not-peer", - "version": "1.0.0", -} -` - exports[`test/arborist/pruner.js TAP prune with actual tree > must match snapshot 1`] = ` ArboristNode { "isProjectRoot": true, diff --git a/workspaces/arborist/tap-snapshots/test/arborist/reify.js.test.cjs b/workspaces/arborist/tap-snapshots/test/arborist/reify.js.test.cjs index bb472a570eb1c..b4c9daa052c55 100644 --- a/workspaces/arborist/tap-snapshots/test/arborist/reify.js.test.cjs +++ b/workspaces/arborist/tap-snapshots/test/arborist/reify.js.test.cjs @@ -2117,7 +2117,6 @@ ArboristNode { }, }, }, - "dev": true, "edgesOut": Map { "abbrev" => EdgeOut { "error": "MISSING", @@ -10234,7 +10233,6 @@ ArboristNode { "location": "node_modules/react", "name": "react", "path": "{CWD}/test/arborist/tap-testdir-reify-multiple-bundles-at-the-same-level/node_modules/react", - "peer": true, "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", "version": "16.12.0", }, @@ -11628,7 +11626,6 @@ ArboristNode { "location": "node_modules/tap/node_modules/@babel/core", "name": "@babel/core", "path": "{CWD}/test/arborist/tap-testdir-reify-multiple-bundles-at-the-same-level/node_modules/tap/node_modules/@babel/core", - "peer": true, "version": "7.7.5", }, "@babel/generator" => ArboristNode { @@ -12523,7 +12520,6 @@ ArboristNode { "location": "node_modules/tap/node_modules/@types/react", "name": "@types/react", "path": "{CWD}/test/arborist/tap-testdir-reify-multiple-bundles-at-the-same-level/node_modules/tap/node_modules/@types/react", - "peer": true, "version": "16.9.16", }, "ansi-escapes" => ArboristNode { @@ -17913,7 +17909,6 @@ ArboristNode { "location": "node_modules/ajv", "name": "ajv", "path": "{CWD}/test/arborist/tap-testdir-reify-reify-properly-with-all-deps-when-lockfile-is-ancient/node_modules/ajv", - "peer": true, "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.2.tgz", "version": "4.11.2", }, @@ -20780,7 +20775,6 @@ ArboristNode { "location": "node_modules/eslint", "name": "eslint", "path": "{CWD}/test/arborist/tap-testdir-reify-reify-properly-with-all-deps-when-lockfile-is-ancient/node_modules/eslint", - "peer": true, "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.10.2.tgz", "version": "3.10.2", }, @@ -20869,7 +20863,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-promise", "name": "eslint-plugin-promise", "path": "{CWD}/test/arborist/tap-testdir-reify-reify-properly-with-all-deps-when-lockfile-is-ancient/node_modules/eslint-plugin-promise", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.4.1.tgz", "version": "3.4.1", }, @@ -20912,7 +20905,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-react", "name": "eslint-plugin-react", "path": "{CWD}/test/arborist/tap-testdir-reify-reify-properly-with-all-deps-when-lockfile-is-ancient/node_modules/eslint-plugin-react", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.7.1.tgz", "version": "6.7.1", }, @@ -20943,7 +20935,6 @@ ArboristNode { "location": "node_modules/eslint-plugin-standard", "name": "eslint-plugin-standard", "path": "{CWD}/test/arborist/tap-testdir-reify-reify-properly-with-all-deps-when-lockfile-is-ancient/node_modules/eslint-plugin-standard", - "peer": true, "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-2.0.1.tgz", "version": "2.0.1", }, @@ -33462,7 +33453,6 @@ ArboristNode { "location": "node_modules/@isaacs/testing-peer-deps-b", "name": "@isaacs/testing-peer-deps-b", "path": "{CWD}/test/arborist/tap-testdir-reify-testing-peer-deps-nested-with-update/node_modules/@isaacs/testing-peer-deps-b", - "peer": true, "resolved": "https://registry.npmjs.org/@isaacs/testing-peer-deps-b/-/testing-peer-deps-b-2.0.1.tgz", "version": "2.0.1", }, @@ -39739,7 +39729,6 @@ ArboristNode { "location": "node_modules/react", "name": "react", "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-bundling-node-without-updating-all-of-its-deps/node_modules/react", - "peer": true, "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", "version": "15.6.2", }, @@ -40940,7 +40929,6 @@ ArboristNode { "location": "node_modules/tap/node_modules/@babel/core", "name": "@babel/core", "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-bundling-node-without-updating-all-of-its-deps/node_modules/tap/node_modules/@babel/core", - "peer": true, "version": "7.7.5", }, "@babel/generator" => ArboristNode { @@ -41835,7 +41823,6 @@ ArboristNode { "location": "node_modules/tap/node_modules/@types/react", "name": "@types/react", "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-bundling-node-without-updating-all-of-its-deps/node_modules/tap/node_modules/@types/react", - "peer": true, "version": "16.9.16", }, "ansi-escapes" => ArboristNode { @@ -43562,7 +43549,6 @@ ArboristNode { "location": "node_modules/tap/node_modules/react", "name": "react", "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-bundling-node-without-updating-all-of-its-deps/node_modules/tap/node_modules/react", - "peer": true, "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", "version": "16.12.0", }, @@ -45402,7 +45388,6 @@ ArboristNode { "location": "node_modules/typescript", "name": "typescript", "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-bundling-node-without-updating-all-of-its-deps/node_modules/typescript", - "peer": true, "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", "version": "3.7.4", }, @@ -46487,157 +46472,6 @@ ArboristNode { } ` -exports[`test/arborist/reify.js TAP update a node without updating an inert child bundle deps > expect resolving Promise 1`] = ` -ArboristNode { - "children": Map { - "@isaacs/testing-bundledeps-parent" => ArboristNode { - "children": Map { - "@isaacs/testing-bundledeps" => ArboristNode { - "bundleDependencies": Array [ - "@isaacs/testing-bundledeps-a", - ], - "children": Map { - "@isaacs/testing-bundledeps-a" => ArboristNode { - "bundled": true, - "bundler": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps", - "edgesIn": Set { - EdgeIn { - "from": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps", - "name": "@isaacs/testing-bundledeps-a", - "spec": "*", - "type": "prod", - }, - }, - "edgesOut": Map { - "@isaacs/testing-bundledeps-b" => EdgeOut { - "name": "@isaacs/testing-bundledeps-b", - "spec": "*", - "to": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-b", - "type": "prod", - }, - }, - "location": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-a", - "name": "@isaacs/testing-bundledeps-a", - "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-node-without-updating-an-inert-child-bundle-deps/node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-a", - "resolved": "https://registry.npmjs.org/@isaacs/testing-bundledeps-a/-/testing-bundledeps-a-1.0.0.tgz", - "version": "1.0.0", - }, - "@isaacs/testing-bundledeps-b" => ArboristNode { - "bundled": true, - "bundler": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps", - "edgesIn": Set { - EdgeIn { - "from": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-a", - "name": "@isaacs/testing-bundledeps-b", - "spec": "*", - "type": "prod", - }, - EdgeIn { - "from": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-c", - "name": "@isaacs/testing-bundledeps-b", - "spec": "*", - "type": "prod", - }, - }, - "location": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-b", - "name": "@isaacs/testing-bundledeps-b", - "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-node-without-updating-an-inert-child-bundle-deps/node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-b", - "resolved": "https://registry.npmjs.org/@isaacs/testing-bundledeps-b/-/testing-bundledeps-b-1.0.0.tgz", - "version": "1.0.0", - }, - "@isaacs/testing-bundledeps-c" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps", - "name": "@isaacs/testing-bundledeps-c", - "spec": "*", - "type": "prod", - }, - }, - "edgesOut": Map { - "@isaacs/testing-bundledeps-b" => EdgeOut { - "name": "@isaacs/testing-bundledeps-b", - "spec": "*", - "to": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-b", - "type": "prod", - }, - }, - "location": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-c", - "name": "@isaacs/testing-bundledeps-c", - "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-node-without-updating-an-inert-child-bundle-deps/node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-c", - "resolved": "https://registry.npmjs.org/@isaacs/testing-bundledeps-c/-/testing-bundledeps-c-2.0.0.tgz", - "version": "2.0.0", - }, - }, - "edgesIn": Set { - EdgeIn { - "from": "node_modules/@isaacs/testing-bundledeps-parent", - "name": "@isaacs/testing-bundledeps", - "spec": "^1.0.0", - "type": "prod", - }, - }, - "edgesOut": Map { - "@isaacs/testing-bundledeps-a" => EdgeOut { - "name": "@isaacs/testing-bundledeps-a", - "spec": "*", - "to": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-a", - "type": "prod", - }, - "@isaacs/testing-bundledeps-c" => EdgeOut { - "name": "@isaacs/testing-bundledeps-c", - "spec": "*", - "to": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps/node_modules/@isaacs/testing-bundledeps-c", - "type": "prod", - }, - }, - "location": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps", - "name": "@isaacs/testing-bundledeps", - "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-node-without-updating-an-inert-child-bundle-deps/node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps", - "resolved": "https://registry.npmjs.org/@isaacs/testing-bundledeps/-/testing-bundledeps-1.0.0.tgz", - "version": "1.0.0", - }, - }, - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "@isaacs/testing-bundledeps-parent", - "spec": "*", - "type": "prod", - }, - }, - "edgesOut": Map { - "@isaacs/testing-bundledeps" => EdgeOut { - "name": "@isaacs/testing-bundledeps", - "spec": "^1.0.0", - "to": "node_modules/@isaacs/testing-bundledeps-parent/node_modules/@isaacs/testing-bundledeps", - "type": "prod", - }, - }, - "location": "node_modules/@isaacs/testing-bundledeps-parent", - "name": "@isaacs/testing-bundledeps-parent", - "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-node-without-updating-an-inert-child-bundle-deps/node_modules/@isaacs/testing-bundledeps-parent", - "resolved": "https://registry.npmjs.org/@isaacs/testing-bundledeps-parent/-/testing-bundledeps-parent-2.0.0.tgz", - "version": "2.0.0", - }, - }, - "edgesOut": Map { - "@isaacs/testing-bundledeps-parent" => EdgeOut { - "name": "@isaacs/testing-bundledeps-parent", - "spec": "*", - "to": "node_modules/@isaacs/testing-bundledeps-parent", - "type": "prod", - }, - }, - "isProjectRoot": true, - "location": "", - "name": "tap-testdir-reify-update-a-node-without-updating-an-inert-child-bundle-deps", - "packageName": "testing-bundledeps-3", - "path": "{CWD}/test/arborist/tap-testdir-reify-update-a-node-without-updating-an-inert-child-bundle-deps", - "version": "1.0.0", -} -` - exports[`test/arborist/reify.js TAP update a node without updating its children > expect resolving Promise 1`] = ` ArboristNode { "children": Map { diff --git a/workspaces/arborist/tap-snapshots/test/calc-dep-flags.js.test.cjs b/workspaces/arborist/tap-snapshots/test/calc-dep-flags.js.test.cjs index ff63f2e0dc6da..e3318d2e0ad69 100644 --- a/workspaces/arborist/tap-snapshots/test/calc-dep-flags.js.test.cjs +++ b/workspaces/arborist/tap-snapshots/test/calc-dep-flags.js.test.cjs @@ -175,6 +175,7 @@ ArboristNode { "location": "node_modules/metapeerdep", "name": "metapeerdep", "path": "/x/node_modules/metapeerdep", + "peer": true, "version": "1.2.3", }, "optional" => ArboristNode { @@ -185,6 +186,12 @@ ArboristNode { "spec": "*", "type": "optional", }, + EdgeIn { + "from": "node_modules/peeroptional", + "name": "optional", + "spec": "*", + "type": "prod", + }, }, "edgesOut": Map { "devoptional" => EdgeOut { @@ -242,6 +249,32 @@ ArboristNode { "location": "node_modules/peerdep", "name": "peerdep", "path": "/x/node_modules/peerdep", + "peer": true, + "version": "1.2.3", + }, + "peeroptional" => ArboristNode { + "edgesIn": Set { + EdgeIn { + "from": "", + "name": "peeroptional", + "spec": "*", + "type": "peerOptional", + }, + }, + "edgesOut": Map { + "optional" => EdgeOut { + "name": "optional", + "spec": "*", + "to": "node_modules/optional", + "type": "prod", + }, + }, + "extraneous": true, + "location": "node_modules/peeroptional", + "name": "peeroptional", + "optional": true, + "path": "/x/node_modules/peeroptional", + "peer": true, "version": "1.2.3", }, "prod" => ArboristNode { @@ -326,6 +359,12 @@ ArboristNode { "to": "node_modules/peer", "type": "peer", }, + "peeroptional" => EdgeOut { + "name": "peeroptional", + "spec": "*", + "to": "node_modules/peeroptional", + "type": "peerOptional", + }, "prod" => EdgeOut { "name": "prod", "spec": "*", @@ -401,408 +440,22 @@ ArboristNode { "location": "node_modules/foo", "name": "foo", "path": "/some/path/node_modules/foo", - "version": "1.2.3", - }, - }, - "dev": true, - "edgesOut": Map { - "foo" => EdgeOut { - "name": "foo", - "spec": "*", - "to": "node_modules/foo", - "type": "prod", - }, - }, - "isProjectRoot": true, - "location": "", - "name": "path", - "path": "/some/path", -} -` - -exports[`test/calc-dep-flags.js TAP peer dependency with optional dependency > after calcDepFlags 1`] = ` -ArboristNode { - "children": Map { - "B" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "B", - "spec": "1.0.0", - "type": "prod", - }, - }, - "edgesOut": Map { - "C" => EdgeOut { - "name": "C", - "spec": "1.0.0", - "to": "node_modules/C", - "type": "peer", - }, - }, - "location": "node_modules/B", - "name": "B", - "path": "/project/node_modules/B", - "version": "1.0.0", - }, - "C" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "node_modules/B", - "name": "C", - "spec": "1.0.0", - "type": "peer", - }, - }, - "edgesOut": Map { - "D" => EdgeOut { - "name": "D", - "spec": "1.0.0", - "to": "node_modules/D", - "type": "optional", - }, - }, - "location": "node_modules/C", - "name": "C", - "path": "/project/node_modules/C", - "peer": true, - "version": "1.0.0", - }, - "D" => ArboristNode { - "edgesIn": Set { - EdgeIn { - "from": "node_modules/C", - "name": "D", - "spec": "1.0.0", - "type": "optional", - }, - }, - "location": "node_modules/D", - "name": "D", - "optional": true, - "path": "/project/node_modules/D", - "version": "1.0.0", - }, - }, - "edgesOut": Map { - "B" => EdgeOut { - "name": "B", - "spec": "1.0.0", - "to": "node_modules/B", - "type": "prod", - }, - }, - "isProjectRoot": true, - "location": "", - "name": "project", - "packageName": "A", - "path": "/project", - "version": "1.0.0", -} -` - -exports[`test/calc-dep-flags.js TAP peer dependency with optional dependency > before calcDepFlags 1`] = ` -ArboristNode { - "children": Map { - "B" => ArboristNode { - "dev": true, - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "B", - "spec": "1.0.0", - "type": "prod", - }, - }, - "edgesOut": Map { - "C" => EdgeOut { - "name": "C", - "spec": "1.0.0", - "to": "node_modules/C", - "type": "peer", - }, - }, - "extraneous": true, - "location": "node_modules/B", - "name": "B", - "optional": true, - "path": "/project/node_modules/B", - "peer": true, - "version": "1.0.0", - }, - "C" => ArboristNode { - "dev": true, - "edgesIn": Set { - EdgeIn { - "from": "node_modules/B", - "name": "C", - "spec": "1.0.0", - "type": "peer", - }, - }, - "edgesOut": Map { - "D" => EdgeOut { - "name": "D", - "spec": "1.0.0", - "to": "node_modules/D", - "type": "optional", - }, - }, - "extraneous": true, - "location": "node_modules/C", - "name": "C", - "optional": true, - "path": "/project/node_modules/C", - "peer": true, - "version": "1.0.0", - }, - "D" => ArboristNode { - "dev": true, - "edgesIn": Set { - EdgeIn { - "from": "node_modules/C", - "name": "D", - "spec": "1.0.0", - "type": "optional", - }, - }, - "extraneous": true, - "location": "node_modules/D", - "name": "D", - "optional": true, - "path": "/project/node_modules/D", - "peer": true, - "version": "1.0.0", - }, - }, - "dev": true, - "edgesOut": Map { - "B" => EdgeOut { - "name": "B", - "spec": "1.0.0", - "to": "node_modules/B", - "type": "prod", - }, - }, - "extraneous": true, - "isProjectRoot": true, - "location": "", - "name": "project", - "optional": true, - "packageName": "A", - "path": "/project", - "peer": true, - "version": "1.0.0", -} -` - -exports[`test/calc-dep-flags.js TAP set parents to not extraneous when visiting > after 1`] = ` -ArboristNode { - "children": Map { - "asdf" => ArboristNode { - "children": Map { - "baz" => ArboristNode { - "location": "node_modules/asdf/node_modules/baz", - "name": "baz", - "path": "/some/path/node_modules/asdf/node_modules/baz", - "version": "1.2.3", - }, - }, - "location": "node_modules/asdf", - "name": "asdf", - "path": "/some/path/node_modules/asdf", - "version": "1.2.3", - }, - "baz" => ArboristLink { - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "baz", - "spec": "file:node_modules/asdf/node_modules/baz", - "type": "prod", - }, - }, - "location": "node_modules/baz", - "name": "baz", - "path": "/some/path/node_modules/baz", - "realpath": "/some/path/node_modules/asdf/node_modules/baz", - "resolved": "file:asdf/node_modules/baz", - "target": ArboristNode { - "location": "node_modules/asdf/node_modules/baz", - }, - "version": "1.2.3", - }, - "foo" => ArboristLink { - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "foo", - "spec": "file:bar/foo", - "type": "prod", - }, - }, - "location": "node_modules/foo", - "name": "foo", - "path": "/some/path/node_modules/foo", - "realpath": "/some/path/bar/foo", - "resolved": "file:../bar/foo", - "target": ArboristNode { - "location": "bar/foo", - }, - "version": "1.2.3", - }, - }, - "edgesOut": Map { - "baz" => EdgeOut { - "name": "baz", - "spec": "file:node_modules/asdf/node_modules/baz", - "to": "node_modules/baz", - "type": "prod", - }, - "foo" => EdgeOut { - "name": "foo", - "spec": "file:bar/foo", - "to": "node_modules/foo", - "type": "prod", - }, - }, - "fsChildren": Set { - ArboristNode { - "fsChildren": Set { - ArboristNode { - "location": "bar/foo", - "name": "foo", - "path": "/some/path/bar/foo", - "version": "1.2.3", - }, - }, - "location": "bar", - "name": "bar", - "path": "/some/path/bar", - }, - }, - "isProjectRoot": true, - "location": "", - "name": "path", - "path": "/some/path", -} -` - -exports[`test/calc-dep-flags.js TAP set parents to not extraneous when visiting > before 1`] = ` -ArboristNode { - "children": Map { - "asdf" => ArboristNode { - "children": Map { - "baz" => ArboristNode { - "dev": true, - "extraneous": true, - "location": "node_modules/asdf/node_modules/baz", - "name": "baz", - "optional": true, - "path": "/some/path/node_modules/asdf/node_modules/baz", - "peer": true, - "version": "1.2.3", - }, - }, - "dev": true, - "extraneous": true, - "location": "node_modules/asdf", - "name": "asdf", - "optional": true, - "path": "/some/path/node_modules/asdf", - "peer": true, - "version": "1.2.3", - }, - "baz" => ArboristLink { - "dev": true, - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "baz", - "spec": "file:node_modules/asdf/node_modules/baz", - "type": "prod", - }, - }, - "extraneous": true, - "location": "node_modules/baz", - "name": "baz", - "optional": true, - "path": "/some/path/node_modules/baz", - "peer": true, - "realpath": "/some/path/node_modules/asdf/node_modules/baz", - "resolved": "file:asdf/node_modules/baz", - "target": ArboristNode { - "location": "node_modules/asdf/node_modules/baz", - }, - "version": "1.2.3", - }, - "foo" => ArboristLink { - "dev": true, - "edgesIn": Set { - EdgeIn { - "from": "", - "name": "foo", - "spec": "file:bar/foo", - "type": "prod", - }, - }, - "extraneous": true, - "location": "node_modules/foo", - "name": "foo", - "optional": true, - "path": "/some/path/node_modules/foo", "peer": true, - "realpath": "/some/path/bar/foo", - "resolved": "file:../bar/foo", - "target": ArboristNode { - "location": "bar/foo", - }, "version": "1.2.3", }, }, "dev": true, "edgesOut": Map { - "baz" => EdgeOut { - "name": "baz", - "spec": "file:node_modules/asdf/node_modules/baz", - "to": "node_modules/baz", - "type": "prod", - }, "foo" => EdgeOut { "name": "foo", - "spec": "file:bar/foo", + "spec": "*", "to": "node_modules/foo", "type": "prod", }, }, - "extraneous": true, - "fsChildren": Set { - ArboristNode { - "dev": true, - "extraneous": true, - "fsChildren": Set { - ArboristNode { - "dev": true, - "extraneous": true, - "location": "bar/foo", - "name": "foo", - "optional": true, - "path": "/some/path/bar/foo", - "peer": true, - "version": "1.2.3", - }, - }, - "location": "bar", - "name": "bar", - "optional": true, - "path": "/some/path/bar", - "peer": true, - }, - }, "isProjectRoot": true, "location": "", "name": "path", - "optional": true, "path": "/some/path", "peer": true, } diff --git a/workspaces/arborist/tap-snapshots/test/shrinkwrap.js.test.cjs b/workspaces/arborist/tap-snapshots/test/shrinkwrap.js.test.cjs index 4b03a05c854c8..9103febb644ee 100644 --- a/workspaces/arborist/tap-snapshots/test/shrinkwrap.js.test.cjs +++ b/workspaces/arborist/tap-snapshots/test/shrinkwrap.js.test.cjs @@ -246,6 +246,7 @@ Object { "peerdep": "", }, "integrity": "sha512-peerpeerpeer", + "peer": true, "resolved": "https://peer.com/peer.tgz", "version": "1.2.3", } @@ -254,6 +255,7 @@ Object { exports[`test/shrinkwrap.js TAP construct metadata from node and package data > a peer meta-dep 1`] = ` Object { "integrity": "sha512-peerdeppeerdep", + "peer": true, "resolved": "https://peer.com/peerdep.tgz", "version": "1.2.3", } @@ -367,11 +369,13 @@ Object { "peerdep": "", }, "integrity": "sha512-peerpeerpeer", + "peer": true, "resolved": "https://peer.com/peer.tgz", "version": "1.2.3", }, "node_modules/peer/node_modules/peerdep": Object { "integrity": "sha512-peerdeppeerdep", + "peer": true, "resolved": "https://peer.com/peerdep.tgz", "version": "1.2.3", }, @@ -1335,7 +1339,6 @@ Object { "dependencies": Object { "foo": "99.x", }, - "peer": true, "version": "1.2.3", }, "../../root/node_modules/foo": Object { @@ -2040,7 +2043,6 @@ Object { "dependencies": Object { "foo": "99.x", }, - "peer": true, "version": "1.2.3", }, "../root/node_modules/foo": Object { @@ -2620,7 +2622,6 @@ Object { "dependencies": Object { "foo": "99.x", }, - "peer": true, "version": "1.2.3", }, "node_modules/foo": Object { @@ -2718,81 +2719,6 @@ Object { } ` -exports[`test/shrinkwrap.js TAP loadActual tests selflink > shrinkwrap data 2`] = ` -Object { - "lockfileVersion": 3, - "name": "selflink", - "packages": Object { - "": Object { - "dependencies": Object { - "@scope/x": "", - "@scope/y": "", - "foo": "", - }, - "name": "selflink", - "version": "1.2.3", - }, - "node_modules/@scope/y": Object { - "dependencies": Object { - "foo": "*", - }, - "version": "1.2.3", - }, - "node_modules/@scope/z": Object { - "dependencies": Object { - "glob": "4", - }, - "extraneous": true, - "version": "1.2.3", - }, - "node_modules/@scope/z/node_modules/glob": Object { - "link": true, - "resolved": "node_modules/foo/node_modules/glob", - }, - "node_modules/foo": Object { - "dependencies": Object { - "glob": "4", - "selflink": "*", - }, - "version": "1.2.3", - }, - "node_modules/foo/node_modules/glob": Object { - "version": "4.0.5", - }, - "node_modules/foo/node_modules/glob/node_modules/graceful-fs": Object { - "extraneous": true, - "version": "3.0.2", - }, - "node_modules/foo/node_modules/glob/node_modules/inherits": Object { - "extraneous": true, - "version": "2.0.1", - }, - "node_modules/foo/node_modules/glob/node_modules/minimatch": Object { - "extraneous": true, - "version": "1.0.0", - }, - "node_modules/foo/node_modules/glob/node_modules/minimatch/node_modules/lru-cache": Object { - "extraneous": true, - "version": "2.5.0", - }, - "node_modules/foo/node_modules/glob/node_modules/minimatch/node_modules/sigmund": Object { - "extraneous": true, - "version": "1.0.0", - }, - "node_modules/foo/node_modules/glob/node_modules/once": Object { - "extraneous": true, - "version": "1.3.0", - }, - "node_modules/foo/node_modules/selflink": Object { - "link": true, - "resolved": "", - }, - }, - "requires": true, - "version": "1.2.3", -} -` - exports[`test/shrinkwrap.js TAP loadActual tests symlinked-node-modules/example > shrinkwrap data 1`] = ` Object { "lockfileVersion": 3, @@ -5887,7 +5813,6 @@ Object { "inBundle": true, "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", "license": "MIT", - "peer": true, "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", "version": "16.12.0", }, @@ -6716,7 +6641,6 @@ Object { }, "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", "license": "Apache-2.0", - "peer": true, "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", "version": "3.7.2", }, diff --git a/workspaces/arborist/test/arborist/load-actual.js b/workspaces/arborist/test/arborist/load-actual.js index a6e763f659374..94ad4e7269286 100644 --- a/workspaces/arborist/test/arborist/load-actual.js +++ b/workspaces/arborist/test/arborist/load-actual.js @@ -162,14 +162,6 @@ t.test('cwd is default root', t => { t.matchSnapshot(tree, 'loaded tree')) }) -t.test('shake out Link target timing issue', t => { - process.env._TEST_ARBORIST_SLOW_LINK_TARGET_ = '1' - t.teardown(() => process.env._TEST_ARBORIST_SLOW_LINK_TARGET_ = '') - const dir = resolve(fixtures, 'selflink') - return loadActual(dir).then(tree => - t.matchSnapshot(tree, 'loaded tree')) -}) - t.test('broken json', async t => { const d = await loadActual(resolve(fixtures, 'bad')) t.ok(d.errors.length, 'Got an error object') diff --git a/workspaces/arborist/test/arborist/pruner.js b/workspaces/arborist/test/arborist/pruner.js index 1dfb56789978a..208acc1d2a05e 100644 --- a/workspaces/arborist/test/arborist/pruner.js +++ b/workspaces/arborist/test/arborist/pruner.js @@ -219,60 +219,3 @@ t.test('prune workspaces', async t => { t.ok(fs.existsSync(join(path, 'node_modules', 'derp')), 'derp was not pruned from tree') t.matchSnapshot(printTree(tree)) }) - -t.test('do not prune dependencies that are optional but not peer', async t => { - const path = t.testdir({ - 'package.json': JSON.stringify({ - name: 'peer-optional-test', - version: '1.0.0', - dependencies: { - 'pkg-a': '1.0.0', - }, - peerDependencies: { - 'peer-pkg': '1.0.0', - }, - }), - node_modules: { - 'pkg-a': { - 'package.json': JSON.stringify({ - name: 'pkg-a', - version: '1.0.0', - peerDependencies: { 'peer-pkg': '1.0.0' }, - }), - }, - 'peer-pkg': { - 'package.json': JSON.stringify({ - name: 'peer-pkg', - version: '1.0.0', - optionalDependencies: { 'optional-dep': '1.0.0' }, - }), - }, - 'optional-dep': { - 'package.json': JSON.stringify({ - name: 'optional-dep', - version: '1.0.0', - }), - }, - }, - }) - - const tree = await pruneTree(path, { audit: false }) - - // Before the fix: optional-dep would have been incorrectly marked as both peer and optional, causing it to be pruned - // After the fix: optional-dep should only be marked as optional (not peer), so it should not be pruned - t.ok(fs.existsSync(join(path, 'node_modules', 'optional-dep')), - 'optional-dep should not be pruned - it is optional but not peer') - - // Verify the dependency flags are correct in the tree - const optionalDepNode = tree.children.get('optional-dep') - t.ok(optionalDepNode, 'optional-dep should exist in tree') - t.equal(optionalDepNode.optional, true, 'optional-dep should be marked as optional') - t.equal(optionalDepNode.peer, false, 'optional-dep should NOT be marked as peer') - - // The peer package should still be marked as peer - const peerPkgNode = tree.children.get('peer-pkg') - t.ok(peerPkgNode, 'peer-pkg should exist in tree') - t.equal(peerPkgNode.peer, true, 'peer-pkg should be marked as peer') - - t.matchSnapshot(printTree(tree)) -}) diff --git a/workspaces/arborist/test/calc-dep-flags.js b/workspaces/arborist/test/calc-dep-flags.js index daf7b459f757d..b371ae55f6e4b 100644 --- a/workspaces/arborist/test/calc-dep-flags.js +++ b/workspaces/arborist/test/calc-dep-flags.js @@ -20,11 +20,12 @@ t.test('flag stuff', t => { dependencies: { prod: '' }, devDependencies: { dev: '' }, optionalDependencies: { optional: '' }, - peerDependencies: { peer: '' }, + peerDependencies: { peer: '', peeroptional: '' }, + peerDependenciesMeta: { peeroptional: { optional: true } }, }, }) - new Node({ + const optional = new Node({ pkg: { name: 'optional', version: '1.2.3', @@ -33,7 +34,7 @@ t.test('flag stuff', t => { parent: root, }) - new Node({ + const devoptional = new Node({ pkg: { name: 'devoptional', version: '1.2.3', @@ -41,14 +42,14 @@ t.test('flag stuff', t => { parent: root, }) - new Node({ + const extraneous = new Node({ pkg: { name: 'extraneous', }, parent: root, }) - new Node({ + const peer = new Node({ pkg: { name: 'peer', version: '1.2.3', @@ -57,7 +58,7 @@ t.test('flag stuff', t => { parent: root, }) - new Node({ + const peerdep = new Node({ pkg: { name: 'peerdep', version: '1.2.3', @@ -65,7 +66,7 @@ t.test('flag stuff', t => { parent: root, }) - new Node({ + const prod = new Node({ pkg: { name: 'prod', version: '1.2.3', @@ -75,7 +76,7 @@ t.test('flag stuff', t => { parent: root, }) - new Node({ + const metapeer = new Node({ pkg: { name: 'metapeer', version: '1.2.3', @@ -84,7 +85,7 @@ t.test('flag stuff', t => { parent: root, }) - new Node({ + const metapeerdep = new Node({ pkg: { name: 'metapeerdep', version: '1.2.3', @@ -92,7 +93,7 @@ t.test('flag stuff', t => { parent: root, }) - new Node({ + const proddep = new Node({ pkg: { name: 'proddep', version: '1.2.3', @@ -101,7 +102,7 @@ t.test('flag stuff', t => { parent: root, }) - new Node({ + const dev = new Node({ pkg: { name: 'dev', version: '1.2.3', @@ -120,7 +121,7 @@ t.test('flag stuff', t => { parent: root, }) - new Node({ + const devandoptional = new Node({ pkg: { name: 'devandoptional', version: '1.2.3', @@ -139,7 +140,7 @@ t.test('flag stuff', t => { }) // a link dep depended upon by the target of a linked dep - new Link({ + const linkylinky = new Link({ pkg: { name: 'linklink', version: '1.2.3', @@ -148,8 +149,119 @@ t.test('flag stuff', t => { parent: linky.target, }) + const peeroptional = new Node({ + pkg: { + name: 'peeroptional', + version: '1.2.3', + dependencies: { optional: '' }, + }, + parent: root, + }) + calcDepFlags(root) + t.match(optional, { + extraneous: false, + dev: false, + optional: true, + devOptional: false, + peer: false, + }) + t.match(devoptional, { + extraneous: false, + dev: false, + optional: false, + devOptional: true, + peer: false, + }) + t.match(extraneous, { + extraneous: true, + }) + t.match(peer, { + extraneous: false, + dev: false, + optional: false, + devOptional: false, + peer: true, + }) + t.match(peerdep, { + extraneous: false, + dev: false, + optional: false, + devOptional: false, + peer: true, + }) + t.match(prod, { + extraneous: false, + dev: false, + optional: false, + devOptional: false, + peer: false, + }) + t.match(metapeer, { + extraneous: false, + dev: false, + optional: false, + devOptional: false, + peer: true, + }) + t.match(metapeerdep, { + extraneous: false, + dev: false, + optional: false, + devOptional: false, + peer: true, + }) + t.match(proddep, { + extraneous: false, + dev: false, + optional: false, + devOptional: false, + peer: false, + }) + t.match(dev, { + extraneous: false, + dev: true, + optional: false, + devOptional: false, + peer: false, + }) + t.match(devdep, { + extraneous: false, + dev: true, + optional: false, + devOptional: false, + peer: false, + }) + t.match(devandoptional, { + extraneous: false, + dev: true, + optional: true, + devOptional: false, + peer: false, + }) + t.match(linky, { + extraneous: false, + dev: true, + optional: false, + devOptional: false, + peer: false, + }) + t.match(linkylinky, { + extraneous: false, + dev: true, + optional: false, + devOptional: false, + peer: false, + }) + t.match(peeroptional, { + extraneous: true, + dev: false, + optional: true, + devOptional: false, + peer: true, + }) + t.matchSnapshot(printTree(root), 'after') t.end() }) @@ -219,49 +331,15 @@ t.test('set parents to not extraneous when visiting', t => { realpath: baz.path, }) - t.matchSnapshot(printTree(root), 'before') calcDepFlags(root, true) - t.matchSnapshot(printTree(root), 'after') - - t.equal(root.extraneous, false, 'root') - t.equal(asdf.extraneous, false, 'asdf') - t.equal(bar.extraneous, false, 'bar') - t.equal(baz.extraneous, false, 'baz') - t.equal(foo.extraneous, false, 'foo') - t.equal(fooLink.extraneous, false, 'fooLink') - t.equal(bazLink.extraneous, false, 'bazLink') - t.equal(root.dev, false, 'root not dev') - t.equal(asdf.dev, false, 'asdf not dev') - t.equal(bar.dev, false, 'bar not dev') - t.equal(baz.dev, false, 'baz not dev') - t.equal(foo.dev, false, 'foo not dev') - t.equal(fooLink.dev, false, 'fooLink not dev') - t.equal(bazLink.dev, false, 'bazLink not dev') - - t.equal(root.optional, false, 'root not optional') - t.equal(asdf.optional, false, 'asdf not optional') - t.equal(bar.optional, false, 'bar not optional') - t.equal(baz.optional, false, 'baz not optional') - t.equal(foo.optional, false, 'foo not optional') - t.equal(fooLink.optional, false, 'foolink not optional') - t.equal(bazLink.optional, false, 'bazlink not optional') - - t.equal(root.peer, false, 'root not peer') - t.equal(asdf.peer, false, 'asdf not peer') - t.equal(bar.peer, false, 'bar not peer') - t.equal(baz.peer, false, 'baz not peer') - t.equal(foo.peer, false, 'foo not peer') - t.equal(fooLink.peer, false, 'foolink not peer') - t.equal(bazLink.peer, false, 'bazlink not peer') - - t.equal(root.devOptional, false, 'root not devOptional') - t.equal(asdf.devOptional, false, 'asdf not devOptional') - t.equal(bar.devOptional, false, 'bar not devOptional') - t.equal(baz.devOptional, false, 'baz not devOptional') - t.equal(foo.devOptional, false, 'foo not devOptional') - t.equal(fooLink.devOptional, false, 'foolink not devOptional') - t.equal(bazLink.devOptional, false, 'bazlink not devOptional') + t.equal(root.extraneous, false, 'root is not extraneous') + t.equal(asdf.extraneous, false, 'asdf is not extraneous') + t.equal(bar.extraneous, false, 'bar is not extraneous') + t.equal(baz.extraneous, false, 'baz is not extraneous') + t.equal(foo.extraneous, false, 'foo is not extraneous') + t.equal(fooLink.extraneous, false, 'fooLink is not extraneous') + t.equal(bazLink.extraneous, false, 'bazLink is not extraneous') t.end() }) @@ -277,135 +355,3 @@ t.test('check null target in link', async t => { t.doesNotThrow(() => calcDepFlags(root, false)) t.end() }) - -t.test('peer dependency with optional dependency', t => { - // Package A depends on B, B peer-depends on C, C optionally depends on D - const root = new Node({ - path: '/project', - realpath: '/project', - pkg: { - name: 'A', - version: '1.0.0', - dependencies: { B: '1.0.0' }, - }, - }) - - const nodeB = new Node({ - parent: root, - pkg: { - name: 'B', - version: '1.0.0', - peerDependencies: { C: '1.0.0' }, - }, - }) - - const nodeC = new Node({ - parent: root, - pkg: { - name: 'C', - version: '1.0.0', - optionalDependencies: { D: '1.0.0' }, - }, - }) - - const nodeD = new Node({ - parent: root, - pkg: { - name: 'D', - version: '1.0.0', - }, - }) - - t.matchSnapshot(printTree(root), 'before calcDepFlags') - calcDepFlags(root) - t.matchSnapshot(printTree(root), 'after calcDepFlags') - - // Verify flags are set correctly - t.equal(root.dev, false, 'root not dev') - t.equal(root.optional, false, 'root not optional') - t.equal(root.peer, false, 'root not peer') - t.equal(root.extraneous, false, 'root not extraneous') - - t.equal(nodeB.dev, false, 'B not dev') - t.equal(nodeB.optional, false, 'B not optional') - t.equal(nodeB.peer, false, 'B not peer') - t.equal(nodeB.extraneous, false, 'B not extraneous') - - t.equal(nodeC.dev, false, 'C not dev') - t.equal(nodeC.optional, false, 'C not optional') - t.equal(nodeC.peer, true, 'C is peer') - t.equal(nodeC.extraneous, false, 'C not extraneous') - - // D should be optional but NOT peer - it's an optional dep of a peer dep - t.equal(nodeD.dev, false, 'D not dev') - t.equal(nodeD.optional, true, 'D is optional') - t.equal(nodeD.peer, false, 'D not peer') - t.equal(nodeD.extraneous, false, 'D not extraneous') - - t.end() -}) - -t.test('peer dependency with optional dependency - complex chain', t => { - // More complex: A depends on B, B peer-depends on C, C optionally depends on D, D depends on E - const root = new Node({ - path: '/project', - realpath: '/project', - pkg: { - name: 'A', - version: '1.0.0', - dependencies: { B: '1.0.0' }, - }, - }) - - new Node({ - parent: root, - pkg: { - name: 'B', - version: '1.0.0', - peerDependencies: { C: '1.0.0' }, - }, - }) - - const nodeC = new Node({ - parent: root, - pkg: { - name: 'C', - version: '1.0.0', - optionalDependencies: { D: '1.0.0' }, - }, - }) - - const nodeD = new Node({ - parent: root, - pkg: { - name: 'D', - version: '1.0.0', - dependencies: { E: '1.0.0' }, - }, - }) - - const nodeE = new Node({ - parent: root, - pkg: { - name: 'E', - version: '1.0.0', - }, - }) - - calcDepFlags(root) - - // C is a peer dependency - t.equal(nodeC.peer, true, 'C is peer') - t.equal(nodeC.optional, false, 'C not optional') - - // D is an optional dependency (of C), but not a peer - t.equal(nodeD.peer, false, 'D not peer') - t.equal(nodeD.optional, true, 'D is optional') - - // E is a dependency of D (which is optional), so E should also be optional - t.equal(nodeE.peer, false, 'E not peer') - t.equal(nodeE.optional, true, 'E is optional') - t.equal(nodeE.extraneous, false, 'E not extraneous') - - t.end() -}) diff --git a/workspaces/arborist/test/fixtures/index.js b/workspaces/arborist/test/fixtures/index.js index 1ec9159a2b598..af4cb5bb5439a 100644 --- a/workspaces/arborist/test/fixtures/index.js +++ b/workspaces/arborist/test/fixtures/index.js @@ -22,7 +22,7 @@ const roots = [ 'root', // This test flakes out on Apple Silicon // https://github.com/npm/cli/pull/7411 - process.platform === 'darwin' && process.arch === 'arm64' + process.platform === 'darwin' && process.arch === 'arm64' && process.env.TAP_SNAPSHOT !== '1' ? null : 'selflink', 'symlinked-node-modules/example', diff --git a/workspaces/arborist/test/reset-dep-flags.js b/workspaces/arborist/test/reset-dep-flags.js deleted file mode 100644 index 6755c743c4a62..0000000000000 --- a/workspaces/arborist/test/reset-dep-flags.js +++ /dev/null @@ -1,17 +0,0 @@ -const t = require('tap') -const resetDepFlags = require('../lib/reset-dep-flags.js') - -const tree = { - inventory: new Map([ - ['x', {}], - ['y', { extraneous: false, dev: false, devOptional: false, peer: false, optional: false }], - ]), -} - -resetDepFlags(tree) -t.match(tree, { - inventory: new Map([ - ['x', { extraneous: true, dev: true, devOptional: true, peer: true, optional: true }], - ['y', { extraneous: true, dev: true, devOptional: true, peer: true, optional: true }], - ]), -})