From ac9fde70d3bd9efaffc7f436d9e4e171994d4482 Mon Sep 17 00:00:00 2001 From: isaacs Date: Mon, 12 Oct 2020 17:06:51 -0700 Subject: [PATCH] Integration code for @npmcli/arborist@1.0.0 Updates to ERESOLVE explanation code --- lib/utils/explain-dep.js | 6 +- lib/utils/explain-eresolve.js | 40 +- .../test-lib-utils-explain-dep.js-TAP.test.js | 6 +- ...-lib-utils-explain-eresolve.js-TAP.test.js | 939 ++---- test/fixtures/eresolve-explanations.js | 2623 ++--------------- test/lib/utils/explain-dep.js | 16 +- 6 files changed, 471 insertions(+), 3159 deletions(-) diff --git a/lib/utils/explain-dep.js b/lib/utils/explain-dep.js index facab373baad6..af819f1c2f3ce 100644 --- a/lib/utils/explain-dep.js +++ b/lib/utils/explain-dep.js @@ -58,7 +58,7 @@ const explainDependents = ({ name, dependents }, depth, color) => { const max = Math.ceil(depth / 2) const messages = dependents.slice(0, max) - .map(dep => explainDependency(name, dep, depth, color)) + .map(edge => explainEdge(edge, depth, color)) // show just the names of the first 5 deps that overflowed the list if (dependents.length > max) { @@ -82,7 +82,7 @@ const explainDependents = ({ name, dependents }, depth, color) => { return str.split('\n').join('\n ') } -const explainDependency = (name, { type, from, spec }, depth, color) => { +const explainEdge = ({ name, type, from, spec }, depth, color) => { const { bold } = color ? chalk : nocolor return (type === 'prod' ? '' : `${colorType(type, color)} `) + `${bold(name)}@"${bold(spec)}" from ` + @@ -98,4 +98,4 @@ const explainFrom = (from, depth, color) => { explainDependents(from, depth - 1, color) } -module.exports = { explainNode, printNode } +module.exports = { explainNode, printNode, explainEdge } diff --git a/lib/utils/explain-eresolve.js b/lib/utils/explain-eresolve.js index 51a856f6cb923..07a63c240f8d9 100644 --- a/lib/utils/explain-eresolve.js +++ b/lib/utils/explain-eresolve.js @@ -8,47 +8,23 @@ const npm = require('../npm.js') const { writeFileSync } = require('fs') const { resolve } = require('path') -const { explainNode, printNode } = require('./explain-dep.js') +const { explainEdge, explainNode, printNode } = require('./explain-dep.js') // expl is an explanation object that comes from Arborist. It looks like: -// { -// dep: { -// whileInstalling: { -// explanation of the thing being installed when we hit the conflict -// }, -// name, -// version, -// dependents: [ -// things depending on this node (ie, reason for inclusion) -// { name, version, dependents }, ... -// ] -// } -// current: { -// explanation of the current node that already was in the tree conflicting -// } -// peerConflict: { -// explanation of the peer dependency that couldn't be added, or null -// } -// fixWithForce: Boolean - can we use --force to push through this? -// type: type of the edge that couldn't be met -// isPeer: true if the edge that couldn't be met is a peer dependency -// } // Depth is how far we want to want to descend into the object making a report. // The full report (ie, depth=Infinity) is always written to the cache folder // at ${cache}/eresolve-report.txt along with full json. const explainEresolve = (expl, color, depth) => { - const { dep, current, peerConflict } = expl + const { edge, current, peerConflict } = expl const out = [] - /* istanbul ignore else - should always have this for ERESOLVEs */ - if (dep.whileInstalling) { - out.push('While resolving: ' + printNode(dep.whileInstalling, color)) + if (edge.from && edge.from.whileInstalling) { + out.push('While resolving: ' + printNode(edge.from.whileInstalling, color)) } out.push('Found: ' + explainNode(current, depth, color)) - - out.push('\nCould not add conflicting dependency: ' + - explainNode(dep, depth, color)) + out.push('\nCould not resolve dependency:\n' + + explainEdge(edge, depth, color)) if (peerConflict) { const heading = '\nConflicting peer dependency:' @@ -63,9 +39,9 @@ const explainEresolve = (expl, color, depth) => { const report = (expl, depth = 4) => { const fullReport = resolve(npm.cache, 'eresolve-report.txt') - const orForce = expl.fixWithForce ? ' or --force' : '' + const orNoStrict = expl.strictPeerDeps ? '--no-strict-peer-deps, ' : '' const fix = `Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps${orForce} +this command with ${orNoStrict}--force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution.` writeFileSync(fullReport, `# npm resolution error report diff --git a/tap-snapshots/test-lib-utils-explain-dep.js-TAP.test.js b/tap-snapshots/test-lib-utils-explain-dep.js-TAP.test.js index 658cecb1ca68c..48f84e5111821 100644 --- a/tap-snapshots/test-lib-utils-explain-dep.js-TAP.test.js +++ b/tap-snapshots/test-lib-utils-explain-dep.js-TAP.test.js @@ -77,7 +77,7 @@ exports[`test/lib/utils/explain-dep.js TAP manyDeps > explain color deep 1`] = ` prod-dep@"1.x" from the root project optional manydep@"1.x" from optdep@1.0.0 optional node_modules/optdep - optdep optdep@"1.0.0" from the root project + optional optdep@"1.0.0" from the root project manydep@"1.0.x" from extra-neos@1337.420.69-lol extraneous node_modules/extra-neos dev manydep@"*" from deep-dev@2.3.4 dev @@ -114,13 +114,13 @@ manydep@1.0.0 exports[`test/lib/utils/explain-dep.js TAP optional > explain color deep 1`] = ` optdep@1.0.0 optional node_modules/optdep - optdep optdep@"1.0.0" from the root project + optional optdep@"1.0.0" from the root project ` exports[`test/lib/utils/explain-dep.js TAP optional > explain nocolor shallow 1`] = ` optdep@1.0.0 optional node_modules/optdep - optdep optdep@"1.0.0" from the root project + optional optdep@"1.0.0" from the root project ` exports[`test/lib/utils/explain-dep.js TAP optional > print color 1`] = ` diff --git a/tap-snapshots/test-lib-utils-explain-eresolve.js-TAP.test.js b/tap-snapshots/test-lib-utils-explain-eresolve.js-TAP.test.js index 716d82ced382b..87dcb861c633f 100644 --- a/tap-snapshots/test-lib-utils-explain-eresolve.js-TAP.test.js +++ b/tap-snapshots/test-lib-utils-explain-eresolve.js-TAP.test.js @@ -5,17 +5,121 @@ * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' +exports[`test/lib/utils/explain-eresolve.js TAP chain-conflict > explain with color 1`] = ` +While resolving: project@1.2.3 +Found: @isaacs/testing-peer-dep-conflict-chain-d@2.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-d + @isaacs/testing-peer-dep-conflict-chain-d@"2" from the root project + +Could not resolve dependency: +peer @isaacs/testing-peer-dep-conflict-chain-d@"1" from @isaacs/testing-peer-dep-conflict-chain-c@1.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-c + @isaacs/testing-peer-dep-conflict-chain-c@"1" from the root project +` + +exports[`test/lib/utils/explain-eresolve.js TAP chain-conflict > explain with no color, depth of 6 1`] = ` +While resolving: project@1.2.3 +Found: @isaacs/testing-peer-dep-conflict-chain-d@2.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-d + @isaacs/testing-peer-dep-conflict-chain-d@"2" from the root project + +Could not resolve dependency: +peer @isaacs/testing-peer-dep-conflict-chain-d@"1" from @isaacs/testing-peer-dep-conflict-chain-c@1.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-c + @isaacs/testing-peer-dep-conflict-chain-c@"1" from the root project +` + +exports[`test/lib/utils/explain-eresolve.js TAP chain-conflict > report 1`] = ` +# npm resolution error report + +\${TIME} + +While resolving: project@1.2.3 +Found: @isaacs/testing-peer-dep-conflict-chain-d@2.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-d + @isaacs/testing-peer-dep-conflict-chain-d@"2" from the root project + +Could not resolve dependency: +peer @isaacs/testing-peer-dep-conflict-chain-d@"1" from @isaacs/testing-peer-dep-conflict-chain-c@1.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-c + @isaacs/testing-peer-dep-conflict-chain-c@"1" from the root project + +Fix the upstream dependency conflict, or retry +this command with --force, or --legacy-peer-deps +to accept an incorrect (and potentially broken) dependency resolution. + +Raw JSON explanation object: + +{ + "name": "chain-conflict", + "json": true +} + +` + +exports[`test/lib/utils/explain-eresolve.js TAP chain-conflict > report with color 1`] = ` +While resolving: project@1.2.3 +Found: @isaacs/testing-peer-dep-conflict-chain-d@2.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-d + @isaacs/testing-peer-dep-conflict-chain-d@"2" from the root project + +Could not resolve dependency: +peer @isaacs/testing-peer-dep-conflict-chain-d@"1" from @isaacs/testing-peer-dep-conflict-chain-c@1.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-c + @isaacs/testing-peer-dep-conflict-chain-c@"1" from the root project + +Fix the upstream dependency conflict, or retry +this command with --force, or --legacy-peer-deps +to accept an incorrect (and potentially broken) dependency resolution. + +See \${REPORT} for a full report. +` + +exports[`test/lib/utils/explain-eresolve.js TAP chain-conflict > report with color, depth only 2 1`] = ` +While resolving: project@1.2.3 +Found: @isaacs/testing-peer-dep-conflict-chain-d@2.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-d + @isaacs/testing-peer-dep-conflict-chain-d@"2" from the root project + +Could not resolve dependency: +peer @isaacs/testing-peer-dep-conflict-chain-d@"1" from @isaacs/testing-peer-dep-conflict-chain-c@1.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-c + @isaacs/testing-peer-dep-conflict-chain-c@"1" from the root project + +Fix the upstream dependency conflict, or retry +this command with --force, or --legacy-peer-deps +to accept an incorrect (and potentially broken) dependency resolution. + +See \${REPORT} for a full report. +` + +exports[`test/lib/utils/explain-eresolve.js TAP chain-conflict > report with no color, depth of 6 1`] = ` +While resolving: project@1.2.3 +Found: @isaacs/testing-peer-dep-conflict-chain-d@2.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-d + @isaacs/testing-peer-dep-conflict-chain-d@"2" from the root project + +Could not resolve dependency: +peer @isaacs/testing-peer-dep-conflict-chain-d@"1" from @isaacs/testing-peer-dep-conflict-chain-c@1.0.0 +node_modules/@isaacs/testing-peer-dep-conflict-chain-c + @isaacs/testing-peer-dep-conflict-chain-c@"1" from the root project + +Fix the upstream dependency conflict, or retry +this command with --force, or --legacy-peer-deps +to accept an incorrect (and potentially broken) dependency resolution. + +See \${REPORT} for a full report. +` + exports[`test/lib/utils/explain-eresolve.js TAP cycleNested > explain with color 1`] = ` -While resolving: @isaacs/peer-dep-cycle-a@1.0.0 Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-b@1.0.0 -node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a - @isaacs/peer-dep-cycle-a@"1.x" from the root project +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 +node_modules/@isaacs/peer-dep-cycle-a + @isaacs/peer-dep-cycle-a@"1.x" from the root project Conflicting peer dependency: @isaacs/peer-dep-cycle-c@1.0.0 node_modules/@isaacs/peer-dep-cycle-c @@ -26,16 +130,14 @@ Conflicting peer dependency: @isaacs/peer-dep-cycle-c@1.0.0[2 ` exports[`test/lib/utils/explain-eresolve.js TAP cycleNested > explain with no color, depth of 6 1`] = ` -While resolving: @isaacs/peer-dep-cycle-a@1.0.0 Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-b@1.0.0 -node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a - @isaacs/peer-dep-cycle-a@"1.x" from the root project +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 +node_modules/@isaacs/peer-dep-cycle-a + @isaacs/peer-dep-cycle-a@"1.x" from the root project Conflicting peer dependency: @isaacs/peer-dep-cycle-c@1.0.0 node_modules/@isaacs/peer-dep-cycle-c @@ -51,16 +153,14 @@ exports[`test/lib/utils/explain-eresolve.js TAP cycleNested > report 1`] = ` \${TIME} -While resolving: @isaacs/peer-dep-cycle-a@1.0.0 Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-b@1.0.0 -node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a - @isaacs/peer-dep-cycle-a@"1.x" from the root project +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 +node_modules/@isaacs/peer-dep-cycle-a + @isaacs/peer-dep-cycle-a@"1.x" from the root project Conflicting peer dependency: @isaacs/peer-dep-cycle-c@1.0.0 node_modules/@isaacs/peer-dep-cycle-c @@ -71,7 +171,7 @@ node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-a@"1.x" from the root project Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. Raw JSON explanation object: @@ -84,16 +184,14 @@ Raw JSON explanation object: ` exports[`test/lib/utils/explain-eresolve.js TAP cycleNested > report with color 1`] = ` -While resolving: @isaacs/peer-dep-cycle-a@1.0.0 Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-b@1.0.0 -node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a - @isaacs/peer-dep-cycle-a@"1.x" from the root project +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 +node_modules/@isaacs/peer-dep-cycle-a + @isaacs/peer-dep-cycle-a@"1.x" from the root project Conflicting peer dependency: @isaacs/peer-dep-cycle-c@1.0.0 node_modules/@isaacs/peer-dep-cycle-c @@ -104,23 +202,21 @@ Conflicting peer dependency: @isaacs/peer-dep-cycle-c@1.0.0[2 @isaacs/peer-dep-cycle-a@"1.x" from the root project Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. See \${REPORT} for a full report. ` exports[`test/lib/utils/explain-eresolve.js TAP cycleNested > report with color, depth only 2 1`] = ` -While resolving: @isaacs/peer-dep-cycle-a@1.0.0 Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-b@1.0.0 -node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a - @isaacs/peer-dep-cycle-a@"1.x" from the root project +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 +node_modules/@isaacs/peer-dep-cycle-a + @isaacs/peer-dep-cycle-a@"1.x" from the root project Conflicting peer dependency: @isaacs/peer-dep-cycle-c@1.0.0 node_modules/@isaacs/peer-dep-cycle-c @@ -130,23 +226,21 @@ Conflicting peer dependency: @isaacs/peer-dep-cycle-c@1.0.0[2 node_modules/@isaacs/peer-dep-cycle-a Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. See \${REPORT} for a full report. ` exports[`test/lib/utils/explain-eresolve.js TAP cycleNested > report with no color, depth of 6 1`] = ` -While resolving: @isaacs/peer-dep-cycle-a@1.0.0 Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-b@1.0.0 -node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a - @isaacs/peer-dep-cycle-a@"1.x" from the root project +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 +node_modules/@isaacs/peer-dep-cycle-a + @isaacs/peer-dep-cycle-a@"1.x" from the root project Conflicting peer dependency: @isaacs/peer-dep-cycle-c@1.0.0 node_modules/@isaacs/peer-dep-cycle-c @@ -157,86 +251,50 @@ node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-a@"1.x" from the root project Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. See \${REPORT} for a full report. ` exports[`test/lib/utils/explain-eresolve.js TAP gatsby > explain with color 1`] = ` -While resolving: gatsby-interface@0.0.166 -Found: react@16.13.1 -node_modules/react - peer react@"^16.4.2" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - 26 more (react-dom, @reach/router, gatsby-cli, gatsby-link, ...) - -Could not add conflicting dependency: react@16.8.1 -node_modules/react - peer react@"16.8.1" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes +While resolving: gatsby-recipes@0.2.31 +Found: ink@3.0.0-7 +node_modules/ink + dev ink@"next" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes + gatsby-recipes@"^0.2.31" from gatsby-cli@2.12.107 + node_modules/gatsby-cli + +Could not resolve dependency: +peer ink@">=2.0.0" from ink-box@1.0.0 +node_modules/ink-box + ink-box@"^1.0.0" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes ` exports[`test/lib/utils/explain-eresolve.js TAP gatsby > explain with no color, depth of 6 1`] = ` -While resolving: gatsby-interface@0.0.166 -Found: react@16.13.1 -node_modules/react - peer react@"^16.4.2" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.13.1" from react-dom@16.13.1 - node_modules/react-dom - peer react-dom@"^16.4.2" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react-dom@"15.x || 16.x || 16.4.0-alpha.0911da3" from @reach/router@1.3.4 - node_modules/@reach/router - @reach/router@"^1.3.4" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @reach/router@"^1.3.3" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - 1 more (gatsby-react-router-scroll) - peer react-dom@"^16.4.2" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - 2 more (gatsby-react-router-scroll, react-hot-loader) - peer react@"15.x || 16.x || 16.4.0-alpha.0911da3" from @reach/router@1.3.4 - node_modules/@reach/router - @reach/router@"^1.3.4" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @reach/router@"^1.3.3" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 +While resolving: gatsby-recipes@0.2.31 +Found: ink@3.0.0-7 +node_modules/ink + dev ink@"next" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes + gatsby-recipes@"^0.2.31" from gatsby-cli@2.12.107 + node_modules/gatsby-cli + gatsby-cli@"^2.12.107" from gatsby@2.24.74 node_modules/gatsby gatsby@"" from the root project - peer @reach/router@"^1.0.0" from gatsby-react-router-scroll@3.0.12 - node_modules/gatsby-react-router-scroll - gatsby-react-router-scroll@"^3.0.12" from gatsby@2.24.53 + +Could not resolve dependency: +peer ink@">=2.0.0" from ink-box@1.0.0 +node_modules/ink-box + ink-box@"^1.0.0" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes + gatsby-recipes@"^0.2.31" from gatsby-cli@2.12.107 + node_modules/gatsby-cli + gatsby-cli@"^2.12.107" from gatsby@2.24.74 node_modules/gatsby gatsby@"" from the root project - 24 more (gatsby-cli, gatsby-link, gatsby-react-router-scroll, ...) - -Could not add conflicting dependency: react@16.8.1 -node_modules/react - peer react@"16.8.1" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project ` exports[`test/lib/utils/explain-eresolve.js TAP gatsby > report 1`] = ` @@ -244,439 +302,30 @@ exports[`test/lib/utils/explain-eresolve.js TAP gatsby > report 1`] = ` \${TIME} -While resolving: gatsby-interface@0.0.166 -Found: react@16.13.1 -node_modules/react - peer react@"^16.4.2" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.13.1" from react-dom@16.13.1 - node_modules/react-dom - peer react-dom@"^16.4.2" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react-dom@"15.x || 16.x || 16.4.0-alpha.0911da3" from @reach/router@1.3.4 - node_modules/@reach/router - @reach/router@"^1.3.4" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @reach/router@"^1.3.3" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @reach/router@"^1.0.0" from gatsby-react-router-scroll@3.0.12 - node_modules/gatsby-react-router-scroll - gatsby-react-router-scroll@"^3.0.12" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react-dom@"^16.4.2" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react-dom@"^16.4.2" from gatsby-react-router-scroll@3.0.12 - node_modules/gatsby-react-router-scroll - gatsby-react-router-scroll@"^3.0.12" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react-dom@"^15.0.0 || ^16.0.0" from react-hot-loader@4.12.21 - node_modules/react-hot-loader - react-hot-loader@"^4.12.21" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"15.x || 16.x || 16.4.0-alpha.0911da3" from @reach/router@1.3.4 - node_modules/@reach/router - @reach/router@"^1.3.4" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @reach/router@"^1.3.3" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @reach/router@"^1.0.0" from gatsby-react-router-scroll@3.0.12 - node_modules/gatsby-react-router-scroll - gatsby-react-router-scroll@"^3.0.12" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - react@"^16.8.0" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.4.2" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.4.2" from gatsby-react-router-scroll@3.0.12 - node_modules/gatsby-react-router-scroll - gatsby-react-router-scroll@"^3.0.12" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^15.0.0 || ^16.0.0" from react-hot-loader@4.12.21 - node_modules/react-hot-loader - react-hot-loader@"^4.12.21" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^0.14.0 || ^15.0.0 || ^16.0.0" from create-react-context@0.3.0 - node_modules/create-react-context - create-react-context@"0.3.0" from @reach/router@1.3.4 - node_modules/@reach/router - @reach/router@"^1.3.4" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @reach/router@"^1.3.3" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @reach/router@"^1.0.0" from gatsby-react-router-scroll@3.0.12 - node_modules/gatsby-react-router-scroll - gatsby-react-router-scroll@"^3.0.12" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.12.0" from gatsby-recipes@0.2.20 +While resolving: gatsby-recipes@0.2.31 +Found: ink@3.0.0-7 +node_modules/ink + dev ink@"next" from gatsby-recipes@0.2.31 node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 + gatsby-recipes@"^0.2.31" from gatsby-cli@2.12.107 node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 + gatsby-cli@"^2.12.107" from gatsby@2.24.74 node_modules/gatsby gatsby@"" from the root project - peer react@">=16.8.0" from ink@2.7.1 - node_modules/ink - ink@"^2.7.1" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer ink@"^2.0.0" from ink-spinner@3.1.0 - node_modules/ink-spinner - ink-spinner@"^3.1.0" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer ink@">=2.0.0" from ink-box@1.0.0 - node_modules/ink-box - ink-box@"^1.0.0" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.8.2" from ink-spinner@3.1.0 - node_modules/ink-spinner - ink-spinner@"^3.1.0" from gatsby-cli@2.12.91 + +Could not resolve dependency: +peer ink@">=2.0.0" from ink-box@1.0.0 +node_modules/ink-box + ink-box@"^1.0.0" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes + gatsby-recipes@"^0.2.31" from gatsby-cli@2.12.107 node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 + gatsby-cli@"^2.12.107" from gatsby@2.24.74 node_modules/gatsby gatsby@"" from the root project - peer react@">=16.3.0" from @emotion/core@10.0.35 - node_modules/@emotion/core - @emotion/core@"^10.0.14" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @emotion/core@"^10.0.27" from @emotion/styled@10.0.27 - node_modules/@emotion/styled - @emotion/styled@"^10.0.14" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @emotion/styled@"^10.0.14" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @emotion/core@"^10.0.14" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @emotion/core@"^10.0.28" from @emotion/styled-base@10.0.31 - node_modules/@emotion/styled-base - @emotion/styled-base@"^10.0.27" from @emotion/styled@10.0.27 - node_modules/@emotion/styled - @emotion/styled@"^10.0.14" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @emotion/styled@"^10.0.14" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@">=16.3.0" from @emotion/styled@10.0.27 - node_modules/@emotion/styled - @emotion/styled@"^10.0.14" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @emotion/styled@"^10.0.14" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.13.1" from @mdx-js/react@2.0.0-next.7 - node_modules/@mdx-js/react - @mdx-js/react@"^2.0.0-next.4" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - @mdx-js/react@"^2.0.0-next.7" from @mdx-js/runtime@2.0.0-next.7 - node_modules/@mdx-js/runtime - @mdx-js/runtime@"^2.0.0-next.4" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.13.1" from @mdx-js/runtime@2.0.0-next.7 - node_modules/@mdx-js/runtime - @mdx-js/runtime@"^2.0.0-next.4" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@">=16.8.0" from formik@2.1.5 - node_modules/formik - formik@"^2.0.8" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer formik@"^2.0.8" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.4.2" from gatsby@2.6.0 - node_modules/gatsby-recipes/node_modules/gatsby - peer gatsby@"2.6.0" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.0.0" from react-dom@16.8.1 - node_modules/gatsby-recipes/node_modules/react-dom - peer react-dom@"16.8.1" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react-dom@"^16.4.2" from gatsby@2.6.0 - node_modules/gatsby-recipes/node_modules/gatsby - peer gatsby@"2.6.0" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react-dom@"^0.14.0 || ^15.0.0 || ^16.0.0" from gatsby-react-router-scroll@2.3.1 - node_modules/gatsby-recipes/node_modules/gatsby-react-router-scroll - gatsby-react-router-scroll@"^2.0.7" from gatsby@2.6.0 - node_modules/gatsby-recipes/node_modules/gatsby - peer gatsby@"2.6.0" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"*" from react-icons@3.11.0 - node_modules/react-icons - react-icons@"^3.0.1" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react-icons@"^3.2.1" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@">=16.8.0" from ink-box@1.0.0 - node_modules/ink-box - ink-box@"^1.0.0" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^0.14.0 || ^15.0.0 || ^16.0.0" from react-circular-progressbar@2.0.3 - node_modules/react-circular-progressbar - react-circular-progressbar@"^2.0.0" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.13.1" from react-reconciler@0.25.1 - node_modules/react-reconciler - react-reconciler@"^0.25.1" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@">= 16.8.0" from urql@1.10.0 - node_modules/urql - urql@"^1.9.7" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@">=16.3.0" from @emotion/styled-base@10.0.31 - node_modules/@emotion/styled-base - @emotion/styled-base@"^10.0.27" from @emotion/styled@10.0.27 - node_modules/@emotion/styled - @emotion/styled@"^10.0.14" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @emotion/styled@"^10.0.14" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.0.0" from react-reconciler@0.24.0 - node_modules/ink/node_modules/react-reconciler - react-reconciler@"^0.24.0" from ink@2.7.1 - node_modules/ink - ink@"^2.7.1" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer ink@"^2.0.0" from ink-spinner@3.1.0 - node_modules/ink-spinner - ink-spinner@"^3.1.0" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer ink@">=2.0.0" from ink-box@1.0.0 - node_modules/ink-box - ink-box@"^1.0.0" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^0.14.0 || ^15.0.0 || ^16.0.0" from gatsby-react-router-scroll@2.3.1 - node_modules/gatsby-recipes/node_modules/gatsby-react-router-scroll - gatsby-react-router-scroll@"^2.0.7" from gatsby@2.6.0 - node_modules/gatsby-recipes/node_modules/gatsby - peer gatsby@"2.6.0" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.13.1" from @mdx-js/react@1.6.16 - node_modules/gatsby-recipes/node_modules/gatsby-interface/node_modules/@mdx-js/react - @mdx-js/react@"^1.5.2" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - -Could not add conflicting dependency: react@16.8.1 -node_modules/react - peer react@"16.8.1" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps or --force +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. Raw JSON explanation object: @@ -689,127 +338,81 @@ Raw JSON explanation object: ` exports[`test/lib/utils/explain-eresolve.js TAP gatsby > report with color 1`] = ` -While resolving: gatsby-interface@0.0.166 -Found: react@16.13.1 -node_modules/react - peer react@"^16.4.2" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.13.1" from react-dom@16.13.1 - node_modules/react-dom - peer react-dom@"^16.4.2" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react-dom@"15.x || 16.x || 16.4.0-alpha.0911da3" from @reach/router@1.3.4 - node_modules/@reach/router - @reach/router@"^1.3.4" from gatsby@2.24.53 +While resolving: gatsby-recipes@0.2.31 +Found: ink@3.0.0-7 +node_modules/ink + dev ink@"next" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes + gatsby-recipes@"^0.2.31" from gatsby-cli@2.12.107 + node_modules/gatsby-cli + gatsby-cli@"^2.12.107" from gatsby@2.24.74 node_modules/gatsby gatsby@"" from the root project - 2 more (gatsby-link, gatsby-react-router-scroll) - 3 more (gatsby-link, gatsby-react-router-scroll, react-hot-loader) - 25 more (@reach/router, gatsby-cli, gatsby-link, ...) - -Could not add conflicting dependency: react@16.8.1 -node_modules/react - peer react@"16.8.1" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby + +Could not resolve dependency: +peer ink@">=2.0.0" from ink-box@1.0.0 +node_modules/ink-box + ink-box@"^1.0.0" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes + gatsby-recipes@"^0.2.31" from gatsby-cli@2.12.107 + node_modules/gatsby-cli + gatsby-cli@"^2.12.107" from gatsby@2.24.74 + node_modules/gatsby Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps or --force +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. See \${REPORT} for a full report. ` exports[`test/lib/utils/explain-eresolve.js TAP gatsby > report with color, depth only 2 1`] = ` -While resolving: gatsby-interface@0.0.166 -Found: react@16.13.1 -node_modules/react - peer react@"^16.4.2" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - 26 more (react-dom, @reach/router, gatsby-cli, gatsby-link, ...) - -Could not add conflicting dependency: react@16.8.1 -node_modules/react - peer react@"16.8.1" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes +While resolving: gatsby-recipes@0.2.31 +Found: ink@3.0.0-7 +node_modules/ink + dev ink@"next" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes + gatsby-recipes@"^0.2.31" from gatsby-cli@2.12.107 + node_modules/gatsby-cli + +Could not resolve dependency: +peer ink@">=2.0.0" from ink-box@1.0.0 +node_modules/ink-box + ink-box@"^1.0.0" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps or --force +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. See \${REPORT} for a full report. ` exports[`test/lib/utils/explain-eresolve.js TAP gatsby > report with no color, depth of 6 1`] = ` -While resolving: gatsby-interface@0.0.166 -Found: react@16.13.1 -node_modules/react - peer react@"^16.4.2" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react@"^16.13.1" from react-dom@16.13.1 - node_modules/react-dom - peer react-dom@"^16.4.2" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer react-dom@"15.x || 16.x || 16.4.0-alpha.0911da3" from @reach/router@1.3.4 - node_modules/@reach/router - @reach/router@"^1.3.4" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @reach/router@"^1.3.3" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - 1 more (gatsby-react-router-scroll) - peer react-dom@"^16.4.2" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - 2 more (gatsby-react-router-scroll, react-hot-loader) - peer react@"15.x || 16.x || 16.4.0-alpha.0911da3" from @reach/router@1.3.4 - node_modules/@reach/router - @reach/router@"^1.3.4" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project - peer @reach/router@"^1.3.3" from gatsby-link@2.4.13 - node_modules/gatsby-link - gatsby-link@"^2.4.13" from gatsby@2.24.53 +While resolving: gatsby-recipes@0.2.31 +Found: ink@3.0.0-7 +node_modules/ink + dev ink@"next" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes + gatsby-recipes@"^0.2.31" from gatsby-cli@2.12.107 + node_modules/gatsby-cli + gatsby-cli@"^2.12.107" from gatsby@2.24.74 node_modules/gatsby gatsby@"" from the root project - peer @reach/router@"^1.0.0" from gatsby-react-router-scroll@3.0.12 - node_modules/gatsby-react-router-scroll - gatsby-react-router-scroll@"^3.0.12" from gatsby@2.24.53 + +Could not resolve dependency: +peer ink@">=2.0.0" from ink-box@1.0.0 +node_modules/ink-box + ink-box@"^1.0.0" from gatsby-recipes@0.2.31 + node_modules/gatsby-recipes + gatsby-recipes@"^0.2.31" from gatsby-cli@2.12.107 + node_modules/gatsby-cli + gatsby-cli@"^2.12.107" from gatsby@2.24.74 node_modules/gatsby gatsby@"" from the root project - 24 more (gatsby-cli, gatsby-link, gatsby-react-router-scroll, ...) - -Could not add conflicting dependency: react@16.8.1 -node_modules/react - peer react@"16.8.1" from gatsby-interface@0.0.166 - node_modules/gatsby-recipes/node_modules/gatsby-interface - gatsby-interface@"^0.0.166" from gatsby-recipes@0.2.20 - node_modules/gatsby-recipes - gatsby-recipes@"^0.2.20" from gatsby-cli@2.12.91 - node_modules/gatsby-cli - gatsby-cli@"^2.12.91" from gatsby@2.24.53 - node_modules/gatsby - gatsby@"" from the root project Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps or --force +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. See \${REPORT} for a full report. @@ -821,12 +424,11 @@ Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-c@1.0.0 -node_modules/@isaacs/peer-dep-cycle-c - peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 - node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 +node_modules/@isaacs/peer-dep-cycle-b + peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 + node_modules/@isaacs/peer-dep-cycle-a ` exports[`test/lib/utils/explain-eresolve.js TAP withShrinkwrap > explain with no color, depth of 6 1`] = ` @@ -835,13 +437,12 @@ Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-c@1.0.0 -node_modules/@isaacs/peer-dep-cycle-c - peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 - node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a - @isaacs/peer-dep-cycle-a@"1.x" from the root project +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 +node_modules/@isaacs/peer-dep-cycle-b + peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 + node_modules/@isaacs/peer-dep-cycle-a + @isaacs/peer-dep-cycle-a@"1.x" from the root project ` exports[`test/lib/utils/explain-eresolve.js TAP withShrinkwrap > report 1`] = ` @@ -854,16 +455,15 @@ Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-c@1.0.0 -node_modules/@isaacs/peer-dep-cycle-c - peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 - node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a - @isaacs/peer-dep-cycle-a@"1.x" from the root project +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 +node_modules/@isaacs/peer-dep-cycle-b + peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 + node_modules/@isaacs/peer-dep-cycle-a + @isaacs/peer-dep-cycle-a@"1.x" from the root project Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps or --force +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. Raw JSON explanation object: @@ -881,16 +481,15 @@ Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-c@1.0.0 -node_modules/@isaacs/peer-dep-cycle-c - peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 - node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a - @isaacs/peer-dep-cycle-a@"1.x" from the root project +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 +node_modules/@isaacs/peer-dep-cycle-b + peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 + node_modules/@isaacs/peer-dep-cycle-a + @isaacs/peer-dep-cycle-a@"1.x" from the root project Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps or --force +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. See \${REPORT} for a full report. @@ -902,15 +501,14 @@ Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-c@1.0.0 -node_modules/@isaacs/peer-dep-cycle-c - peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 - node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 +node_modules/@isaacs/peer-dep-cycle-b + peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 + node_modules/@isaacs/peer-dep-cycle-a Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps or --force +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. See \${REPORT} for a full report. @@ -922,16 +520,15 @@ Found: @isaacs/peer-dep-cycle-c@2.0.0 node_modules/@isaacs/peer-dep-cycle-c @isaacs/peer-dep-cycle-c@"2.x" from the root project -Could not add conflicting dependency: @isaacs/peer-dep-cycle-c@1.0.0 -node_modules/@isaacs/peer-dep-cycle-c - peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 - node_modules/@isaacs/peer-dep-cycle-b - peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 - node_modules/@isaacs/peer-dep-cycle-a - @isaacs/peer-dep-cycle-a@"1.x" from the root project +Could not resolve dependency: +peer @isaacs/peer-dep-cycle-c@"1" from @isaacs/peer-dep-cycle-b@1.0.0 +node_modules/@isaacs/peer-dep-cycle-b + peer @isaacs/peer-dep-cycle-b@"1" from @isaacs/peer-dep-cycle-a@1.0.0 + node_modules/@isaacs/peer-dep-cycle-a + @isaacs/peer-dep-cycle-a@"1.x" from the root project Fix the upstream dependency conflict, or retry -this command with --legacy-peer-deps or --force +this command with --no-strict-peer-deps, --force, or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. See \${REPORT} for a full report. diff --git a/test/fixtures/eresolve-explanations.js b/test/fixtures/eresolve-explanations.js index 3b1cd41a25ebe..b59671d200f21 100644 --- a/test/fixtures/eresolve-explanations.js +++ b/test/fixtures/eresolve-explanations.js @@ -3,29 +3,23 @@ module.exports = { cycleNested: { code: 'ERESOLVE', - dep: { + edge: { + type: 'peer', name: '@isaacs/peer-dep-cycle-b', - version: '1.0.0', - whileInstalling: { name: '@isaacs/peer-dep-cycle-a', version: '1.0.0' }, - location: 'node_modules/@isaacs/peer-dep-cycle-b', - dependents: [ - { - type: 'peer', - spec: '1', - from: { + spec: '1', + from: { + name: '@isaacs/peer-dep-cycle-a', + version: '1.0.0', + location: 'node_modules/@isaacs/peer-dep-cycle-a', + dependents: [ + { + type: 'prod', name: '@isaacs/peer-dep-cycle-a', - version: '1.0.0', - location: 'node_modules/@isaacs/peer-dep-cycle-a', - dependents: [ - { - type: 'prod', - spec: '1.x', - from: { location: '/some/project' } - } - ] + spec: '1.x', + from: { location: '/some/project' } } - } - ] + ] + } }, current: { name: '@isaacs/peer-dep-cycle-c', @@ -34,6 +28,7 @@ module.exports = { dependents: [ { type: 'prod', + name: '@isaacs/peer-dep-cycle-c', spec: '2.x', from: { location: '/some/project' } } @@ -47,6 +42,7 @@ module.exports = { dependents: [ { type: 'peer', + name: '@isaacs/peer-dep-cycle-c', spec: '1', from: { name: '@isaacs/peer-dep-cycle-b', @@ -56,6 +52,7 @@ module.exports = { dependents: [ { type: 'peer', + name: '@isaacs/peer-dep-cycle-b', spec: '1', from: { name: '@isaacs/peer-dep-cycle-a', @@ -64,6 +61,7 @@ module.exports = { dependents: [ { type: 'prod', + name: '@isaacs/peer-dep-cycle-a', spec: '1.x', from: { location: '/some/project' } } @@ -75,48 +73,42 @@ module.exports = { } ] }, - fixWithForce: false, - type: 'peer', - isPeer: true + strictPeerDeps: true, }, withShrinkwrap: { code: 'ERESOLVE', - dep: { + edge: { + type: 'peer', name: '@isaacs/peer-dep-cycle-c', - version: '1.0.0', - whileInstalling: { name: '@isaacs/peer-dep-cycle-b', version: '1.0.0' }, - location: 'node_modules/@isaacs/peer-dep-cycle-c', - dependents: [ - { - type: 'peer', - spec: '1', - error: 'INVALID', - from: { + spec: '1', + error: 'INVALID', + from: { + name: '@isaacs/peer-dep-cycle-b', + version: '1.0.0', + location: 'node_modules/@isaacs/peer-dep-cycle-b', + whileInstalling: { name: '@isaacs/peer-dep-cycle-b', version: '1.0.0' }, + dependents: [ + { + type: 'peer', name: '@isaacs/peer-dep-cycle-b', - version: '1.0.0', - location: 'node_modules/@isaacs/peer-dep-cycle-b', - dependents: [ - { - type: 'peer', - spec: '1', - from: { + spec: '1', + from: { + name: '@isaacs/peer-dep-cycle-a', + version: '1.0.0', + location: 'node_modules/@isaacs/peer-dep-cycle-a', + dependents: [ + { + type: 'prod', name: '@isaacs/peer-dep-cycle-a', - version: '1.0.0', - location: 'node_modules/@isaacs/peer-dep-cycle-a', - dependents: [ - { - type: 'prod', - spec: '1.x', - from: { location: '/some/project' } - } - ] + spec: '1.x', + from: { location: '/some/project' } } - } - ] + ] + } } - } - ] + ] + } }, current: { name: '@isaacs/peer-dep-cycle-c', @@ -125,295 +117,108 @@ module.exports = { dependents: [ { type: 'prod', + name: '@isaacs/peer-dep-cycle-c', spec: '2.x', from: { location: '/some/project' } } ] }, - fixWithForce: true, - type: 'peer' + strictPeerDeps: true, }, - gatsby: { + 'chain-conflict': { code: 'ERESOLVE', - dep: { - name: 'react', - version: '16.8.1', + current: { + name: '@isaacs/testing-peer-dep-conflict-chain-d', + version: '2.0.0', whileInstalling: { - name: 'gatsby-interface', - version: '0.0.166' + name: 'project', + version: '1.2.3', + path: '/some/project' }, - location: 'node_modules/react', + location: 'node_modules/@isaacs/testing-peer-dep-conflict-chain-d', dependents: [ { - type: 'peer', - spec: '16.8.1', - error: 'INVALID', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } + type: 'prod', + name: '@isaacs/testing-peer-dep-conflict-chain-d', + spec: '2', + from: { location: '/some/project' } } ] }, + edge: { + type: 'peer', + name: '@isaacs/testing-peer-dep-conflict-chain-d', + spec: '1', + error: 'INVALID', + from: { + name: '@isaacs/testing-peer-dep-conflict-chain-c', + version: '1.0.0', + whileInstalling: { + name: 'project', + version: '1.2.3', + path: '/some/project' + }, + location: 'node_modules/@isaacs/testing-peer-dep-conflict-chain-c', + dependents: [ + { + type: 'prod', + name: '@isaacs/testing-peer-dep-conflict-chain-c', + spec: '1', + from: { location: '/some/project' } + } + ] + } + }, + peerConflict: null, + strictPeerDeps: false + }, + + gatsby: { + code: 'ERESOLVE', current: { - name: 'react', - version: '16.13.1', - location: 'node_modules/react', + name: 'ink', + version: '3.0.0-7', + whileInstalling: { + name: 'gatsby-recipes', + version: '0.2.31', + path: '/some/project/node_modules/gatsby-recipes' + }, + location: 'node_modules/ink', dependents: [ { - type: 'peer', - spec: '^16.4.2', + type: 'dev', + name: 'ink', + spec: 'next', from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', + name: 'gatsby-recipes', + version: '0.2.31', + location: 'node_modules/gatsby-recipes', dependents: [ { type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.13.1', - from: { - name: 'react-dom', - version: '16.13.1', - location: 'node_modules/react-dom', - dependents: [ - { - type: 'peer', - spec: '^16.4.2', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - }, - { - type: 'peer', - spec: '15.x || 16.x || 16.4.0-alpha.0911da3', - from: { - name: '@reach/router', - version: '1.3.4', - location: 'node_modules/@reach/router', - dependents: [ - { - type: 'prod', - spec: '^1.3.4', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - }, - { - type: 'peer', - spec: '^1.3.3', - from: { - name: 'gatsby-link', - version: '2.4.13', - location: 'node_modules/gatsby-link', - dependents: [ - { - type: 'prod', - spec: '^2.4.13', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^1.0.0', - from: { - name: 'gatsby-react-router-scroll', - version: '3.0.12', - location: 'node_modules/gatsby-react-router-scroll', - dependents: [ - { - type: 'prod', - spec: '^3.0.12', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.4.2', - from: { - name: 'gatsby-link', - version: '2.4.13', - location: 'node_modules/gatsby-link', - dependents: [ - { - type: 'prod', - spec: '^2.4.13', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.4.2', - from: { - name: 'gatsby-react-router-scroll', - version: '3.0.12', - location: 'node_modules/gatsby-react-router-scroll', - dependents: [ - { - type: 'prod', - spec: '^3.0.12', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^15.0.0 || ^16.0.0', + name: 'gatsby-recipes', + spec: '^0.2.31', from: { - name: 'react-hot-loader', - version: '4.12.21', - location: 'node_modules/react-hot-loader', + name: 'gatsby-cli', + version: '2.12.107', + location: 'node_modules/gatsby-cli', dependents: [ { type: 'prod', - spec: '^4.12.21', + name: 'gatsby-cli', + spec: '^2.12.107', from: { name: 'gatsby', - version: '2.24.53', + version: '2.24.74', location: 'node_modules/gatsby', dependents: [ { type: 'prod', + name: 'gatsby', spec: '', from: { - location: '/path/to/gatsby-user' + location: '/some/project/gatsby-user' } } ] @@ -424,2153 +229,73 @@ module.exports = { } ] } + } + ] + }, + edge: { + type: 'peer', + name: 'ink', + spec: '>=2.0.0', + error: 'INVALID', + from: { + name: 'ink-box', + version: '1.0.0', + whileInstalling: { + name: 'gatsby-recipes', + version: '0.2.31', + path: '/some/project/gatsby-user/node_modules/gatsby-recipes' }, - { - type: 'peer', - spec: '15.x || 16.x || 16.4.0-alpha.0911da3', - from: { - name: '@reach/router', - version: '1.3.4', - location: 'node_modules/@reach/router', - dependents: [ - { - type: 'prod', - spec: '^1.3.4', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - }, - { - type: 'peer', - spec: '^1.3.3', - from: { - name: 'gatsby-link', - version: '2.4.13', - location: 'node_modules/gatsby-link', - dependents: [ - { - type: 'prod', - spec: '^2.4.13', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' + location: 'node_modules/ink-box', + dependents: [ + { + type: 'prod', + name: 'ink-box', + spec: '^1.0.0', + from: { + name: 'gatsby-recipes', + version: '0.2.31', + location: 'node_modules/gatsby-recipes', + dependents: [ + { + type: 'prod', + name: 'gatsby-recipes', + spec: '^0.2.31', + from: { + name: 'gatsby-cli', + version: '2.12.107', + location: 'node_modules/gatsby-cli', + dependents: [ + { + type: 'prod', + name: 'gatsby-cli', + spec: '^2.12.107', + from: { + name: 'gatsby', + version: '2.24.74', + location: 'node_modules/gatsby', + dependents: [ + { + type: 'prod', + name: 'gatsby', + spec: '', + from: { + location: '/some/project/gatsby-user' + } } - } - ] + ] + } } - } - ] + ] + } } - }, - { - type: 'peer', - spec: '^1.0.0', - from: { - name: 'gatsby-react-router-scroll', - version: '3.0.12', - location: 'node_modules/gatsby-react-router-scroll', - dependents: [ - { - type: 'prod', - spec: '^3.0.12', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'prod', - spec: '^16.8.0', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.4.2', - from: { - name: 'gatsby-link', - version: '2.4.13', - location: 'node_modules/gatsby-link', - dependents: [ - { - type: 'prod', - spec: '^2.4.13', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.4.2', - from: { - name: 'gatsby-react-router-scroll', - version: '3.0.12', - location: 'node_modules/gatsby-react-router-scroll', - dependents: [ - { - type: 'prod', - spec: '^3.0.12', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^15.0.0 || ^16.0.0', - from: { - name: 'react-hot-loader', - version: '4.12.21', - location: 'node_modules/react-hot-loader', - dependents: [ - { - type: 'prod', - spec: '^4.12.21', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^0.14.0 || ^15.0.0 || ^16.0.0', - from: { - name: 'create-react-context', - version: '0.3.0', - location: 'node_modules/create-react-context', - dependents: [ - { - type: 'prod', - spec: '0.3.0', - from: { - name: '@reach/router', - version: '1.3.4', - location: 'node_modules/@reach/router', - dependents: [ - { - type: 'prod', - spec: '^1.3.4', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - }, - { - type: 'peer', - spec: '^1.3.3', - from: { - name: 'gatsby-link', - version: '2.4.13', - location: 'node_modules/gatsby-link', - dependents: [ - { - type: 'prod', - spec: '^2.4.13', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^1.0.0', - from: { - name: 'gatsby-react-router-scroll', - version: '3.0.12', - location: 'node_modules/gatsby-react-router-scroll', - dependents: [ - { - type: 'prod', - spec: '^3.0.12', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.12.0', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '>=16.8.0', - from: { - name: 'ink', - version: '2.7.1', - location: 'node_modules/ink', - dependents: [ - { - type: 'prod', - spec: '^2.7.1', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^2.0.0', - from: { - name: 'ink-spinner', - version: '3.1.0', - location: 'node_modules/ink-spinner', - dependents: [ - { - type: 'prod', - spec: '^3.1.0', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '>=2.0.0', - from: { - name: 'ink-box', - version: '1.0.0', - location: 'node_modules/ink-box', - dependents: [ - { - type: 'prod', - spec: '^1.0.0', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.8.2', - from: { - name: 'ink-spinner', - version: '3.1.0', - location: 'node_modules/ink-spinner', - dependents: [ - { - type: 'prod', - spec: '^3.1.0', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '>=16.3.0', - from: { - name: '@emotion/core', - version: '10.0.35', - location: 'node_modules/@emotion/core', - dependents: [ - { - type: 'prod', - spec: '^10.0.14', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^10.0.27', - from: { - name: '@emotion/styled', - version: '10.0.27', - location: 'node_modules/@emotion/styled', - dependents: [ - { - type: 'prod', - spec: '^10.0.14', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^10.0.14', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^10.0.14', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^10.0.28', - from: { - name: '@emotion/styled-base', - version: '10.0.31', - location: 'node_modules/@emotion/styled-base', - dependents: [ - { - type: 'prod', - spec: '^10.0.27', - from: { - name: '@emotion/styled', - version: '10.0.27', - location: 'node_modules/@emotion/styled', - dependents: [ - { - type: 'prod', - spec: '^10.0.14', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^10.0.14', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '>=16.3.0', - from: { - name: '@emotion/styled', - version: '10.0.27', - location: 'node_modules/@emotion/styled', - dependents: [ - { - type: 'prod', - spec: '^10.0.14', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^10.0.14', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.13.1', - from: { - name: '@mdx-js/react', - version: '2.0.0-next.7', - location: 'node_modules/@mdx-js/react', - dependents: [ - { - type: 'prod', - spec: '^2.0.0-next.4', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'prod', - spec: '^2.0.0-next.7', - from: { - name: '@mdx-js/runtime', - version: '2.0.0-next.7', - location: 'node_modules/@mdx-js/runtime', - dependents: [ - { - type: 'prod', - spec: '^2.0.0-next.4', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.13.1', - from: { - name: '@mdx-js/runtime', - version: '2.0.0-next.7', - location: 'node_modules/@mdx-js/runtime', - dependents: [ - { - type: 'prod', - spec: '^2.0.0-next.4', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '>=16.8.0', - from: { - name: 'formik', - version: '2.1.5', - location: 'node_modules/formik', - dependents: [ - { - type: 'prod', - spec: '^2.0.8', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^2.0.8', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.4.2', - from: { - name: 'gatsby', - version: '2.6.0', - location: 'node_modules/gatsby-recipes/node_modules/gatsby', - dependents: [ - { - type: 'peer', - spec: '2.6.0', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.0.0', - from: { - name: 'react-dom', - version: '16.8.1', - location: 'node_modules/gatsby-recipes/node_modules/react-dom', - dependents: [ - { - type: 'peer', - spec: '16.8.1', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.4.2', - from: { - name: 'gatsby', - version: '2.6.0', - location: 'node_modules/gatsby-recipes/node_modules/gatsby', - dependents: [ - { - type: 'peer', - spec: '2.6.0', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^0.14.0 || ^15.0.0 || ^16.0.0', - from: { - name: 'gatsby-react-router-scroll', - version: '2.3.1', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-react-router-scroll', - dependents: [ - { - type: 'prod', - spec: '^2.0.7', - from: { - name: 'gatsby', - version: '2.6.0', - location: 'node_modules/gatsby-recipes/node_modules/gatsby', - dependents: [ - { - type: 'peer', - spec: '2.6.0', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '*', - from: { - name: 'react-icons', - version: '3.11.0', - location: 'node_modules/react-icons', - dependents: [ - { - type: 'prod', - spec: '^3.0.1', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^3.2.1', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] + ] + } } - }, - { - type: 'peer', - spec: '>=16.8.0', - from: { - name: 'ink-box', - version: '1.0.0', - location: 'node_modules/ink-box', - dependents: [ - { - type: 'prod', - spec: '^1.0.0', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^0.14.0 || ^15.0.0 || ^16.0.0', - from: { - name: 'react-circular-progressbar', - version: '2.0.3', - location: 'node_modules/react-circular-progressbar', - dependents: [ - { - type: 'prod', - spec: '^2.0.0', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.13.1', - from: { - name: 'react-reconciler', - version: '0.25.1', - location: 'node_modules/react-reconciler', - dependents: [ - { - type: 'prod', - spec: '^0.25.1', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '>= 16.8.0', - from: { - name: 'urql', - version: '1.10.0', - location: 'node_modules/urql', - dependents: [ - { - type: 'prod', - spec: '^1.9.7', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '>=16.3.0', - from: { - name: '@emotion/styled-base', - version: '10.0.31', - location: 'node_modules/@emotion/styled-base', - dependents: [ - { - type: 'prod', - spec: '^10.0.27', - from: { - name: '@emotion/styled', - version: '10.0.27', - location: 'node_modules/@emotion/styled', - dependents: [ - { - type: 'prod', - spec: '^10.0.14', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^10.0.14', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.0.0', - from: { - name: 'react-reconciler', - version: '0.24.0', - location: 'node_modules/ink/node_modules/react-reconciler', - dependents: [ - { - type: 'prod', - spec: '^0.24.0', - from: { - name: 'ink', - version: '2.7.1', - location: 'node_modules/ink', - dependents: [ - { - type: 'prod', - spec: '^2.7.1', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^2.0.0', - from: { - name: 'ink-spinner', - version: '3.1.0', - location: 'node_modules/ink-spinner', - dependents: [ - { - type: 'prod', - spec: '^3.1.0', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '>=2.0.0', - from: { - name: 'ink-box', - version: '1.0.0', - location: 'node_modules/ink-box', - dependents: [ - { - type: 'prod', - spec: '^1.0.0', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^0.14.0 || ^15.0.0 || ^16.0.0', - from: { - name: 'gatsby-react-router-scroll', - version: '2.3.1', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-react-router-scroll', - dependents: [ - { - type: 'prod', - spec: '^2.0.7', - from: { - name: 'gatsby', - version: '2.6.0', - location: 'node_modules/gatsby-recipes/node_modules/gatsby', - dependents: [ - { - type: 'peer', - spec: '2.6.0', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - }, - { - type: 'peer', - spec: '^16.13.1', - from: { - name: '@mdx-js/react', - version: '1.6.16', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface/node_modules/@mdx-js/react', - dependents: [ - { - type: 'prod', - spec: '^1.5.2', - from: { - name: 'gatsby-interface', - version: '0.0.166', - location: 'node_modules/gatsby-recipes/node_modules/gatsby-interface', - dependents: [ - { - type: 'prod', - spec: '^0.0.166', - from: { - name: 'gatsby-recipes', - version: '0.2.20', - location: 'node_modules/gatsby-recipes', - dependents: [ - { - type: 'prod', - spec: '^0.2.20', - from: { - name: 'gatsby-cli', - version: '2.12.91', - location: 'node_modules/gatsby-cli', - dependents: [ - { - type: 'prod', - spec: '^2.12.91', - from: { - name: 'gatsby', - version: '2.24.53', - location: 'node_modules/gatsby', - dependents: [ - { - type: 'prod', - spec: '', - from: { - location: '/path/to/gatsby-user' - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] - } - } - ] + ] + } }, peerConflict: null, - fixWithForce: true, - type: 'peer', - isPeer: true + strictPeerDeps: true } + } diff --git a/test/lib/utils/explain-dep.js b/test/lib/utils/explain-dep.js index 5e54658009e73..e0305348653af 100644 --- a/test/lib/utils/explain-dep.js +++ b/test/lib/utils/explain-dep.js @@ -13,6 +13,7 @@ const cases = { dependents: [ { type: 'prod', + name: 'prod-dep', spec: '1.x', from: { location: '/path/to/project' @@ -29,6 +30,7 @@ const cases = { dependents: [ { type: 'prod', + name: 'deep-dev', spec: '2.x', from: { name: 'metadev', @@ -37,6 +39,7 @@ const cases = { dependents: [ { type: 'prod', + name: 'metadev', spec: '3.x', from: { name: 'topdev', @@ -45,6 +48,7 @@ const cases = { dependents: [ { type: 'dev', + name: 'topdev', spec: '4.x', from: { location: '/path/to/project' @@ -66,7 +70,8 @@ const cases = { optional: true, dependents: [ { - type: 'optdep', + type: 'optional', + name: 'optdep', spec: '1.0.0', from: { location: '/path/to/project' @@ -83,6 +88,7 @@ const cases = { dependents: [ { type: 'peer', + name: 'peer', spec: '1.0.0', from: { location: '/path/to/project' @@ -106,31 +112,37 @@ cases.manyDeps = { dependents: [ { type: 'prod', + name: 'manydep', spec: '1.0.0', from: cases.prodDep }, { type: 'optional', + name: 'manydep', spec: '1.x', from: cases.optional }, { type: 'prod', + name: 'manydep', spec: '1.0.x', from: cases.extraneous }, { type: 'dev', + name: 'manydep', spec: '*', from: cases.deepDev }, { type: 'peer', + name: 'manydep', spec: '>1.0.0-beta <1.0.1', from: cases.peer }, { type: 'prod', + name: 'manydep', spec: '1', from: { name: 'a package with a pretty long name', @@ -142,6 +154,7 @@ cases.manyDeps = { }, { type: 'prod', + name: 'manydep', spec: '1', from: { name: 'another package with a pretty long name', @@ -153,6 +166,7 @@ cases.manyDeps = { }, { type: 'prod', + name: 'manydep', spec: '1', from: { name: 'yet another a package with a pretty long name',