From dde4f07f3dec8acc4676d08cbaf60d533a043dc9 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Fri, 27 Apr 2018 12:44:12 +0200 Subject: [PATCH 01/14] test(import): convert package-lock.json to yarn.lock --- __tests__/commands/import.js | 88 +++++++++++++++--- .../package-lock.json | 21 +++++ .../package.json | 9 ++ .../yarn.lock.import | 17 ++++ .../corrupted-package-lock/package-lock.json | 1 + .../corrupted-package-lock/package.json | 9 ++ .../deep-package-lock/package-lock.json | 26 ++++++ .../import/deep-package-lock/package.json | 9 ++ .../import/deep-package-lock/yarn.lock.import | 17 ++++ .../file-package-lock/deps/a/package.json | 5 + .../file-package-lock/package-lock.json | 11 +++ .../import/file-package-lock/package.json | 8 ++ .../import/file-package-lock/yarn.lock.import | 6 ++ .../github-package-lock/package-lock.json | 11 +++ .../import/github-package-lock/package.json | 8 ++ .../github-package-lock/yarn.lock.import | 7 ++ .../package-lock.json | 29 ++++++ .../shallow-dev-package-lock/package.json | 9 ++ .../shallow-dev-package-lock/yarn.lock.import | 17 ++++ .../shallow-package-lock/package-lock.json | 26 ++++++ .../import/shallow-package-lock/package.json | 9 ++ .../shallow-package-lock/yarn.lock.import | 17 ++++ .../versions-yarn-lock-package-lock/.yarnrc | 1 + .../deps/a/package.json | 5 + .../package-lock.json | 11 +++ .../package.json | 8 ++ .../yarn.lock.import | 8 ++ .../sindresorhus/beeper.git/info/refs.bin | Bin 0 -> 1814 bytes .../package.json.bin | 64 +++++++++++++ .../commander/-/commander-2.15.1.tgz.bin | Bin 0 -> 18596 bytes .../HEAD/github.com/sindresorhus/beeper.bin | 20 ++++ 31 files changed, 465 insertions(+), 12 deletions(-) create mode 100644 __tests__/fixtures/import/corrupted-package-lock-missing-deps/package-lock.json create mode 100644 __tests__/fixtures/import/corrupted-package-lock-missing-deps/package.json create mode 100644 __tests__/fixtures/import/corrupted-package-lock-missing-deps/yarn.lock.import create mode 100644 __tests__/fixtures/import/corrupted-package-lock/package-lock.json create mode 100644 __tests__/fixtures/import/corrupted-package-lock/package.json create mode 100644 __tests__/fixtures/import/deep-package-lock/package-lock.json create mode 100644 __tests__/fixtures/import/deep-package-lock/package.json create mode 100644 __tests__/fixtures/import/deep-package-lock/yarn.lock.import create mode 100644 __tests__/fixtures/import/file-package-lock/deps/a/package.json create mode 100644 __tests__/fixtures/import/file-package-lock/package-lock.json create mode 100644 __tests__/fixtures/import/file-package-lock/package.json create mode 100644 __tests__/fixtures/import/file-package-lock/yarn.lock.import create mode 100644 __tests__/fixtures/import/github-package-lock/package-lock.json create mode 100644 __tests__/fixtures/import/github-package-lock/package.json create mode 100644 __tests__/fixtures/import/github-package-lock/yarn.lock.import create mode 100644 __tests__/fixtures/import/shallow-dev-package-lock/package-lock.json create mode 100644 __tests__/fixtures/import/shallow-dev-package-lock/package.json create mode 100644 __tests__/fixtures/import/shallow-dev-package-lock/yarn.lock.import create mode 100644 __tests__/fixtures/import/shallow-package-lock/package-lock.json create mode 100644 __tests__/fixtures/import/shallow-package-lock/package.json create mode 100644 __tests__/fixtures/import/shallow-package-lock/yarn.lock.import create mode 100644 __tests__/fixtures/import/versions-yarn-lock-package-lock/.yarnrc create mode 100644 __tests__/fixtures/import/versions-yarn-lock-package-lock/deps/a/package.json create mode 100644 __tests__/fixtures/import/versions-yarn-lock-package-lock/package-lock.json create mode 100644 __tests__/fixtures/import/versions-yarn-lock-package-lock/package.json create mode 100644 __tests__/fixtures/import/versions-yarn-lock-package-lock/yarn.lock.import create mode 100644 __tests__/fixtures/request-cache/GET/github.com/sindresorhus/beeper.git/info/refs.bin create mode 100644 __tests__/fixtures/request-cache/GET/raw.githubusercontent.com/sindresorhus/beeper/34f2c73a340f000c9e060f7038362db6782b236e/package.json.bin create mode 100644 __tests__/fixtures/request-cache/GET/registry.yarnpkg.com/commander/-/commander-2.15.1.tgz.bin create mode 100644 __tests__/fixtures/request-cache/HEAD/github.com/sindresorhus/beeper.bin diff --git a/__tests__/commands/import.js b/__tests__/commands/import.js index b097e7b4a5..28b61f4b3a 100644 --- a/__tests__/commands/import.js +++ b/__tests__/commands/import.js @@ -31,9 +31,17 @@ const reporterType = (reporter, type) => reporter.getBuffer().filter(d => d.type const reporterErrors = reporter => reporter.getBuffer().filter(d => d.error); -const checkReporter = reporter => { +const checkReporter = (reporter, importFrom) => { expect(reporterErrors(reporter)).toEqual([]); - expect(reporterType(reporter, 'info')).toEqual([]); + if (importFrom === 'package-lock.json') { + expect(reporterType(reporter, 'info')).toEqual([ + {data: reporter.lang('importPackageLock'), error: false, type: 'info'}, + ]); + } else { + expect(reporterType(reporter, 'info')).toEqual([ + {data: reporter.lang('importNodeModules'), error: false, type: 'info'}, + ]); + } }; const checkLockfile = async (config, reporter) => { @@ -53,33 +61,63 @@ const checkLockfileWithVersions = async (config, reporter) => { expect(lockfile.source).toEqual(imported); }; -const checkReporterAndLockfile = async (config, reporter) => { - checkReporter(reporter); +const checkReporterAndLockfile = ({importFrom}) => async (config, reporter) => { + checkReporter(reporter, importFrom); await checkLockfile(config, reporter); - checkReporter(reporter); + checkReporter(reporter, importFrom); }; test.concurrent('import shallow deps', () => { - return runImport([], {}, 'shallow', checkReporterAndLockfile); + const importFrom = 'node_modules'; + return runImport([], {}, 'shallow', checkReporterAndLockfile({importFrom})); +}); + +test.concurrent('import shallow deps from package-lock.json', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'shallow-package-lock', checkReporterAndLockfile({importFrom})); }); test.concurrent('import deep deps', () => { - return runImport([], {}, 'deep', checkReporterAndLockfile); + const importFrom = 'node_modules'; + return runImport([], {}, 'deep', checkReporterAndLockfile({importFrom})); +}); + +test.concurrent('import deep deps from package-lock.json', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'deep-package-lock', checkReporterAndLockfile({importFrom})); }); test.concurrent('import shallow dev deps', () => { - return runImport([], {}, 'shallow-dev', checkReporterAndLockfile); + const importFrom = 'node_modules'; + return runImport([], {}, 'shallow-dev', checkReporterAndLockfile({importFrom})); +}); + +test.concurrent('import shallow dev deps from package-lock.json', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'shallow-dev-package-lock', checkReporterAndLockfile({importFrom})); }); test.concurrent('import github deps', () => { - return runImport([], {}, 'github', checkReporterAndLockfile); + const importFrom = 'node_modules'; + return runImport([], {}, 'github', checkReporterAndLockfile({importFrom})); +}); + +test.concurrent('import github deps from package-lock.json', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'github-package-lock', checkReporterAndLockfile({importFrom})); }); test.concurrent('import file deps', () => { - return runImport([], {}, 'file', checkReporterAndLockfile); + const importFrom = 'node_modules'; + return runImport([], {}, 'file', checkReporterAndLockfile({importFrom})); +}); + +test.concurrent('import file deps from package-lock.json', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'file-package-lock', checkReporterAndLockfile({importFrom})); }); -test.concurrent('throw on missing dev deps deps', async () => { +test.concurrent('throw on missing dev deps', async () => { let thrown = false; try { await runImport([], {}, 'missing-dev'); @@ -89,12 +127,38 @@ test.concurrent('throw on missing dev deps deps', async () => { expect(thrown).toBeTruthy(); }); +test.concurrent('throw on corrupted package-lock.json', async () => { + let thrown = false; + try { + await runImport([], {}, 'corrupted-package-lock'); + } catch (err) { + thrown = true; + } + expect(thrown).toBeTruthy(); +}); + +test.concurrent('throw on corrupted package-lock.json - missing deep dependencies', async () => { + let thrown = false; + try { + await runImport([], {}, 'corrupted-package-lock-missing-deps'); + } catch (err) { + thrown = true; + } + expect(thrown).toBeTruthy(); +}); + test.concurrent('including Yarn and Node version in yarn.lock', () => { return runImport([], {production: true}, 'versions-yarn-lock', async (config, reporter) => { await checkLockfileWithVersions(config, reporter); }); }); +test.concurrent('including Yarn and Node version in yarn.lock from package-lock.json', () => { + return runImport([], {production: true}, 'versions-yarn-lock-package-lock', async (config, reporter) => { + await checkLockfileWithVersions(config, reporter); + }); +}); + test.concurrent('import missing dev deps in production', () => { return runImport([], {production: true}, 'missing-dev', async (config, reporter) => { expect(reporterErrors(reporter).length).toEqual(1); @@ -115,7 +179,7 @@ test.concurrent('import missing opt deps', () => { }); }); -test.concurrent('throw on locked deps', async () => { +test.concurrent('throw when yarn.lock exists', async () => { let thrown = false; try { await runImport([], {}, 'locked'); diff --git a/__tests__/fixtures/import/corrupted-package-lock-missing-deps/package-lock.json b/__tests__/fixtures/import/corrupted-package-lock-missing-deps/package-lock.json new file mode 100644 index 0000000000..abb290baba --- /dev/null +++ b/__tests__/fixtures/import/corrupted-package-lock-missing-deps/package-lock.json @@ -0,0 +1,21 @@ +{ + "name": "deep-package-lock", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "requires": { + "os-homedir": "1.0.2" + } + } + } +} diff --git a/__tests__/fixtures/import/corrupted-package-lock-missing-deps/package.json b/__tests__/fixtures/import/corrupted-package-lock-missing-deps/package.json new file mode 100644 index 0000000000..061cb92c96 --- /dev/null +++ b/__tests__/fixtures/import/corrupted-package-lock-missing-deps/package.json @@ -0,0 +1,9 @@ +{ + "name": "corrupted-package-lock-missing-deps", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "commander": "^2.9.0", + "user-home": "^2.0.0" + } +} diff --git a/__tests__/fixtures/import/corrupted-package-lock-missing-deps/yarn.lock.import b/__tests__/fixtures/import/corrupted-package-lock-missing-deps/yarn.lock.import new file mode 100644 index 0000000000..76bf883c60 --- /dev/null +++ b/__tests__/fixtures/import/corrupted-package-lock-missing-deps/yarn.lock.import @@ -0,0 +1,17 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +commander@^2.9.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" diff --git a/__tests__/fixtures/import/corrupted-package-lock/package-lock.json b/__tests__/fixtures/import/corrupted-package-lock/package-lock.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/__tests__/fixtures/import/corrupted-package-lock/package-lock.json @@ -0,0 +1 @@ +{} diff --git a/__tests__/fixtures/import/corrupted-package-lock/package.json b/__tests__/fixtures/import/corrupted-package-lock/package.json new file mode 100644 index 0000000000..194234ba51 --- /dev/null +++ b/__tests__/fixtures/import/corrupted-package-lock/package.json @@ -0,0 +1,9 @@ +{ + "name": "corrupted-package-lock", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "commander": "^2.9.0", + "user-home": "^2.0.0" + } +} diff --git a/__tests__/fixtures/import/deep-package-lock/package-lock.json b/__tests__/fixtures/import/deep-package-lock/package-lock.json new file mode 100644 index 0000000000..dbfd424970 --- /dev/null +++ b/__tests__/fixtures/import/deep-package-lock/package-lock.json @@ -0,0 +1,26 @@ +{ + "name": "deep-package-lock", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "requires": { + "os-homedir": "1.0.2" + } + } + } +} diff --git a/__tests__/fixtures/import/deep-package-lock/package.json b/__tests__/fixtures/import/deep-package-lock/package.json new file mode 100644 index 0000000000..b011596b9b --- /dev/null +++ b/__tests__/fixtures/import/deep-package-lock/package.json @@ -0,0 +1,9 @@ +{ + "name": "deep-package-lock", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "commander": "^2.9.0", + "user-home": "^2.0.0" + } +} diff --git a/__tests__/fixtures/import/deep-package-lock/yarn.lock.import b/__tests__/fixtures/import/deep-package-lock/yarn.lock.import new file mode 100644 index 0000000000..76bf883c60 --- /dev/null +++ b/__tests__/fixtures/import/deep-package-lock/yarn.lock.import @@ -0,0 +1,17 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +commander@^2.9.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" diff --git a/__tests__/fixtures/import/file-package-lock/deps/a/package.json b/__tests__/fixtures/import/file-package-lock/deps/a/package.json new file mode 100644 index 0000000000..fa63e703fc --- /dev/null +++ b/__tests__/fixtures/import/file-package-lock/deps/a/package.json @@ -0,0 +1,5 @@ +{ + "name": "file-dep-a", + "version": "1.0.0", + "license": "MIT" +} diff --git a/__tests__/fixtures/import/file-package-lock/package-lock.json b/__tests__/fixtures/import/file-package-lock/package-lock.json new file mode 100644 index 0000000000..d3db3581a6 --- /dev/null +++ b/__tests__/fixtures/import/file-package-lock/package-lock.json @@ -0,0 +1,11 @@ +{ + "name": "file-package-lock", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "file-dep-a": { + "version": "file:deps/a" + } + } +} diff --git a/__tests__/fixtures/import/file-package-lock/package.json b/__tests__/fixtures/import/file-package-lock/package.json new file mode 100644 index 0000000000..70bd06785e --- /dev/null +++ b/__tests__/fixtures/import/file-package-lock/package.json @@ -0,0 +1,8 @@ +{ + "name": "file-package-lock", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "file-dep-a": "file:deps/a" + } +} diff --git a/__tests__/fixtures/import/file-package-lock/yarn.lock.import b/__tests__/fixtures/import/file-package-lock/yarn.lock.import new file mode 100644 index 0000000000..37c7679fd9 --- /dev/null +++ b/__tests__/fixtures/import/file-package-lock/yarn.lock.import @@ -0,0 +1,6 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"file-dep-a@file:deps/a": + version "1.0.0" diff --git a/__tests__/fixtures/import/github-package-lock/package-lock.json b/__tests__/fixtures/import/github-package-lock/package-lock.json new file mode 100644 index 0000000000..44f0938937 --- /dev/null +++ b/__tests__/fixtures/import/github-package-lock/package-lock.json @@ -0,0 +1,11 @@ +{ + "name": "github", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "beeper": { + "version": "github:sindresorhus/beeper#34f2c73a340f000c9e060f7038362db6782b236e" + } + } +} diff --git a/__tests__/fixtures/import/github-package-lock/package.json b/__tests__/fixtures/import/github-package-lock/package.json new file mode 100644 index 0000000000..cc57d6d10d --- /dev/null +++ b/__tests__/fixtures/import/github-package-lock/package.json @@ -0,0 +1,8 @@ +{ + "name": "github-package-lock", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "beeper": "sindresorhus/beeper" + } +} diff --git a/__tests__/fixtures/import/github-package-lock/yarn.lock.import b/__tests__/fixtures/import/github-package-lock/yarn.lock.import new file mode 100644 index 0000000000..18afee6f1d --- /dev/null +++ b/__tests__/fixtures/import/github-package-lock/yarn.lock.import @@ -0,0 +1,7 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +beeper@sindresorhus/beeper: + version "1.1.1" + resolved "https://codeload.github.com/sindresorhus/beeper/tar.gz/34f2c73a340f000c9e060f7038362db6782b236e" diff --git a/__tests__/fixtures/import/shallow-dev-package-lock/package-lock.json b/__tests__/fixtures/import/shallow-dev-package-lock/package-lock.json new file mode 100644 index 0000000000..dc83f12988 --- /dev/null +++ b/__tests__/fixtures/import/shallow-dev-package-lock/package-lock.json @@ -0,0 +1,29 @@ +{ + "name": "shallow-dev-package-lock", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "dev": true, + "requires": { + "os-homedir": "1.0.2" + } + } + } +} diff --git a/__tests__/fixtures/import/shallow-dev-package-lock/package.json b/__tests__/fixtures/import/shallow-dev-package-lock/package.json new file mode 100644 index 0000000000..361f5486e0 --- /dev/null +++ b/__tests__/fixtures/import/shallow-dev-package-lock/package.json @@ -0,0 +1,9 @@ +{ + "name": "shallow-dev-package-lock", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "commander": "^2.9.0", + "user-home": "^2.0.0" + } +} diff --git a/__tests__/fixtures/import/shallow-dev-package-lock/yarn.lock.import b/__tests__/fixtures/import/shallow-dev-package-lock/yarn.lock.import new file mode 100644 index 0000000000..76bf883c60 --- /dev/null +++ b/__tests__/fixtures/import/shallow-dev-package-lock/yarn.lock.import @@ -0,0 +1,17 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +commander@^2.9.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" diff --git a/__tests__/fixtures/import/shallow-package-lock/package-lock.json b/__tests__/fixtures/import/shallow-package-lock/package-lock.json new file mode 100644 index 0000000000..a649cf688c --- /dev/null +++ b/__tests__/fixtures/import/shallow-package-lock/package-lock.json @@ -0,0 +1,26 @@ +{ + "name": "shallow-package-lock", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "requires": { + "os-homedir": "1.0.2" + } + } + } +} diff --git a/__tests__/fixtures/import/shallow-package-lock/package.json b/__tests__/fixtures/import/shallow-package-lock/package.json new file mode 100644 index 0000000000..2e4925c1b8 --- /dev/null +++ b/__tests__/fixtures/import/shallow-package-lock/package.json @@ -0,0 +1,9 @@ +{ + "name": "shallow-package-lock", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "commander": "^2.9.0", + "user-home": "^2.0.0" + } +} diff --git a/__tests__/fixtures/import/shallow-package-lock/yarn.lock.import b/__tests__/fixtures/import/shallow-package-lock/yarn.lock.import new file mode 100644 index 0000000000..76bf883c60 --- /dev/null +++ b/__tests__/fixtures/import/shallow-package-lock/yarn.lock.import @@ -0,0 +1,17 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +commander@^2.9.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" diff --git a/__tests__/fixtures/import/versions-yarn-lock-package-lock/.yarnrc b/__tests__/fixtures/import/versions-yarn-lock-package-lock/.yarnrc new file mode 100644 index 0000000000..9bc7227fa0 --- /dev/null +++ b/__tests__/fixtures/import/versions-yarn-lock-package-lock/.yarnrc @@ -0,0 +1 @@ +yarn-enable-lockfile-versions true diff --git a/__tests__/fixtures/import/versions-yarn-lock-package-lock/deps/a/package.json b/__tests__/fixtures/import/versions-yarn-lock-package-lock/deps/a/package.json new file mode 100644 index 0000000000..fa63e703fc --- /dev/null +++ b/__tests__/fixtures/import/versions-yarn-lock-package-lock/deps/a/package.json @@ -0,0 +1,5 @@ +{ + "name": "file-dep-a", + "version": "1.0.0", + "license": "MIT" +} diff --git a/__tests__/fixtures/import/versions-yarn-lock-package-lock/package-lock.json b/__tests__/fixtures/import/versions-yarn-lock-package-lock/package-lock.json new file mode 100644 index 0000000000..dd8420ea74 --- /dev/null +++ b/__tests__/fixtures/import/versions-yarn-lock-package-lock/package-lock.json @@ -0,0 +1,11 @@ +{ + "name": "versions-yarn-lock-package-lock", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "file-dep-a": { + "version": "file:deps/a" + } + } +} diff --git a/__tests__/fixtures/import/versions-yarn-lock-package-lock/package.json b/__tests__/fixtures/import/versions-yarn-lock-package-lock/package.json new file mode 100644 index 0000000000..917da58456 --- /dev/null +++ b/__tests__/fixtures/import/versions-yarn-lock-package-lock/package.json @@ -0,0 +1,8 @@ +{ + "name": "versions-yarn-lock-package-lock", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "file-dep-a": "file:deps/a" + } +} diff --git a/__tests__/fixtures/import/versions-yarn-lock-package-lock/yarn.lock.import b/__tests__/fixtures/import/versions-yarn-lock-package-lock/yarn.lock.import new file mode 100644 index 0000000000..fc56b61085 --- /dev/null +++ b/__tests__/fixtures/import/versions-yarn-lock-package-lock/yarn.lock.import @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 +# yarn vxx.xx.xx +# node vxx.xx.xx + + +"file-dep-a@file:deps/a": + version "1.0.0" diff --git a/__tests__/fixtures/request-cache/GET/github.com/sindresorhus/beeper.git/info/refs.bin b/__tests__/fixtures/request-cache/GET/github.com/sindresorhus/beeper.git/info/refs.bin new file mode 100644 index 0000000000000000000000000000000000000000..3b8f5d3554308d2f68f04b4f1f1d6266b29cda4c GIT binary patch literal 1814 zcmb7EO>Y}F5barj{sVztv(fOI6ySs7$VnTt30k9QFAav|P+nxUQg>Hwf};PuvvO@K z$)$z9C@kN+nKy6d_07$@m3%IR0uXQCEEhl1a7V*hylSV{$0S~0qE4viuv}d2`-%Fg zx%qUUwZOxnYco#mzF&Q8w(Zm$58WP1bHMze!NNhNcBCC6mW!JK`?1o{Z2G(}ZNFWM ze0%IaP+2ZE9}n$7<62w~?K1&Ve2=}5F@OMApWfot4>!xjy8*X5T#J6+WX!k33C%yv zoYt`Ko*q0CJN($-mM(yg$8l-~y2Gw5I5FrK96qhZWzKY%9@AMaer@gxZhoRaj>MSn z%355RjaoZ%wOLE)Uub!~me(7v;`Q2IZosIk%?!LAa7WGC!z=}t@pALyZ_CAUA(;$7 z(zjw{N!v^pUx>ta%zOn{TM2=W{H;w@*=y7WDnH4Qz(Mt(gLbMU=YvX0I})!qmoLBB z9lNQ0&w`8Tw(U>Si?J=#B<#!6sd46m*w?Ws)J-VHTkN|1pP~>QsBgx$&-C!8-%k(6 zfjVyQ9nFd#hW(bCGzz}k9hqRlEo=KP`};x@wjGuEYT5TB#!tI}>cyPonh)dZmavSg z9gY(Xf_u|Xvm7h_+#XZ2b=4_I*+>hKb1v7AId+UPWD^gB(U29yoXjZ@#$2sCN5cc0 zyBHbHtS0DGrDj&`L)KWLGEzx&V3jfzKZoyV*wVcOMH=Hn2`=j#i}L^>`x=eMn9ypU zf+A_nIbJ=`Yl51=`6`q023Ufcz$JyLNR2WYl_EzDJo`_zKcTDl1+4Ts8@6CBN`tgi zT_^>pkV|M>NMOTf=*Qg2#fV8pwktZXWr$i;X*AnhNndP1lPr2mXK?eFdUZ)#a^A7? zYsj`DXq5^?u0j*ll5_cQ1-!??nH4CJ5D2ga&!!D7Im>p@24z9sl&7BYB#!e2e-7*y10hiY!`)?fhm2e~ zuZ_g+@wOTTE?RAEl<7P?AAXrK&>Ji2e+J$K3bq z++wRuiUtY~oTTD13s=2MHB{twN8mx=5&R1MK<}L?sCe6HT^0I@F&bBDDa0{(hR~Wo dRenLw<=0.10.0" + }, + "scripts": { + "test": "node test.js" + }, + "files": [ + "index.js" + ], + "keywords": [ + "beep", + "beeper", + "boop", + "terminal", + "term", + "cli", + "console", + "ding", + "ping", + "alert", + "gulpfriendly" + ], + "devDependencies": { + "hooker": "^0.2.3", + "tape": "^4.0.0" + } +} diff --git a/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/commander/-/commander-2.15.1.tgz.bin b/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/commander/-/commander-2.15.1.tgz.bin new file mode 100644 index 0000000000000000000000000000000000000000..676dc86ff962a02108c793a8ac76297e79138f56 GIT binary patch literal 18596 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 Date: Fri, 27 Apr 2018 12:45:42 +0200 Subject: [PATCH 02/14] chore(deps): add pacote and npm-logical-tree --- package.json | 2 + yarn.lock | 483 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 476 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index f207a30286..6822cfce36 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,9 @@ "mkdirp": "^0.5.1", "node-emoji": "^1.6.1", "normalize-url": "^2.0.0", + "npm-logical-tree": "^1.2.1", "object-path": "^0.11.2", + "pacote": "^8.1.1", "proper-lockfile": "^2.0.0", "puka": "^1.0.0", "read": "^1.0.7", diff --git a/yarn.lock b/yarn.lock index 9e441594e8..c2eb2d74b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -75,6 +75,18 @@ acorn@^5.3.0: version "5.5.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" +agent-base@4, agent-base@^4.1.0, agent-base@~4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.0.tgz#9838b5c3392b962bad031e6a4c5e1024abec45ce" + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.4.1.tgz#aa95aebc3a749bca5ed53e3880a09f5235b48f0c" + dependencies: + humanize-ms "^1.2.1" + ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" @@ -172,6 +184,10 @@ aproba@^1.0.3: version "1.1.1" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" @@ -1188,6 +1204,10 @@ block-stream@*: dependencies: inherits "~2.0.0" +bluebird@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" @@ -1335,6 +1355,10 @@ buffer-fill@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.1.tgz#76d825c4d6e50e06b7a31eb520c04d08cc235071" +buffer-from@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" + buffer-shims@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" @@ -1363,10 +1387,33 @@ builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + bytes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" +cacache@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.0.1.tgz#63cde88b51aa5f50741e34833c9d0048a138d1dd" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + figgy-pudding "^3.1.0" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.2" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^6.0.0" + unique-filename "^1.1.0" + y18n "^4.0.0" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1686,6 +1733,15 @@ concat-stream@^1.4.7, concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -1712,6 +1768,17 @@ convert-source-map@1.X, convert-source-map@^1.4.0, convert-source-map@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -1825,6 +1892,10 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + cz-conventional-changelog@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-1.2.0.tgz#2bca04964c8919b23f3fd6a89ef5e6008b31b3f8" @@ -1886,15 +1957,15 @@ debug@2.X, debug@^2.2.0, debug@^2.6.8: dependencies: ms "2.0.0" -debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" +debug@3.1.0, debug@^3.0.0, debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" +debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" @@ -2057,7 +2128,7 @@ duplexer2@0.0.2: dependencies: readable-stream "~1.1.9" -duplexify@^3.1.2, duplexify@^3.5.0: +duplexify@^3.1.2, duplexify@^3.4.2, duplexify@^3.5.0: version "3.5.4" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" dependencies: @@ -2100,6 +2171,12 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" @@ -2121,6 +2198,10 @@ enhanced-resolve@^3.0.0: object-assign "^4.0.1" tapable "^0.2.5" +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + errno@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" @@ -2160,6 +2241,16 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" +es6-promise@^4.0.3: + version "4.2.4" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + dependencies: + es6-promise "^4.0.3" + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2509,6 +2600,10 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" +figgy-pudding@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.1.0.tgz#a77ed2284175976c424b390b298569e9df86dd1e" + figures@^1.3.5: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -2656,6 +2751,13 @@ flow-bin@^0.66.0: version "0.66.0" resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.66.0.tgz#a96dde7015dc3343fd552a7b4963c02be705ca26" +flush-write-stream@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2700,6 +2802,13 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -2716,6 +2825,21 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2782,6 +2906,10 @@ gaze@^0.5.1: dependencies: globule "~0.1.0" +genfun@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-4.0.1.tgz#ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1" + get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -3252,12 +3380,27 @@ hosted-git-info@^2.1.4: version "2.4.2" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" +hosted-git-info@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" + html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" dependencies: whatwg-encoding "^1.0.1" +http-cache-semantics@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + dependencies: + agent-base "4" + debug "3.1.0" + http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -3278,6 +3421,19 @@ https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" +https-proxy-agent@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + dependencies: + agent-base "^4.1.0" + debug "^3.1.0" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + dependencies: + ms "^2.0.0" + iconv-lite@0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" @@ -3286,10 +3442,26 @@ iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" +iconv-lite@~0.4.13: + version "0.4.21" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.21.tgz#c47f8733d02171189ebc4a400f3218d348094798" + dependencies: + safer-buffer "^2.1.0" + ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + ignore@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" @@ -3320,7 +3492,7 @@ inherits@1: version "1.0.2" resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -3383,6 +3555,10 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" +ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + is-absolute@^0.2.3: version "0.2.6" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" @@ -4119,6 +4295,10 @@ json-loader@^0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" +json-parse-better-errors@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" @@ -4450,6 +4630,29 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-fetch-happen@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" + dependencies: + agentkeepalive "^3.4.1" + cacache "^11.0.1" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + lru-cache "^4.1.2" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -4591,6 +4794,34 @@ minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minipass@^2.2.1, minipass@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.4.tgz#03c824d84551ec38a8d1bb5bc350a5a30a354a40" + dependencies: + safe-buffer "^5.1.1" + yallist "^3.0.0" + +minizlib@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + dependencies: + minipass "^2.2.1" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" @@ -4608,10 +4839,25 @@ mock-stdin@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/mock-stdin/-/mock-stdin-0.3.1.tgz#c657d9642d90786435c64ca5e99bbd4d09bd7dd3" +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" +ms@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + multipipe@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" @@ -4665,6 +4911,14 @@ node-emoji@^1.6.1: dependencies: string.prototype.codepointat "^0.2.0" +node-fetch-npm@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -4752,6 +5006,15 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" +normalize-package-data@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -4766,6 +5029,37 @@ normalize-url@^2.0.0: query-string "^5.0.1" sort-keys "^2.0.0" +npm-bundled@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" + +npm-logical-tree@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88" + +npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" + dependencies: + hosted-git-info "^2.6.0" + osenv "^0.1.5" + semver "^5.5.0" + validate-npm-package-name "^3.0.0" + +npm-packlist@^1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-pick-manifest@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz#dc381bdd670c35d81655e1d5a94aa3dd4d87fce5" + dependencies: + npm-package-arg "^6.0.0" + semver "^5.4.1" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -4936,6 +5230,13 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -4950,6 +5251,35 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" +pacote@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-8.1.1.tgz#7ee85dad2bccf5524e5460508f833c60dddf5183" + dependencies: + bluebird "^3.5.1" + cacache "^11.0.1" + get-stream "^3.0.0" + glob "^7.1.2" + lru-cache "^4.1.2" + make-fetch-happen "^4.0.1" + minimatch "^3.0.4" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.1.10" + npm-pick-manifest "^2.1.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.0" + rimraf "^2.6.2" + safe-buffer "^5.1.1" + semver "^5.5.0" + ssri "^6.0.0" + tar "^4.4.1" + unique-filename "^1.1.0" + which "^1.3.0" + pad-right@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774" @@ -4960,6 +5290,14 @@ pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + parse-asn1@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" @@ -5155,6 +5493,10 @@ process-nextick-args@^1.0.6, process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + process@^0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -5163,6 +5505,17 @@ progress@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + proper-lockfile@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-2.0.1.tgz#159fb06193d32003f4b3691dd2ec1a634aa80d1d" @@ -5170,6 +5523,12 @@ proper-lockfile@^2.0.0: graceful-fs "^4.1.2" retry "^0.10.0" +protoduck@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.0.tgz#752145e6be0ad834cb25716f670a713c860dce70" + dependencies: + genfun "^4.0.1" + prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -5199,6 +5558,13 @@ pump@^1.0.0: end-of-stream "^1.1.0" once "^1.3.1" +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + pumpify@^1.3.3: version "1.3.5" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.3.5.tgz#1b671c619940abcaeac0ad0e3a3c164be760993b" @@ -5284,6 +5650,18 @@ read@^1.0.7: dependencies: mute-stream "~0.0.4" +"readable-stream@1 || 2", readable-stream@^2.0.4: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + "readable-stream@>=1.0.33-1 <1.1.0-0": version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -5573,7 +5951,7 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.0, rimraf@^2.5.1, rimraf@^2.6.1: dependencies: glob "^7.0.5" -rimraf@^2.5.4: +rimraf@^2.5.4, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -5596,6 +5974,12 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + dependencies: + aproba "^1.1.1" + rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" @@ -5608,12 +5992,20 @@ safe-buffer@^5.1.1, safe-buffer@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" dependencies: ret "~0.1.10" +safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + sane@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/sane/-/sane-2.2.0.tgz#d6d2e2fcab00e3d283c93b912b7c3a20846f1d56" @@ -5728,6 +6120,10 @@ slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" +smart-buffer@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz#07ea1ca8d4db24eb4cac86537d7d18995221ace3" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -5767,6 +6163,20 @@ sntp@2.x.x: dependencies: hoek "4.x.x" +socks-proxy-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz#5936bf8b707a993079c6f37db2091821bffa6473" + dependencies: + agent-base "~4.2.0" + socks "~2.2.0" + +socks@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.2.0.tgz#144985b3331ced3ab5ccbee640ab7cb7d43fdd1f" + dependencies: + ip "^1.1.5" + smart-buffer "^4.0.1" + sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" @@ -5894,6 +6304,10 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" +ssri@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.0.tgz#fc21bfc90e03275ac3e23d5a42e38b8a1cbc130d" + stable@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10" @@ -5924,6 +6338,13 @@ stream-consume@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" +stream-each@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + stream-http@^2.3.1: version "2.7.1" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.1.tgz#546a51741ad5a6b07e9e31b0b10441a917df528a" @@ -5985,6 +6406,12 @@ string_decoder@~1.0.0: dependencies: safe-buffer "^5.0.1" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + stringstream@~0.0.4, stringstream@~0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" @@ -6130,6 +6557,18 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" +tar@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.1.tgz#b25d5a8470c976fd7a9a8a350f42c59e9fa81749" + dependencies: + chownr "^1.0.1" + fs-minipass "^1.2.5" + minipass "^2.2.4" + minizlib "^1.1.0" + mkdirp "^0.5.0" + safe-buffer "^5.1.1" + yallist "^3.0.2" + temp@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" @@ -6333,6 +6772,18 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^0.4.3" +unique-filename@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" + dependencies: + imurmurhash "^0.1.4" + unique-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" @@ -6418,6 +6869,12 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + dependencies: + builtins "^1.0.3" + verror@1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" @@ -6664,10 +7121,18 @@ y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + yargs-parser@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" From aa484df37be0e978d8d420f473eb5349aa3ce1c2 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Fri, 27 Apr 2018 12:48:08 +0200 Subject: [PATCH 03/14] feat(import): add ability to convert package-lock.json to yarn.lock --- src/cli/commands/import.js | 62 +++++++++++++++++++++++-------- src/constants.js | 2 + src/reporters/lang/en.js | 3 ++ src/types.js | 1 + src/util/logical-manifest-tree.js | 37 ++++++++++++++++++ 5 files changed, 90 insertions(+), 15 deletions(-) create mode 100644 src/util/logical-manifest-tree.js diff --git a/src/cli/commands/import.js b/src/cli/commands/import.js index 1a33d1e788..4e5c959c4b 100644 --- a/src/cli/commands/import.js +++ b/src/cli/commands/import.js @@ -20,9 +20,10 @@ import PackageLinker from '../../package-linker.js'; import * as compatibility from '../../package-compatibility.js'; import Lockfile from '../../lockfile'; import {normalizePattern} from '../../util/normalize-pattern.js'; +import {LogicalManifestTree} from '../../util/logical-manifest-tree'; import * as fs from '../../util/fs.js'; import * as util from '../../util/misc.js'; -import {YARN_REGISTRY, LOCKFILE_FILENAME} from '../../constants.js'; +import {YARN_REGISTRY, LOCKFILE_FILENAME, NODE_PACKAGE_JSON, NPM_LOCK_FILENAME} from '../../constants.js'; const NPM_REGISTRY = /http[s]:\/\/registry.npmjs.org/g; @@ -45,7 +46,8 @@ class ImportResolver extends BaseResolver { resolveHostedGit(info: Manifest, Resolver: Class): Manifest { const {range} = normalizePattern(this.pattern); const exploded = explodeHostedGitFragment(range, this.reporter); - const hash = (info: any).gitHead; + const resolvedExploded = info._resolved ? explodeHostedGitFragment(info._resolved, this.reporter) : {}; + const hash = (info: any).gitHead || resolvedExploded.hash; invariant(hash, 'expected package gitHead'); const url = Resolver.getTarballUrl(exploded, hash); info._uid = hash; @@ -151,27 +153,33 @@ class ImportResolver extends BaseResolver { } async resolve(): Promise { - const {name} = normalizePattern(this.pattern); - let cwd = this.getCwd(); - while (!path.relative(this.config.cwd, cwd).startsWith('..')) { - const loc = path.join(cwd, 'node_modules', name); - const info = await this.config.getCache(`import-resolver-${loc}`, () => this.resolveLocation(loc)); - if (info) { - return info; + if (this.request instanceof ImportPackageRequest && this.request.manifest) { + return this.resolveImport(this.request.manifest); + } else { + const {name} = normalizePattern(this.pattern); + let cwd = this.getCwd(); + while (!path.relative(this.config.cwd, cwd).startsWith('..')) { + const loc = path.join(cwd, 'node_modules', name); + const info = await this.config.getCache(`import-resolver-${loc}`, () => this.resolveLocation(loc)); + if (info) { + return info; + } + cwd = path.resolve(cwd, '../..'); } - cwd = path.resolve(cwd, '../..'); + throw new MessageError(this.reporter.lang('importResolveFailed', name, this.getCwd())); } - throw new MessageError(this.reporter.lang('importResolveFailed', name, this.getCwd())); } } class ImportPackageRequest extends PackageRequest { - constructor(req: DependencyRequestPattern, resolver: PackageResolver) { + constructor(req: DependencyRequestPattern, manifest: ?Manifest, resolver: PackageResolver) { super(req, resolver); this.import = this.parentRequest instanceof ImportPackageRequest ? this.parentRequest.import : true; + this.manifest = manifest; } import: boolean; + manifest: ?Manifest; getRootName(): string { return (this.resolver instanceof ImportPackageResolver && this.resolver.rootName) || 'root'; @@ -219,6 +227,7 @@ class ImportPackageResolver extends PackageResolver { next: DependencyRequestPatterns; rootName: string; + manifestTree: ?LogicalManifestTree; find(req: DependencyRequestPattern): Promise { this.next.push(req); @@ -229,7 +238,9 @@ class ImportPackageResolver extends PackageResolver { if (this.activity) { this.activity.tick(req.pattern); } - const request = new ImportPackageRequest(req, this); + const {name} = normalizePattern(req.pattern); + const manifest = this.manifestTree ? await this.manifestTree.getManifestFor(name, req.parentNames) : null; + const request = new ImportPackageRequest(req, manifest, this); await request.find({fresh: false}); } @@ -276,12 +287,33 @@ export class Import extends Install { this.resolver = new ImportPackageResolver(this.config, this.lockfile); this.linker = new PackageLinker(config, this.resolver); } - + async createManifestTree(): Promise { + try { + const packageLock = await fs.readFile(path.join(this.config.cwd, NPM_LOCK_FILENAME)); + const packageJson = await fs.readFile(path.join(this.config.cwd, NODE_PACKAGE_JSON)); + return new LogicalManifestTree(packageJson, packageLock, this.config.cwd); + } catch (e) { + throw new MessageError(this.reporter.lang('importSourceFilesCorrupted')); + } + } async init(): Promise> { if (await fs.exists(path.join(this.config.cwd, LOCKFILE_FILENAME))) { throw new MessageError(this.reporter.lang('lockfileExists')); } - await verifyTreeCheck(this.config, this.reporter, {}, []); + const importSource = (await fs.exists(path.join(this.config.cwd, NPM_LOCK_FILENAME))) + ? 'package-lock.json' + : 'node_modules'; + if (importSource === 'package-lock.json') { + this.reporter.info(this.reporter.lang('importPackageLock')); + const tree = await this.createManifestTree(); + if (this.resolver instanceof ImportPackageResolver) { + this.resolver.manifestTree = tree; + } + } + if (importSource === 'node_modules') { + this.reporter.info(this.reporter.lang('importNodeModules')); + await verifyTreeCheck(this.config, this.reporter, {}, []); + } const {requests, patterns, manifest} = await this.fetchRequestFromCwd(); if (manifest.name && this.resolver instanceof ImportPackageResolver) { this.resolver.rootName = manifest.name; diff --git a/src/constants.js b/src/constants.js index e9cb7cf26c..7a290f851b 100644 --- a/src/constants.js +++ b/src/constants.js @@ -88,6 +88,8 @@ export const TARBALL_FILENAME = '.yarn-tarball.tgz'; export const CLEAN_FILENAME = '.yarnclean'; export const ACCESS_FILENAME = '.yarn-access'; +export const NPM_LOCK_FILENAME = 'package-lock.json'; + export const DEFAULT_INDENT = ' '; export const SINGLE_INSTANCE_PORT = 31997; export const SINGLE_INSTANCE_FILENAME = '.yarn-single-instance'; diff --git a/src/reporters/lang/en.js b/src/reporters/lang/en.js index d402e27a7c..387584b265 100644 --- a/src/reporters/lang/en.js +++ b/src/reporters/lang/en.js @@ -380,6 +380,9 @@ const messages = { importFailed: 'Import of $0 for $1 failed, resolving normally.', importResolveFailed: 'Import of $0 failed starting in $1', importResolvedRangeMatch: 'Using version $0 of $1 instead of $2 for $3', + importSourceFilesCorrupted: 'Failed to import from package-lock.json, source file(s) corrupted', + importPackageLock: 'found npm package-lock.json, converting to yarn.lock', + importNodeModules: 'creating yarn.lock from local node_modules folder', packageContainsYarnAsGlobal: 'Installing Yarn via Yarn will result in you having two separate versions of Yarn installed at the same time, which is not recommended. To update Yarn please follow https://yarnpkg.com/en/docs/install .', diff --git a/src/types.js b/src/types.js index 6252b89ae8..fcb36c4331 100644 --- a/src/types.js +++ b/src/types.js @@ -96,6 +96,7 @@ export type Manifest = { _uid: string, _remote?: ?PackageRemote, + _resolved?: string, dist?: { tarball: string, diff --git a/src/util/logical-manifest-tree.js b/src/util/logical-manifest-tree.js new file mode 100644 index 0000000000..6aad0316cd --- /dev/null +++ b/src/util/logical-manifest-tree.js @@ -0,0 +1,37 @@ +/* @flow */ + +import npmLogicalTree from 'npm-logical-tree'; +import pacote from 'pacote'; +import os from 'os'; +import path from 'path'; + +import type {Manifest} from '../types.js'; + +export class LogicalManifestTree { + constructor(packageJson: string, packageLock: string, packageDir: string) { + this.tree = npmLogicalTree(JSON.parse(packageJson), JSON.parse(packageLock)); + this.packageDir = packageDir; + } + + tree: Object; + packageDir: string; + + _fetchManifest(node: Object): Promise { + const version = node.version.replace(/^file:/, `file:${this.packageDir}${path.sep}`); + return pacote.manifest(`${node.name}@${version}`, {cache: os.tmpdir()}); + } + _findNode(name: string, parentNames?: Array): Object { + const parentTree = parentNames + ? parentNames.reduce((node, ancestor) => { + const ancestorNode = node.dependencies.get(ancestor); + return ancestorNode; + }, this.tree) + : this.tree; + const node = parentTree.dependencies.get(name); + return node; + } + getManifestFor(name: string, parentNames?: Array): Promise { + const node = this._findNode(name, parentNames); + return this._fetchManifest(node); + } +} From 5d4ba09fb691c5503c50340f8ac809282e826e15 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Sun, 29 Apr 2018 20:43:29 +0200 Subject: [PATCH 04/14] fix(import): remove package-lock.json support for node 4 --- __tests__/commands/import.js | 106 ++++++++++++++++++----------------- src/cli/commands/import.js | 9 ++- 2 files changed, 61 insertions(+), 54 deletions(-) diff --git a/__tests__/commands/import.js b/__tests__/commands/import.js index 28b61f4b3a..89fec43c7a 100644 --- a/__tests__/commands/import.js +++ b/__tests__/commands/import.js @@ -6,11 +6,13 @@ import * as importCmd from '../../src/cli/commands/import.js'; import Lockfile from '../../src/lockfile'; import * as fs from '../../src/util/fs.js'; import {run as buildRun} from './_helpers.js'; +import semver from 'semver'; const YARN_VERSION_REGEX = /yarn v\S+/; const YARN_VERSION = require('../../package.json').version; const NODE_VERSION_REGEX = /node \S+/; const NODE_VERSION = process.version; +const nodeVersion = process.versions.node.split('-')[0]; jasmine.DEFAULT_TIMEOUT_INTERVAL = 120000; @@ -72,51 +74,26 @@ test.concurrent('import shallow deps', () => { return runImport([], {}, 'shallow', checkReporterAndLockfile({importFrom})); }); -test.concurrent('import shallow deps from package-lock.json', () => { - const importFrom = 'package-lock.json'; - return runImport([], {}, 'shallow-package-lock', checkReporterAndLockfile({importFrom})); -}); - test.concurrent('import deep deps', () => { const importFrom = 'node_modules'; return runImport([], {}, 'deep', checkReporterAndLockfile({importFrom})); }); -test.concurrent('import deep deps from package-lock.json', () => { - const importFrom = 'package-lock.json'; - return runImport([], {}, 'deep-package-lock', checkReporterAndLockfile({importFrom})); -}); - test.concurrent('import shallow dev deps', () => { const importFrom = 'node_modules'; return runImport([], {}, 'shallow-dev', checkReporterAndLockfile({importFrom})); }); -test.concurrent('import shallow dev deps from package-lock.json', () => { - const importFrom = 'package-lock.json'; - return runImport([], {}, 'shallow-dev-package-lock', checkReporterAndLockfile({importFrom})); -}); - test.concurrent('import github deps', () => { const importFrom = 'node_modules'; return runImport([], {}, 'github', checkReporterAndLockfile({importFrom})); }); -test.concurrent('import github deps from package-lock.json', () => { - const importFrom = 'package-lock.json'; - return runImport([], {}, 'github-package-lock', checkReporterAndLockfile({importFrom})); -}); - test.concurrent('import file deps', () => { const importFrom = 'node_modules'; return runImport([], {}, 'file', checkReporterAndLockfile({importFrom})); }); -test.concurrent('import file deps from package-lock.json', () => { - const importFrom = 'package-lock.json'; - return runImport([], {}, 'file-package-lock', checkReporterAndLockfile({importFrom})); -}); - test.concurrent('throw on missing dev deps', async () => { let thrown = false; try { @@ -127,38 +104,12 @@ test.concurrent('throw on missing dev deps', async () => { expect(thrown).toBeTruthy(); }); -test.concurrent('throw on corrupted package-lock.json', async () => { - let thrown = false; - try { - await runImport([], {}, 'corrupted-package-lock'); - } catch (err) { - thrown = true; - } - expect(thrown).toBeTruthy(); -}); - -test.concurrent('throw on corrupted package-lock.json - missing deep dependencies', async () => { - let thrown = false; - try { - await runImport([], {}, 'corrupted-package-lock-missing-deps'); - } catch (err) { - thrown = true; - } - expect(thrown).toBeTruthy(); -}); - test.concurrent('including Yarn and Node version in yarn.lock', () => { return runImport([], {production: true}, 'versions-yarn-lock', async (config, reporter) => { await checkLockfileWithVersions(config, reporter); }); }); -test.concurrent('including Yarn and Node version in yarn.lock from package-lock.json', () => { - return runImport([], {production: true}, 'versions-yarn-lock-package-lock', async (config, reporter) => { - await checkLockfileWithVersions(config, reporter); - }); -}); - test.concurrent('import missing dev deps in production', () => { return runImport([], {production: true}, 'missing-dev', async (config, reporter) => { expect(reporterErrors(reporter).length).toEqual(1); @@ -188,3 +139,56 @@ test.concurrent('throw when yarn.lock exists', async () => { } expect(thrown).toBeTruthy(); }); + +if (semver.satisfies(nodeVersion, '>=5.0.0')) { + test.concurrent('import shallow deps from package-lock.json', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'shallow-package-lock', checkReporterAndLockfile({importFrom})); + }); + + test.concurrent('import deep deps from package-lock.json', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'deep-package-lock', checkReporterAndLockfile({importFrom})); + }); + + test.concurrent('import shallow dev deps from package-lock.json', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'shallow-dev-package-lock', checkReporterAndLockfile({importFrom})); + }); + + test.concurrent('import github deps from package-lock.json', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'github-package-lock', checkReporterAndLockfile({importFrom})); + }); + + test.concurrent('import file deps from package-lock.json', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'file-package-lock', checkReporterAndLockfile({importFrom})); + }); + + test.concurrent('throw on corrupted package-lock.json', async () => { + let thrown = false; + try { + await runImport([], {}, 'corrupted-package-lock'); + } catch (err) { + thrown = true; + } + expect(thrown).toBeTruthy(); + }); + + test.concurrent('throw on corrupted package-lock.json - missing deep dependencies', async () => { + let thrown = false; + try { + await runImport([], {}, 'corrupted-package-lock-missing-deps'); + } catch (err) { + thrown = true; + } + expect(thrown).toBeTruthy(); + }); + + test.concurrent('including Yarn and Node version in yarn.lock from package-lock.json', () => { + return runImport([], {production: true}, 'versions-yarn-lock-package-lock', async (config, reporter) => { + await checkLockfileWithVersions(config, reporter); + }); + }); +} diff --git a/src/cli/commands/import.js b/src/cli/commands/import.js index 4e5c959c4b..6c01fd9897 100644 --- a/src/cli/commands/import.js +++ b/src/cli/commands/import.js @@ -24,12 +24,14 @@ import {LogicalManifestTree} from '../../util/logical-manifest-tree'; import * as fs from '../../util/fs.js'; import * as util from '../../util/misc.js'; import {YARN_REGISTRY, LOCKFILE_FILENAME, NODE_PACKAGE_JSON, NPM_LOCK_FILENAME} from '../../constants.js'; +import semver from 'semver'; const NPM_REGISTRY = /http[s]:\/\/registry.npmjs.org/g; const invariant = require('invariant'); const path = require('path'); const uuid = require('uuid'); +const nodeVersion = process.versions.node.split('-')[0]; export const noArguments = true; @@ -300,9 +302,10 @@ export class Import extends Install { if (await fs.exists(path.join(this.config.cwd, LOCKFILE_FILENAME))) { throw new MessageError(this.reporter.lang('lockfileExists')); } - const importSource = (await fs.exists(path.join(this.config.cwd, NPM_LOCK_FILENAME))) - ? 'package-lock.json' - : 'node_modules'; + const importSource = + (await fs.exists(path.join(this.config.cwd, NPM_LOCK_FILENAME))) && semver.satisfies(nodeVersion, '>=5.0.0') + ? 'package-lock.json' + : 'node_modules'; if (importSource === 'package-lock.json') { this.reporter.info(this.reporter.lang('importPackageLock')); const tree = await this.createManifestTree(); From 073a8a76331f0129047e31757a77802bcfb1d504 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Sun, 6 May 2018 16:11:20 +0200 Subject: [PATCH 05/14] refactor(import): remove pacote and resolve manifests natively --- package.json | 1 - src/cli/commands/import.js | 69 ++-- src/util/logical-dependency-tree.js | 27 ++ src/util/logical-manifest-tree.js | 37 --- yarn.lock | 487 +--------------------------- 5 files changed, 92 insertions(+), 529 deletions(-) create mode 100644 src/util/logical-dependency-tree.js delete mode 100644 src/util/logical-manifest-tree.js diff --git a/package.json b/package.json index 6822cfce36..ecfea05dd7 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "normalize-url": "^2.0.0", "npm-logical-tree": "^1.2.1", "object-path": "^0.11.2", - "pacote": "^8.1.1", "proper-lockfile": "^2.0.0", "puka": "^1.0.0", "read": "^1.0.7", diff --git a/src/cli/commands/import.js b/src/cli/commands/import.js index 6c01fd9897..76cd947f99 100644 --- a/src/cli/commands/import.js +++ b/src/cli/commands/import.js @@ -20,7 +20,7 @@ import PackageLinker from '../../package-linker.js'; import * as compatibility from '../../package-compatibility.js'; import Lockfile from '../../lockfile'; import {normalizePattern} from '../../util/normalize-pattern.js'; -import {LogicalManifestTree} from '../../util/logical-manifest-tree'; +import {LogicalDependencyTree} from '../../util/logical-dependency-tree'; import * as fs from '../../util/fs.js'; import * as util from '../../util/misc.js'; import {YARN_REGISTRY, LOCKFILE_FILENAME, NODE_PACKAGE_JSON, NPM_LOCK_FILENAME} from '../../constants.js'; @@ -48,8 +48,7 @@ class ImportResolver extends BaseResolver { resolveHostedGit(info: Manifest, Resolver: Class): Manifest { const {range} = normalizePattern(this.pattern); const exploded = explodeHostedGitFragment(range, this.reporter); - const resolvedExploded = info._resolved ? explodeHostedGitFragment(info._resolved, this.reporter) : {}; - const hash = (info: any).gitHead || resolvedExploded.hash; + const hash = (info: any).gitHead; invariant(hash, 'expected package gitHead'); const url = Resolver.getTarballUrl(exploded, hash); info._uid = hash; @@ -154,9 +153,26 @@ class ImportResolver extends BaseResolver { return this.resolveImport(info); } + async resolveFixedVersion(fixedVersionPattern: string): Promise { + const {range} = normalizePattern(fixedVersionPattern); + const exoticResolver = getExoticResolver(range); + const manifest = exoticResolver + ? await this.request.findExoticVersionInfo(exoticResolver, range) + : await this.request.findVersionOnRegistry(fixedVersionPattern); + return manifest; + } + async resolve(): Promise { - if (this.request instanceof ImportPackageRequest && this.request.manifest) { - return this.resolveImport(this.request.manifest); + if (this.request instanceof ImportPackageRequest && this.request.fixedVersionPattern) { + const {fixedVersionPattern} = this.request; + const info = await this.config.getCache(`import-resolver-${fixedVersionPattern}`, () => + this.resolveFixedVersion(fixedVersionPattern), + ); + if (info) { + return info; + } + const {name} = normalizePattern(this.pattern); + throw new MessageError(this.reporter.lang('importResolveFailed', name, this.getCwd())); } else { const {name} = normalizePattern(this.pattern); let cwd = this.getCwd(); @@ -174,14 +190,14 @@ class ImportResolver extends BaseResolver { } class ImportPackageRequest extends PackageRequest { - constructor(req: DependencyRequestPattern, manifest: ?Manifest, resolver: PackageResolver) { + constructor(req: DependencyRequestPattern, fixedVersionPattern: ?string, resolver: PackageResolver) { super(req, resolver); this.import = this.parentRequest instanceof ImportPackageRequest ? this.parentRequest.import : true; - this.manifest = manifest; + this.fixedVersionPattern = fixedVersionPattern; } import: boolean; - manifest: ?Manifest; + fixedVersionPattern: ?string; getRootName(): string { return (this.resolver instanceof ImportPackageResolver && this.resolver.rootName) || 'root'; @@ -229,7 +245,7 @@ class ImportPackageResolver extends PackageResolver { next: DependencyRequestPatterns; rootName: string; - manifestTree: ?LogicalManifestTree; + dependencyTree: ?LogicalDependencyTree; find(req: DependencyRequestPattern): Promise { this.next.push(req); @@ -241,8 +257,10 @@ class ImportPackageResolver extends PackageResolver { this.activity.tick(req.pattern); } const {name} = normalizePattern(req.pattern); - const manifest = this.manifestTree ? await this.manifestTree.getManifestFor(name, req.parentNames) : null; - const request = new ImportPackageRequest(req, manifest, this); + const fixedVersionPattern = this.dependencyTree + ? this.dependencyTree.getFixedVersionPattern(name, req.parentNames) + : null; + const request = new ImportPackageRequest(req, fixedVersionPattern, this); await request.find({fresh: false}); } @@ -289,28 +307,39 @@ export class Import extends Install { this.resolver = new ImportPackageResolver(this.config, this.lockfile); this.linker = new PackageLinker(config, this.resolver); } - async createManifestTree(): Promise { + createLogicalDependencyTree(packageJson: ?string, packageLock: ?string): LogicalDependencyTree { try { - const packageLock = await fs.readFile(path.join(this.config.cwd, NPM_LOCK_FILENAME)); - const packageJson = await fs.readFile(path.join(this.config.cwd, NODE_PACKAGE_JSON)); - return new LogicalManifestTree(packageJson, packageLock, this.config.cwd); + if (!packageJson || !packageLock) { + throw new Error('files missing'); + } + return new LogicalDependencyTree(packageJson, packageLock); } catch (e) { throw new MessageError(this.reporter.lang('importSourceFilesCorrupted')); } } + async getExternalLockfileContents(): Promise<{packageJson: ?string, packageLock: ?string}> { + try { + const [packageJson, packageLock] = await Promise.all([ + fs.readFile(path.join(this.config.cwd, NODE_PACKAGE_JSON)), + fs.readFile(path.join(this.config.cwd, NPM_LOCK_FILENAME)), + ]); + return {packageJson, packageLock}; + } catch (e) { + return {packageJson: null, packageLock: null}; + } + } async init(): Promise> { if (await fs.exists(path.join(this.config.cwd, LOCKFILE_FILENAME))) { throw new MessageError(this.reporter.lang('lockfileExists')); } + const {packageJson, packageLock} = await this.getExternalLockfileContents(); const importSource = - (await fs.exists(path.join(this.config.cwd, NPM_LOCK_FILENAME))) && semver.satisfies(nodeVersion, '>=5.0.0') - ? 'package-lock.json' - : 'node_modules'; + packageJson && packageLock && semver.satisfies(nodeVersion, '>=5.0.0') ? 'package-lock.json' : 'node_modules'; if (importSource === 'package-lock.json') { this.reporter.info(this.reporter.lang('importPackageLock')); - const tree = await this.createManifestTree(); + const tree = this.createLogicalDependencyTree(packageJson, packageLock); if (this.resolver instanceof ImportPackageResolver) { - this.resolver.manifestTree = tree; + this.resolver.dependencyTree = tree; } } if (importSource === 'node_modules') { diff --git a/src/util/logical-dependency-tree.js b/src/util/logical-dependency-tree.js new file mode 100644 index 0000000000..7b43d6c972 --- /dev/null +++ b/src/util/logical-dependency-tree.js @@ -0,0 +1,27 @@ +/* @flow */ + +import npmLogicalTree from 'npm-logical-tree'; + +export class LogicalDependencyTree { + constructor(packageJson: string, packageLock: string) { + this.tree = npmLogicalTree(JSON.parse(packageJson), JSON.parse(packageLock)); + } + + tree: Object; + + _findNode(name: string, parentNames?: Array): Object { + const parentTree = parentNames + ? parentNames.reduce((node, ancestor) => { + const ancestorNode = node.dependencies.get(ancestor); + return ancestorNode; + }, this.tree) + : this.tree; + const node = parentTree.dependencies.get(name); + return node; + } + getFixedVersionPattern(name: string, parentNames?: Array): string { + const node = this._findNode(name, parentNames); + const version = node.version; + return `${node.name}@${version}`; + } +} diff --git a/src/util/logical-manifest-tree.js b/src/util/logical-manifest-tree.js deleted file mode 100644 index 6aad0316cd..0000000000 --- a/src/util/logical-manifest-tree.js +++ /dev/null @@ -1,37 +0,0 @@ -/* @flow */ - -import npmLogicalTree from 'npm-logical-tree'; -import pacote from 'pacote'; -import os from 'os'; -import path from 'path'; - -import type {Manifest} from '../types.js'; - -export class LogicalManifestTree { - constructor(packageJson: string, packageLock: string, packageDir: string) { - this.tree = npmLogicalTree(JSON.parse(packageJson), JSON.parse(packageLock)); - this.packageDir = packageDir; - } - - tree: Object; - packageDir: string; - - _fetchManifest(node: Object): Promise { - const version = node.version.replace(/^file:/, `file:${this.packageDir}${path.sep}`); - return pacote.manifest(`${node.name}@${version}`, {cache: os.tmpdir()}); - } - _findNode(name: string, parentNames?: Array): Object { - const parentTree = parentNames - ? parentNames.reduce((node, ancestor) => { - const ancestorNode = node.dependencies.get(ancestor); - return ancestorNode; - }, this.tree) - : this.tree; - const node = parentTree.dependencies.get(name); - return node; - } - getManifestFor(name: string, parentNames?: Array): Promise { - const node = this._findNode(name, parentNames); - return this._fetchManifest(node); - } -} diff --git a/yarn.lock b/yarn.lock index c2eb2d74b3..87129823ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -75,18 +75,6 @@ acorn@^5.3.0: version "5.5.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" -agent-base@4, agent-base@^4.1.0, agent-base@~4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.0.tgz#9838b5c3392b962bad031e6a4c5e1024abec45ce" - dependencies: - es6-promisify "^5.0.0" - -agentkeepalive@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.4.1.tgz#aa95aebc3a749bca5ed53e3880a09f5235b48f0c" - dependencies: - humanize-ms "^1.2.1" - ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" @@ -184,10 +172,6 @@ aproba@^1.0.3: version "1.1.1" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" @@ -1204,10 +1188,6 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" - bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" @@ -1355,10 +1335,6 @@ buffer-fill@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.1.tgz#76d825c4d6e50e06b7a31eb520c04d08cc235071" -buffer-from@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" - buffer-shims@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" @@ -1387,33 +1363,10 @@ builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - bytes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" -cacache@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.0.1.tgz#63cde88b51aa5f50741e34833c9d0048a138d1dd" - dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - figgy-pudding "^3.1.0" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.2" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^6.0.0" - unique-filename "^1.1.0" - y18n "^4.0.0" - cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1733,15 +1686,6 @@ concat-stream@^1.4.7, concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -1768,17 +1712,6 @@ convert-source-map@1.X, convert-source-map@^1.4.0, convert-source-map@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -1892,10 +1825,6 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - cz-conventional-changelog@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-1.2.0.tgz#2bca04964c8919b23f3fd6a89ef5e6008b31b3f8" @@ -1957,18 +1886,18 @@ debug@2.X, debug@^2.2.0, debug@^2.6.8: dependencies: ms "2.0.0" -debug@3.1.0, debug@^3.0.0, debug@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - dependencies: - ms "2.0.0" - debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" +debug@^3.0.0, debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + decamelize@^1.0.0, decamelize@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2128,11 +2057,11 @@ duplexer2@0.0.2: dependencies: readable-stream "~1.1.9" -duplexify@^3.1.2, duplexify@^3.4.2, duplexify@^3.5.0: - version "3.5.4" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" +duplexify@^3.1.2, duplexify@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" dependencies: - end-of-stream "^1.0.0" + end-of-stream "1.0.0" inherits "^2.0.1" readable-stream "^2.0.0" stream-shift "^1.0.0" @@ -2171,11 +2100,11 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" +end-of-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" dependencies: - iconv-lite "~0.4.13" + once "~1.3.0" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.0" @@ -2198,10 +2127,6 @@ enhanced-resolve@^3.0.0: object-assign "^4.0.1" tapable "^0.2.5" -err-code@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" - errno@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" @@ -2241,16 +2166,6 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" -es6-promise@^4.0.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - dependencies: - es6-promise "^4.0.3" - escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2600,10 +2515,6 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" -figgy-pudding@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.1.0.tgz#a77ed2284175976c424b390b298569e9df86dd1e" - figures@^1.3.5: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -2751,13 +2662,6 @@ flow-bin@^0.66.0: version "0.66.0" resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.66.0.tgz#a96dde7015dc3343fd552a7b4963c02be705ca26" -flush-write-stream@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.4" - for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2802,13 +2706,6 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -2825,21 +2722,6 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - dependencies: - minipass "^2.2.1" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2906,10 +2788,6 @@ gaze@^0.5.1: dependencies: globule "~0.1.0" -genfun@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/genfun/-/genfun-4.0.1.tgz#ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1" - get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -3380,27 +3258,12 @@ hosted-git-info@^2.1.4: version "2.4.2" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" -hosted-git-info@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" - html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" dependencies: whatwg-encoding "^1.0.1" -http-cache-semantics@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - -http-proxy-agent@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" - dependencies: - agent-base "4" - debug "3.1.0" - http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -3421,19 +3284,6 @@ https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" -https-proxy-agent@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" - dependencies: - agent-base "^4.1.0" - debug "^3.1.0" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - dependencies: - ms "^2.0.0" - iconv-lite@0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" @@ -3442,26 +3292,10 @@ iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" -iconv-lite@~0.4.13: - version "0.4.21" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.21.tgz#c47f8733d02171189ebc4a400f3218d348094798" - dependencies: - safer-buffer "^2.1.0" - ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - dependencies: - minimatch "^3.0.4" - ignore@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" @@ -3492,7 +3326,7 @@ inherits@1: version "1.0.2" resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -3555,10 +3389,6 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - is-absolute@^0.2.3: version "0.2.6" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" @@ -4295,10 +4125,6 @@ json-loader@^0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" -json-parse-better-errors@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" @@ -4630,29 +4456,6 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" -lru-cache@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -make-fetch-happen@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" - dependencies: - agentkeepalive "^3.4.1" - cacache "^11.0.1" - http-cache-semantics "^3.8.1" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.1" - lru-cache "^4.1.2" - mississippi "^3.0.0" - node-fetch-npm "^2.0.2" - promise-retry "^1.1.1" - socks-proxy-agent "^4.0.0" - ssri "^6.0.0" - makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -4794,34 +4597,6 @@ minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -minipass@^2.2.1, minipass@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.4.tgz#03c824d84551ec38a8d1bb5bc350a5a30a354a40" - dependencies: - safe-buffer "^5.1.1" - yallist "^3.0.0" - -minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" - dependencies: - minipass "^2.2.1" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" @@ -4839,25 +4614,10 @@ mock-stdin@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/mock-stdin/-/mock-stdin-0.3.1.tgz#c657d9642d90786435c64ca5e99bbd4d09bd7dd3" -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -ms@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - multipipe@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" @@ -4911,14 +4671,6 @@ node-emoji@^1.6.1: dependencies: string.prototype.codepointat "^0.2.0" -node-fetch-npm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" - dependencies: - encoding "^0.1.11" - json-parse-better-errors "^1.0.0" - safe-buffer "^5.1.1" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -5006,15 +4758,6 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -5029,37 +4772,10 @@ normalize-url@^2.0.0: query-string "^5.0.1" sort-keys "^2.0.0" -npm-bundled@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" - npm-logical-tree@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88" -npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" - dependencies: - hosted-git-info "^2.6.0" - osenv "^0.1.5" - semver "^5.5.0" - validate-npm-package-name "^3.0.0" - -npm-packlist@^1.1.10: - version "1.1.10" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-pick-manifest@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz#dc381bdd670c35d81655e1d5a94aa3dd4d87fce5" - dependencies: - npm-package-arg "^6.0.0" - semver "^5.4.1" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -5230,13 +4946,6 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -osenv@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -5251,35 +4960,6 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" -pacote@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-8.1.1.tgz#7ee85dad2bccf5524e5460508f833c60dddf5183" - dependencies: - bluebird "^3.5.1" - cacache "^11.0.1" - get-stream "^3.0.0" - glob "^7.1.2" - lru-cache "^4.1.2" - make-fetch-happen "^4.0.1" - minimatch "^3.0.4" - mississippi "^3.0.0" - mkdirp "^0.5.1" - normalize-package-data "^2.4.0" - npm-package-arg "^6.1.0" - npm-packlist "^1.1.10" - npm-pick-manifest "^2.1.0" - osenv "^0.1.5" - promise-inflight "^1.0.1" - promise-retry "^1.1.1" - protoduck "^5.0.0" - rimraf "^2.6.2" - safe-buffer "^5.1.1" - semver "^5.5.0" - ssri "^6.0.0" - tar "^4.4.1" - unique-filename "^1.1.0" - which "^1.3.0" - pad-right@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774" @@ -5290,14 +4970,6 @@ pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" -parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - dependencies: - cyclist "~0.2.2" - inherits "^2.0.3" - readable-stream "^2.1.5" - parse-asn1@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" @@ -5493,10 +5165,6 @@ process-nextick-args@^1.0.6, process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - process@^0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -5505,17 +5173,6 @@ progress@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - -promise-retry@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" - dependencies: - err-code "^1.0.0" - retry "^0.10.0" - proper-lockfile@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-2.0.1.tgz#159fb06193d32003f4b3691dd2ec1a634aa80d1d" @@ -5523,12 +5180,6 @@ proper-lockfile@^2.0.0: graceful-fs "^4.1.2" retry "^0.10.0" -protoduck@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.0.tgz#752145e6be0ad834cb25716f670a713c860dce70" - dependencies: - genfun "^4.0.1" - prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -5558,13 +5209,6 @@ pump@^1.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - pumpify@^1.3.3: version "1.3.5" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.3.5.tgz#1b671c619940abcaeac0ad0e3a3c164be760993b" @@ -5650,18 +5294,6 @@ read@^1.0.7: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@^2.0.4: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - "readable-stream@>=1.0.33-1 <1.1.0-0": version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -5951,7 +5583,7 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.0, rimraf@^2.5.1, rimraf@^2.6.1: dependencies: glob "^7.0.5" -rimraf@^2.5.4, rimraf@^2.6.2: +rimraf@^2.5.4: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -5974,12 +5606,6 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - dependencies: - aproba "^1.1.1" - rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" @@ -5992,20 +5618,12 @@ safe-buffer@^5.1.1, safe-buffer@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" dependencies: ret "~0.1.10" -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - sane@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/sane/-/sane-2.2.0.tgz#d6d2e2fcab00e3d283c93b912b7c3a20846f1d56" @@ -6120,10 +5738,6 @@ slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" -smart-buffer@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz#07ea1ca8d4db24eb4cac86537d7d18995221ace3" - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -6163,20 +5777,6 @@ sntp@2.x.x: dependencies: hoek "4.x.x" -socks-proxy-agent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz#5936bf8b707a993079c6f37db2091821bffa6473" - dependencies: - agent-base "~4.2.0" - socks "~2.2.0" - -socks@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.2.0.tgz#144985b3331ced3ab5ccbee640ab7cb7d43fdd1f" - dependencies: - ip "^1.1.5" - smart-buffer "^4.0.1" - sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" @@ -6304,10 +5904,6 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -ssri@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.0.tgz#fc21bfc90e03275ac3e23d5a42e38b8a1cbc130d" - stable@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10" @@ -6338,13 +5934,6 @@ stream-consume@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" -stream-each@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - stream-http@^2.3.1: version "2.7.1" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.1.tgz#546a51741ad5a6b07e9e31b0b10441a917df528a" @@ -6406,12 +5995,6 @@ string_decoder@~1.0.0: dependencies: safe-buffer "^5.0.1" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - dependencies: - safe-buffer "~5.1.0" - stringstream@~0.0.4, stringstream@~0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" @@ -6557,18 +6140,6 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" -tar@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.1.tgz#b25d5a8470c976fd7a9a8a350f42c59e9fa81749" - dependencies: - chownr "^1.0.1" - fs-minipass "^1.2.5" - minipass "^2.2.4" - minizlib "^1.1.0" - mkdirp "^0.5.0" - safe-buffer "^5.1.1" - yallist "^3.0.2" - temp@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" @@ -6772,18 +6343,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^0.4.3" -unique-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" - dependencies: - imurmurhash "^0.1.4" - unique-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" @@ -6869,12 +6428,6 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - dependencies: - builtins "^1.0.3" - verror@1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" @@ -7121,18 +6674,10 @@ y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" - yargs-parser@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" From 3a9f0a591091b350ddd783ca66c195c72297cf38 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Sun, 6 May 2018 16:23:56 +0200 Subject: [PATCH 06/14] test(fixtures): update request-cache --- .../GET/registry.yarnpkg.com/commander.bin | Bin 2713 -> 4259 bytes .../commander/-/commander-2.15.1.tgz.bin | Bin 18596 -> 18596 bytes .../commander/-/commander-2.8.1.tgz.bin | Bin 13744 -> 13757 bytes .../commander/-/commander-2.9.0.tgz.bin | Bin 14126 -> 14138 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/commander.bin b/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/commander.bin index c3eb3154c50231b0106ae252ba325c3c134af15d..a4dc4423ac70e4f3ac3399188e85eef3b5165b27 100644 GIT binary patch delta 4065 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 delta 2497 zcmZXPdpHw{8^`S=oz$w;ahHbVkg=;>^7!HM@ z!7vOC2E`%Je5j=~9BPQ--+)?qppk}H1l5h|hQ^?%2s9jp@W4VnP#8EB=7xs4!;n}w zbQ?w(8i8qSUpkZKZ%n!z_^%kUEr!4_|I-@s*C1xrZvFufo2yj12c1U6f&c#nLmUi= zgByZR*^q#;W+XSyZOA|ag`v?o*fuL!! zdD4s#P-s#Wz<>h<$~r-aG$xBih2Vp6VD}%mk9#l-28Tkd3C{n{e>iYp8%rYbzZPOa z5Aer9AK36ynoV{ZFR+}&xu0T45W`*t{n zCkH6|PH$}^}HHb^m(Fqkvv%lg&_S*H)TG}uH!2gd{wl1fY%wSyaEh;MFwRXfG ziDymZ2K}`#CK+A%7O$|{Du^#PT3;JY>pzlnWO{67_F@t5ajjskHjO8${kBqfR+F3`nJYG<;63}jSdphA?6G@Z z;|$1Onu&F6PmXJ}BBg_WTc+yt9xbwBm=+WYsnJc{6YGpDdfwxnFzpuGM z#$Qqr7GPQ~=W87kP`H?gk<3Zva+E?&6uvi zNc%y9tg+j*i_twUxt$dE95jwa&>+~-CZA`MvuaNU9BR&A} z5-M0gnefWfrLHGVU2)x=y1ZvZ5HF6OZxgL^w;bd7LA|}C;$BIfyz0=jv$^SvCgNFA zq_g)U2aJ@L`+HJ=+~F4rUiAt?*6(^HXU`#@q-xpCf-p&`IJjR~o`>2iC9k>mS=@7A z{=Onk&uI5_VrJi1dpe=j-em+sBfWl6z&8~tpf&aV=B9m(0uaNgtktK<_M-{QP3`c> zPf++XkcsUFHKeKS=UW}Zu;In0_4^Oo(hq+t3$&D>{=s+|1vIGmxU+19oOzo}Fx0Ws ztgeiXtA2~id4n5vnM*{<>U-$i(H(%K={0khUk@JK6>hJx)Qdh@o!+;Q+_xYhqro~M zuFCnV_w6c9y0>9XmU7gR@JmwR6X6qIpTreCi3{q-`R5B2!ER(^R7$$dHiJEoURV zGYja;d!{4tDI`VQGWu=nob30uj-peKv-_G$ieu_Qfvfv%Z(7x?GsK#QY&37N&<2*! zLS?-sc{?OaN0MP>vY;O%=k-ZnZJczXWhAn-91xg%_e`atmB$QY%L}yt9}3ZWb?IX< zez)J@S<`|XD@nSS-o`oicb}s;rRoY&I-!-oImYhx#zdWd>V;xP!ly&;*Nmw}RgV@e zH<|sSwkC>Y`#a-K#o@=nGqH|1YNRu!2BwN-3u+_ggSF?{x{LI#-wun--iN%lcv*SC zS}KwB<;#izR`*v;inr^{em>;bcBoqS0|Nw zI<8mXclIl2*UFt2QGx-fu%9c68RBb3J776H_As<@kXxRuE@Ln6%W`Ay=P|aBGL3uh z-Om>c&L{#qa83U5AwP|+(-rHCfrCo-ozP-3qM&713X$xDTDn_FQuz$Xh*|x0?m+P2 zv2~DAow3HCl12)Pw0Q;!`5RF&eJ zmMyZRWF|#f25<*(&)`W>J9Yy4+X&^nSAAW;zCTEOak1`~>5hR#*RI1n^h9Ee##x+jJd0Fo^z^7jr)y~KwM2(D zy0O<=(!0XV`zsvv#ei`&!EtWfTTY6vP)qhfXw7$B)-1%^)O`PHU|R=2t4IUO$+mD| zwcuRDTw(nu39`r6n&{gl=$ZQCVt=u2ZFz0?@#WRNah>JVT&Clbb;@5I|9x5{a~kZj>TbHkz?_*1JX&i9|(-CDN|PgG@n$j1nbxpupk^+<*(@ z6r6yXGbB{>U+*8g3*KrhlwUJQ4r^ diff --git a/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/commander/-/commander-2.8.1.tgz.bin b/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/commander/-/commander-2.8.1.tgz.bin index 0d47f0dc565a5dea253662d5283946f1cba3138f..7c9abd023f84a71173b140a1bf93490ba68c4c22 100644 GIT binary patch delta 483 zcmYL_zityj5Qjy|ldeyNRxXf`Jih(!y+tm9br3|Hf;%E8*SmZ6DfZoIeMU}|R{-Tj zkdWx|NbmruSf{|nG^3eszTf=3eZ2jCer|>_!U8SK9io^hM2Y4~6ZQk|KB_78oaIzF zDW;0brK18H#g$^Nrfy0E6+%drvp2{e`X>0@tlYOpAVeUL{Dk`p_j6;{9_C#;gl?nJ z)*QgB{ERb-F;0^!vm0R1xu$Ns)2Q0}F`_vteILzmj>uF;ImXcYMU^H+WmX!ExUrN| z;(*awj?&}+ZNG)!S54PyRD6aaQq$zZTL19p#p_puVNT+)FHrjM%{zE|r;&XYTd!Lp z7>CQt>j!=I@?IUMs%GnhM&P_sX+q-&Wf}hxKn_1U_T{YR#8{4(BEWY#zwnNPIY#T*RD`_%+2cIs! ZYQ%|@Qq?(IawGCu!p(=`*YC3@`VU#=jfMaK delta 449 zcmZXQ&rZTX5XK`%5^f$inGGQx46FOE+wB?-h=7SSCP0WBx9t`hN=sT)IQa?^d=L}Q zo_rcFK7c0|h~Z!|nZwLC-|x$OOy8z2WNTT%`>?x0j`4b)hIie*uyY$_lnA+MP6o+H5ygq=fjEF^OzL;LfF z@9R8=%`{nLX$%{2?50ofE{n!dBEeay_+Mc5u3k*iAeW%iG7*}}pXfge31(^u)mYaF z<_K+Gk1ndjv8__^9`<$ir~`PllEB~H#Qq9nMqsx&+I$_IoRY0-5Y2QZLI3c!bKww& uJGEgS)rKv!Sr?A0Ffj?22Hu9f#z+E+x$rneI5e-Yd=9%ez4y<;5BUX>t$y7A diff --git a/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/commander/-/commander-2.9.0.tgz.bin b/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/commander/-/commander-2.9.0.tgz.bin index 9e8511642384bb81b838d78c4616e82585d41c7c..506039362b0c2358c5df551bf7e8e755ef100b2e 100644 GIT binary patch delta 470 zcmYL`y^hmB6oo}fOYV>m&1w{h2KmPGYkLNzSRyZrAQad{P)=sXiKWE0CiW^@t@aH- zc@G*Ycqe!U917B29ew)Fx!;>#&DUqo3*AQu3$)bth+>i6`ZC%yQDpU?GLR6x{b)y-Uh@@(iV+_4nmSK>WdZW;kYeP9D z78p;-Gz^Z=bbIh_Q@4#m`6tLnY8YG_<4(VyynMk36)X%sL*e|Lv+(*}A@k2`yKRVI z6mD-noYds%flGPLmG$0vg^K@Ovzbg7XEIt9I9lbScz*1h>0wb`IwhEA7)QvvuJt_( zzMfCFecv5a9A9oTvug)i?X-6@)9zzq8!($XUOR2Vwu#40&tTI}PmhzQS7ETYfsfZ; Y6yhXF62kfTASoozVD&ct@pCfpzvDNEA^-pY delta 467 zcmZXQy-EW?6ot_;kXmfyqMc-9?#%wpNQxL@1hWK^#h-F^XEs?_cV#!xr1BM%_#8HN z_CAb_&)_5yENt&R=R1eN_1XmeHjSfVIron=CNne zKu|7xmC~5=lyf&mM=;8$=R2oh7WY|Y>UK1puYtq@2?l?-Z}K!y^^An2&eF_i3DMkG zC5K@$TSvQqu4JBMF7(5w+2}=TBH_^WP&1~GaL30(d;ZO__H_^y5UOo+>qW`wuf3Bb zrmji1EM`@ilTMz8AGo zu3mTO5puWLxFKUxJs3^SmJ*VUB~O-!OprnMcJ;M$pwM9(VU*pOO2YVWxD$qUKhe4x z)7DjwHX9q3)g*a2*J-XQLke4YVcVROQRh|ycTB)sp%ZO< Date: Sun, 6 May 2018 16:34:36 +0200 Subject: [PATCH 07/14] docs(import): adjust help to mention importing from package-lock.json --- src/cli/commands/import.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cli/commands/import.js b/src/cli/commands/import.js index 76cd947f99..8c5df09353 100644 --- a/src/cli/commands/import.js +++ b/src/cli/commands/import.js @@ -361,7 +361,7 @@ export class Import extends Install { } export function setFlags(commander: Object) { - commander.description('Generates yarn.lock from an existing npm-installed node_modules folder.'); + commander.description('Generates yarn.lock from an npm package-lock.json file or an existing npm-installed node_modules folder.'); } export function hasWrapper(commander: Object, args: Array): boolean { From 94584b88fd09f36a3181bf85bebc95b1140c1ee3 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Sun, 6 May 2018 16:48:39 +0200 Subject: [PATCH 08/14] style(lint): line length --- src/cli/commands/import.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cli/commands/import.js b/src/cli/commands/import.js index 8c5df09353..f7575b87e7 100644 --- a/src/cli/commands/import.js +++ b/src/cli/commands/import.js @@ -361,7 +361,9 @@ export class Import extends Install { } export function setFlags(commander: Object) { - commander.description('Generates yarn.lock from an npm package-lock.json file or an existing npm-installed node_modules folder.'); + commander.description( + 'Generates yarn.lock from an npm package-lock.json file or an existing npm-installed node_modules folder.', + ); } export function hasWrapper(commander: Object, args: Array): boolean { From 87199728a50a70965fae5e6cf0c4307e87a184d7 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Sat, 12 May 2018 01:09:16 +0200 Subject: [PATCH 09/14] test(import): handle overlapping package versions --- __tests__/commands/import.js | 10 +++ .../deps/a/package.json | 8 +++ .../deps/b/package.json | 8 +++ .../package-lock.json | 37 +++++++++++ .../overlapping-package-lock/package.json | 11 ++++ .../overlapping-package-lock/yarn.lock.import | 21 ++++++ .../a/node_modules/safe-buffer/package.json | 62 ++++++++++++++++++ .../import/overlapping/deps/a/package.json | 8 +++ .../b/node_modules/safe-buffer/package.json | 62 ++++++++++++++++++ .../import/overlapping/deps/b/package.json | 8 +++ .../overlapping/node_modules/file-dep-a | 1 + .../overlapping/node_modules/file-dep-b | 1 + .../node_modules/safe-buffer/package.json | 59 +++++++++++++++++ .../fixtures/import/overlapping/package.json | 11 ++++ .../import/overlapping/yarn.lock.import | 21 ++++++ .../GET/registry.yarnpkg.com/safe-buffer.bin | Bin 1120 -> 2374 bytes .../safe-buffer/-/safe-buffer-5.0.1.tgz.bin | Bin 9458 -> 9468 bytes .../safe-buffer/-/safe-buffer-5.1.1.tgz.bin | Bin 9550 -> 9564 bytes .../safe-buffer/-/safe-buffer-5.1.2.tgz.bin | Bin 0 -> 10533 bytes 19 files changed, 328 insertions(+) create mode 100644 __tests__/fixtures/import/overlapping-package-lock/deps/a/package.json create mode 100644 __tests__/fixtures/import/overlapping-package-lock/deps/b/package.json create mode 100644 __tests__/fixtures/import/overlapping-package-lock/package-lock.json create mode 100644 __tests__/fixtures/import/overlapping-package-lock/package.json create mode 100644 __tests__/fixtures/import/overlapping-package-lock/yarn.lock.import create mode 100644 __tests__/fixtures/import/overlapping/deps/a/node_modules/safe-buffer/package.json create mode 100644 __tests__/fixtures/import/overlapping/deps/a/package.json create mode 100644 __tests__/fixtures/import/overlapping/deps/b/node_modules/safe-buffer/package.json create mode 100644 __tests__/fixtures/import/overlapping/deps/b/package.json create mode 120000 __tests__/fixtures/import/overlapping/node_modules/file-dep-a create mode 120000 __tests__/fixtures/import/overlapping/node_modules/file-dep-b create mode 100644 __tests__/fixtures/import/overlapping/node_modules/safe-buffer/package.json create mode 100644 __tests__/fixtures/import/overlapping/package.json create mode 100644 __tests__/fixtures/import/overlapping/yarn.lock.import create mode 100644 __tests__/fixtures/request-cache/GET/registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz.bin diff --git a/__tests__/commands/import.js b/__tests__/commands/import.js index 89fec43c7a..23f54e769f 100644 --- a/__tests__/commands/import.js +++ b/__tests__/commands/import.js @@ -94,6 +94,11 @@ test.concurrent('import file deps', () => { return runImport([], {}, 'file', checkReporterAndLockfile({importFrom})); }); +test.concurrent('import overlapping semver ranges successfully', () => { + const importFrom = 'node_modules'; + return runImport([], {}, 'overlapping', checkReporterAndLockfile({importFrom})); +}); + test.concurrent('throw on missing dev deps', async () => { let thrown = false; try { @@ -166,6 +171,11 @@ if (semver.satisfies(nodeVersion, '>=5.0.0')) { return runImport([], {}, 'file-package-lock', checkReporterAndLockfile({importFrom})); }); + test.concurrent('import overlapping semver ranges from package-lock.json successfully', () => { + const importFrom = 'package-lock.json'; + return runImport([], {}, 'overlapping-package-lock', checkReporterAndLockfile({importFrom})); + }); + test.concurrent('throw on corrupted package-lock.json', async () => { let thrown = false; try { diff --git a/__tests__/fixtures/import/overlapping-package-lock/deps/a/package.json b/__tests__/fixtures/import/overlapping-package-lock/deps/a/package.json new file mode 100644 index 0000000000..4d75530f73 --- /dev/null +++ b/__tests__/fixtures/import/overlapping-package-lock/deps/a/package.json @@ -0,0 +1,8 @@ +{ + "name": "file-dep-a", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.1" + } +} diff --git a/__tests__/fixtures/import/overlapping-package-lock/deps/b/package.json b/__tests__/fixtures/import/overlapping-package-lock/deps/b/package.json new file mode 100644 index 0000000000..6168fe1911 --- /dev/null +++ b/__tests__/fixtures/import/overlapping-package-lock/deps/b/package.json @@ -0,0 +1,8 @@ +{ + "name": "file-dep-b", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } +} diff --git a/__tests__/fixtures/import/overlapping-package-lock/package-lock.json b/__tests__/fixtures/import/overlapping-package-lock/package-lock.json new file mode 100644 index 0000000000..323f09e046 --- /dev/null +++ b/__tests__/fixtures/import/overlapping-package-lock/package-lock.json @@ -0,0 +1,37 @@ +{ + "name": "overlapping-package-lock", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "file-dep-a": { + "version": "file:deps/a", + "requires": { + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } + } + }, + "file-dep-b": { + "version": "file:deps/b", + "requires": { + "safe-buffer": "^5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.1", + "bundled": true + } + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + } + } +} diff --git a/__tests__/fixtures/import/overlapping-package-lock/package.json b/__tests__/fixtures/import/overlapping-package-lock/package.json new file mode 100644 index 0000000000..38092f2d8d --- /dev/null +++ b/__tests__/fixtures/import/overlapping-package-lock/package.json @@ -0,0 +1,11 @@ +{ + "name": "overlapping-package-lock", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "dependencies": { + "file-dep-a": "file:deps/a", + "file-dep-b": "file:deps/b", + "safe-buffer": "^5.1.1" + } +} diff --git a/__tests__/fixtures/import/overlapping-package-lock/yarn.lock.import b/__tests__/fixtures/import/overlapping-package-lock/yarn.lock.import new file mode 100644 index 0000000000..66143c7392 --- /dev/null +++ b/__tests__/fixtures/import/overlapping-package-lock/yarn.lock.import @@ -0,0 +1,21 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"file-dep-a@file:deps/a": + version "1.0.0" + dependencies: + safe-buffer "^5.1.1" + +"file-dep-b@file:deps/b": + version "1.0.0" + dependencies: + safe-buffer "^5.1.0" + +safe-buffer@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +safe-buffer@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" diff --git a/__tests__/fixtures/import/overlapping/deps/a/node_modules/safe-buffer/package.json b/__tests__/fixtures/import/overlapping/deps/a/node_modules/safe-buffer/package.json new file mode 100644 index 0000000000..c6c3037c0f --- /dev/null +++ b/__tests__/fixtures/import/overlapping/deps/a/node_modules/safe-buffer/package.json @@ -0,0 +1,62 @@ +{ + "_from": "safe-buffer@5.1.2", + "_id": "safe-buffer@5.1.2", + "_inBundle": false, + "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "_location": "/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.1.2", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.1.2", + "saveSpec": null, + "fetchSpec": "5.1.2" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "_shasum": "991ec69d296e0313747d59bdfd2b745c35f8828d", + "_spec": "safe-buffer@5.1.2", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + }, + "types": "index.d.ts", + "version": "5.1.2" +} diff --git a/__tests__/fixtures/import/overlapping/deps/a/package.json b/__tests__/fixtures/import/overlapping/deps/a/package.json new file mode 100644 index 0000000000..4d75530f73 --- /dev/null +++ b/__tests__/fixtures/import/overlapping/deps/a/package.json @@ -0,0 +1,8 @@ +{ + "name": "file-dep-a", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.1" + } +} diff --git a/__tests__/fixtures/import/overlapping/deps/b/node_modules/safe-buffer/package.json b/__tests__/fixtures/import/overlapping/deps/b/node_modules/safe-buffer/package.json new file mode 100644 index 0000000000..048391f17a --- /dev/null +++ b/__tests__/fixtures/import/overlapping/deps/b/node_modules/safe-buffer/package.json @@ -0,0 +1,62 @@ +{ + "_from": "safe-buffer@5.1.1", + "_id": "safe-buffer@5.1.1", + "_inBundle": false, + "_integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "_location": "/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.1.1", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.1.1", + "saveSpec": null, + "fetchSpec": "5.1.1" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "_shasum": "893312af69b2123def71f57889001671eeb2c853", + "_spec": "safe-buffer@5.1.1", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0", + "zuul": "^3.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test.js" + }, + "version": "5.1.1" +} diff --git a/__tests__/fixtures/import/overlapping/deps/b/package.json b/__tests__/fixtures/import/overlapping/deps/b/package.json new file mode 100644 index 0000000000..6168fe1911 --- /dev/null +++ b/__tests__/fixtures/import/overlapping/deps/b/package.json @@ -0,0 +1,8 @@ +{ + "name": "file-dep-b", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } +} diff --git a/__tests__/fixtures/import/overlapping/node_modules/file-dep-a b/__tests__/fixtures/import/overlapping/node_modules/file-dep-a new file mode 120000 index 0000000000..e0d5a06981 --- /dev/null +++ b/__tests__/fixtures/import/overlapping/node_modules/file-dep-a @@ -0,0 +1 @@ +../deps/a \ No newline at end of file diff --git a/__tests__/fixtures/import/overlapping/node_modules/file-dep-b b/__tests__/fixtures/import/overlapping/node_modules/file-dep-b new file mode 120000 index 0000000000..8c9b20f0fe --- /dev/null +++ b/__tests__/fixtures/import/overlapping/node_modules/file-dep-b @@ -0,0 +1 @@ +../deps/b \ No newline at end of file diff --git a/__tests__/fixtures/import/overlapping/node_modules/safe-buffer/package.json b/__tests__/fixtures/import/overlapping/node_modules/safe-buffer/package.json new file mode 100644 index 0000000000..1923671c37 --- /dev/null +++ b/__tests__/fixtures/import/overlapping/node_modules/safe-buffer/package.json @@ -0,0 +1,59 @@ +{ + "_from": "safe-buffer@5.1.1", + "_id": "safe-buffer@5.1.1", + "_inBundle": false, + "_integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "_location": "/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.1.1", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.1.1", + "saveSpec": null, + "fetchSpec": "5.1.1" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "_shasum": "893312af69b2123def71f57889001671eeb2c853", + "_spec": "5.1.1", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0", + "zuul": "^3.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test.js" + }, + "version": "5.1.1" +} diff --git a/__tests__/fixtures/import/overlapping/package.json b/__tests__/fixtures/import/overlapping/package.json new file mode 100644 index 0000000000..4d3633792f --- /dev/null +++ b/__tests__/fixtures/import/overlapping/package.json @@ -0,0 +1,11 @@ +{ + "name": "overlapping", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "dependencies": { + "file-dep-a": "file:deps/a", + "file-dep-b": "file:deps/b", + "safe-buffer": "^5.1.1" + } +} diff --git a/__tests__/fixtures/import/overlapping/yarn.lock.import b/__tests__/fixtures/import/overlapping/yarn.lock.import new file mode 100644 index 0000000000..66143c7392 --- /dev/null +++ b/__tests__/fixtures/import/overlapping/yarn.lock.import @@ -0,0 +1,21 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"file-dep-a@file:deps/a": + version "1.0.0" + dependencies: + safe-buffer "^5.1.1" + +"file-dep-b@file:deps/b": + version "1.0.0" + dependencies: + safe-buffer "^5.1.0" + +safe-buffer@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +safe-buffer@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" diff --git a/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/safe-buffer.bin b/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/safe-buffer.bin index ca23813692d8bc34f6e2e4f2b6d1f5063a6ee4b8..81199ecfea6f918dd917a79da409678f61d2de27 100644 GIT binary patch delta 2120 zcmYL_c|6pK8^@WnKMit5hhefdwDUFJ8D^MqWU6sZj&engX1?>CF=1wmA*`RTqIE?f zY(Er)LY@c?v2bCEzj1*LENKL(C8{;2>c0I6Rn5#d^SO z9F|DJ(uAUaEr=kM08)t*tc`=K0-Em1YF>r**=fW8`q<8C*$YfIm^ijYC z7KOoVV1EP^3o#*o81VP!6G%n`z}D6=V^UgMk4X47=E@6#MO3WI_iqi2OpOR81f07I zh;yfd86Zjn!D0WsvmqTWgds6-z?F&(Vuk}uE^I*tjZHxihZVs>fk+I5ig*?}{$jB( zgo?+1?-@dYf>1UmkST%w-r&V4Xd|8?Cy`5ePdc_8@1 zh3DF+0+ibMII9}jj%Rkca<#OwMQFP%9nudjRh z#(8>)FCkMgdeez@7RXg&X5OeH&0@~q<5J6PXQLo(YNf9xKD8|s7wS14H(9mT7F6s$ z=oFTeUToO$Hta2aVc>DPmSB1PF|y0==H7;so`IUTqnD+DcC2D=N$c3%&yzhh$EW6) zow>xe_5b=Fy&#CMm~j&^QVO>!=1Z7^G}PUTkleuw-tk1+0))#zsh_gxIi^zUFg#F8 z^VCWn^~H0e>-?f4?9a6pgg+BKoX4CV9G)+1F_CpDLZ+g4s;5p~iQR{%%EYv}bi(Z+ z2ASp`R8E^)>$2*|Ep<}&pKhvO9hMB4i6xF=$tc|>C`}d2OlZoF3GW)w^%YvA1~8On zWLf*^xQI!lrKjMeWWlUw2HBRkP+eF~PdH|;)uNfIyf-{(>~58v&#oD@+HPyv`>6NP znwa&im6HZp$_XDD~uvM+5{K_NDwy)Z*PZ+~QS!ZF_dll$o`U{+cxha`JLYG6_tDHjVnWT2JCEY zMLW4S?zwf+E5EyMfj;bT%+IkZd+je))Y_Zk8$+`idWqbzJSQ6=a@Y02x1au0bse5qgI z3*lzhgPP89A-{KT-aE$NWu09*=y2`~w5L4r;)C)|yy__2{(VJo=DVksgJo;Zn67hiK~kna3)%WkHO}``e~|V=_*v>j$9g#U#_^R3XbvRUL@ICRZhKn7xc7EBwy1^ zLlj=r-jO;kz05Ytkr|bx@1n&PzchPty58xqC+P@&Ds|}zwt*9Nr*k~f3ZMA0ql{p2 zx$mB6=%YpV*PU*|}q4h<-dj7dIDqFrMe=MdsJ zMFb>kTuvQVc0*BeJ02elyUlKyGtl$8U1Y8*HkuNUnoDyVISt-**KXm|$4HdYcxyhb zLtp2L+q6t*^=h7dQUJ4pd+bD+!^L1qLiGIeW25oe&f7n8PD(Buw-`@Tq zqNG{9F~_0asb#5YuA=vir()S*|I1B4-?`Qt2>e*iToc5ZR=tNq{b01fUd&!?J z+CMed`|+PfJttXM&i;@w;a_m?igDm{WQ9I&+=KIFIaqXyCQe_i_(MZ~{}FKTTIc(4 zs_vasm5Z4H(HSSk@^5gIg9TfiCc6VsWzviYwTFkCelMadj~H&>GNOC*b;DgJzm&Z2 zoAX@&D4ptws6~yRKIik+6{V#922m5n&j0`b delta 864 zcmX>m^nhc6xMX;0ijIPzk%D7Ek%Ezdp}B&gg_WU!m9fc015aiXbMuL{hF%tFrUpia zsb-dG#!1QM$w?L|iDoH@#zv`Trbd>QiH0VYMg~R(X2vGg3aJ$ZnMJ9^wjmj%AY*lb z#_AecAPoJX>*AAGT%zlnpOTrDnVMpy;G3VPqhM^H;G0+pa)6nFfti(og_VJcg1c`B zFPCdbV!D+=xW1C9xk*xrMY4&md7_!p2xx?3a&l@xiLPs2GSK;X>AYNE=+utL2sDR=k`oDZKUH6rrcjo;^P?>A&H-Wt}D$B{F%K zul{;ItMbQ(^i4CxWt5*qyn1(aX~Dsj-}XqK`*Nc_L3L8m$~Mas+gR3GIO$(+OboD zESye}CZ|+)&Evav;pEhkPxUX)yuMhe91`f&!=&78HFdH3(@AdpLW*4c3X8VAsj}MH z=C^i9@ctL~xVWYkx3OOdkTZ{;XR6p_!la}1NTtcJOFiIImBv=FuE_N*kMg-hPmA)b zSW;%?(tTh{c&o3bpPx(6vBKFlGp{#3`roEy|Bovq{I1>(Tjw{03wL#Lhpn`fc|3t_ kl}S_KU8Ac^yHj_iZ%f}ax$VB``TL9?wBOq;V`pFh03cdcbpQYW diff --git a/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz.bin b/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz.bin index 2a9e8f94169c1418bea21aa1a589addd7fa9a971..7b1e867bbbea59ee76b69efa604a399df0b19c5f 100644 GIT binary patch delta 469 zcmYL`KWp1S7{-Z56>WjgB^(+G1-;h&(@A&1Lt>Q1H11HTCK=DCvn{YCah8iSB_AQh zAEiq_RJ(NU5V?!jmxmv}=Xw85{!Lyl-ru?^M1-KJenJ$J6j7=;QI!0^?lYgq3&GNu z2|+p2Nh%kDCYUiPMVU}ZVk&Tw@|0X5yKgIJx1(HlMv&*Wf70SLr)>D1&+8BHIefIGKrIX_uZCo^Q4gZFSc6M zBxW((-F-Qz!R2#&Ocm9}I)(C6)gk6WQW?&29L}=dJKML`bTBSXl?3J~#vyXHZCnRC zSB-*I*R@*}MW@@)teaiASZim8rrAWMtidd+Xl}J>>UU8;=@D$Y;P5gyzx2KFEquLx ZREQIq_J7ccwDVY|8fKI1=dXbZ-T<%JhHL-; delta 453 zcmZXQ&q@MO6o=8J;4X+Zagc%tZ=L&RX0A6}n3zcpfr{mFymQq7b!5g$SG|Jaqx1$n zO`A5YTXa>bMcZ@E@B4n7uf}I%wSRDD!Xi)xm01D|sRvXlib}XInA~uuFL@~XA=T*g zOM`&Q661_}nn@{9Q&D2b&=u|ln8hqgOj_=Y9yUN?frQFG+y{AX2I-vmaTpCE6DsiI zX%RSrA1pU&7tmEG6$+^PoqVp=35E&^j%WQ+3&I$83wFHoDA5~1 zZPJuf5mRdAZm{XejK-^@pGm@25(Y=vr|N9G5iU=l1yFf?UG zUBvY|bAC)6M3&FpleS47O-L@63iLKK)=Nr-B+Y7X{hm2Ip%gcFooHeb1?}I@d1sD; u(&NQ$8;jia<&{*@Qk!FgasZpAwaTk?p+T~>C$rjj>7|X#~tW5(Zbv!Mrej;rb(uGdQbe9)MS!5 zWjT?KURO*&A{?zOW5$WJ;xu8BNJeS;0l}fGJ?v(M>5o7>05Me~?jOFJ8@mQPZ=2q? z8;!Q+fXxbKf-^!$7+jfMj~A`0s~Vg}kx!M! zB$KXkUCo#`86(b_j5y|FOnpv$pE7g?^ztFjb`J-0wd?i4%g_3B6F{QBI9<9G?hxg3i#KL&4a{-3c$DKITr&n*n6x00$wME A5C8xG diff --git a/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz.bin b/__tests__/fixtures/request-cache/GET/registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz.bin new file mode 100644 index 0000000000000000000000000000000000000000..dc1d74da2cb73b253c0a42c42d3e256906b80e1a GIT binary patch literal 10533 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 literal 0 HcmV?d00001 From 42f971bef846257ea74c4b8f48a207c4524b1a6c Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Sat, 12 May 2018 01:09:46 +0200 Subject: [PATCH 10/14] fix(import): handle overlapping package versions --- src/cli/commands/import.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/cli/commands/import.js b/src/cli/commands/import.js index f7575b87e7..83642fcb10 100644 --- a/src/cli/commands/import.js +++ b/src/cli/commands/import.js @@ -15,6 +15,7 @@ import GitResolver from '../../resolvers/exotics/git-resolver.js'; import FileResolver from '../../resolvers/exotics/file-resolver.js'; import PackageResolver from '../../package-resolver.js'; import PackageRequest from '../../package-request.js'; +import PackageReference from '../../package-reference.js'; import * as fetcher from '../../package-fetcher.js'; import PackageLinker from '../../package-linker.js'; import * as compatibility from '../../package-compatibility.js'; @@ -222,6 +223,15 @@ class ImportPackageRequest extends PackageRequest { ); } + resolveToExistingVersion(info: Manifest) { + invariant(info._remote, 'expected package remote'); + const ref = new PackageReference(this, info, info._remote); + info._reference = ref; + ref.addRequest(this); + ref.addPattern(this.pattern, info); + ref.addOptional(this.optional); + } + findVersionInfo(): Promise { if (!this.import) { this.reporter.verbose(this.reporter.lang('skippingImport', this.pattern, this.getParentHumanName())); From 710e38db36048857369ade240172b286ab720cf9 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Sat, 12 May 2018 01:48:27 +0200 Subject: [PATCH 11/14] style(import): change flow acrobatics --- src/cli/commands/import.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/cli/commands/import.js b/src/cli/commands/import.js index 83642fcb10..dfac28b8f4 100644 --- a/src/cli/commands/import.js +++ b/src/cli/commands/import.js @@ -317,11 +317,8 @@ export class Import extends Install { this.resolver = new ImportPackageResolver(this.config, this.lockfile); this.linker = new PackageLinker(config, this.resolver); } - createLogicalDependencyTree(packageJson: ?string, packageLock: ?string): LogicalDependencyTree { + createLogicalDependencyTree(packageJson: string, packageLock: string): LogicalDependencyTree { try { - if (!packageJson || !packageLock) { - throw new Error('files missing'); - } return new LogicalDependencyTree(packageJson, packageLock); } catch (e) { throw new MessageError(this.reporter.lang('importSourceFilesCorrupted')); @@ -347,10 +344,11 @@ export class Import extends Install { packageJson && packageLock && semver.satisfies(nodeVersion, '>=5.0.0') ? 'package-lock.json' : 'node_modules'; if (importSource === 'package-lock.json') { this.reporter.info(this.reporter.lang('importPackageLock')); + invariant(packageJson, 'package.json should exist'); + invariant(packageLock, 'package-lock.json should exist'); const tree = this.createLogicalDependencyTree(packageJson, packageLock); - if (this.resolver instanceof ImportPackageResolver) { - this.resolver.dependencyTree = tree; - } + invariant(this.resolver instanceof ImportPackageResolver, 'resolver should be an ImportPackageResolver'); + this.resolver.dependencyTree = tree; } if (importSource === 'node_modules') { this.reporter.info(this.reporter.lang('importNodeModules')); From b7ebd0a07f7ddb0b8fa87dcac8fcdeae45290531 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Sat, 12 May 2018 17:20:02 +0200 Subject: [PATCH 12/14] refactor(import): clarify resolve and init methods --- src/cli/commands/import.js | 61 ++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/src/cli/commands/import.js b/src/cli/commands/import.js index dfac28b8f4..3b6fdc878a 100644 --- a/src/cli/commands/import.js +++ b/src/cli/commands/import.js @@ -163,29 +163,39 @@ class ImportResolver extends BaseResolver { return manifest; } - async resolve(): Promise { - if (this.request instanceof ImportPackageRequest && this.request.fixedVersionPattern) { - const {fixedVersionPattern} = this.request; - const info = await this.config.getCache(`import-resolver-${fixedVersionPattern}`, () => - this.resolveFixedVersion(fixedVersionPattern), - ); + async _resolveFromFixedVersions(): Promise { + invariant(this.request instanceof ImportPackageRequest, 'request must be ImportPackageRequest'); + invariant(this.request.fixedVersionPattern, 'fixedVersionPattern must exist on request'); + const {fixedVersionPattern} = this.request; + const info = await this.config.getCache(`import-resolver-${fixedVersionPattern}`, () => + this.resolveFixedVersion(fixedVersionPattern), + ); + if (info) { + return info; + } + const {name} = normalizePattern(this.pattern); + throw new MessageError(this.reporter.lang('importResolveFailed', name, this.getCwd())); + } + + async _resolveFromNodeModules(): Promise { + const {name} = normalizePattern(this.pattern); + let cwd = this.getCwd(); + while (!path.relative(this.config.cwd, cwd).startsWith('..')) { + const loc = path.join(cwd, 'node_modules', name); + const info = await this.config.getCache(`import-resolver-${loc}`, () => this.resolveLocation(loc)); if (info) { return info; } - const {name} = normalizePattern(this.pattern); - throw new MessageError(this.reporter.lang('importResolveFailed', name, this.getCwd())); + cwd = path.resolve(cwd, '../..'); + } + throw new MessageError(this.reporter.lang('importResolveFailed', name, this.getCwd())); + } + + resolve(): Promise { + if (this.request instanceof ImportPackageRequest && this.request.fixedVersionPattern) { + return this._resolveFromFixedVersions(); } else { - const {name} = normalizePattern(this.pattern); - let cwd = this.getCwd(); - while (!path.relative(this.config.cwd, cwd).startsWith('..')) { - const loc = path.join(cwd, 'node_modules', name); - const info = await this.config.getCache(`import-resolver-${loc}`, () => this.resolveLocation(loc)); - if (info) { - return info; - } - cwd = path.resolve(cwd, '../..'); - } - throw new MessageError(this.reporter.lang('importResolveFailed', name, this.getCwd())); + return this._resolveFromNodeModules(); } } } @@ -317,9 +327,12 @@ export class Import extends Install { this.resolver = new ImportPackageResolver(this.config, this.lockfile); this.linker = new PackageLinker(config, this.resolver); } - createLogicalDependencyTree(packageJson: string, packageLock: string): LogicalDependencyTree { + createLogicalDependencyTree(packageJson: ?string, packageLock: ?string) { + invariant(packageJson, 'package.json should exist'); + invariant(packageLock, 'package-lock.json should exist'); + invariant(this.resolver instanceof ImportPackageResolver, 'resolver should be an ImportPackageResolver'); try { - return new LogicalDependencyTree(packageJson, packageLock); + this.resolver.dependencyTree = new LogicalDependencyTree(packageJson, packageLock); } catch (e) { throw new MessageError(this.reporter.lang('importSourceFilesCorrupted')); } @@ -344,11 +357,7 @@ export class Import extends Install { packageJson && packageLock && semver.satisfies(nodeVersion, '>=5.0.0') ? 'package-lock.json' : 'node_modules'; if (importSource === 'package-lock.json') { this.reporter.info(this.reporter.lang('importPackageLock')); - invariant(packageJson, 'package.json should exist'); - invariant(packageLock, 'package-lock.json should exist'); - const tree = this.createLogicalDependencyTree(packageJson, packageLock); - invariant(this.resolver instanceof ImportPackageResolver, 'resolver should be an ImportPackageResolver'); - this.resolver.dependencyTree = tree; + this.createLogicalDependencyTree(packageJson, packageLock); } if (importSource === 'node_modules') { this.reporter.info(this.reporter.lang('importNodeModules')); From c9af4941af1aae112923262b0592762494f843bc Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Sat, 12 May 2018 18:21:00 +0200 Subject: [PATCH 13/14] fix(import): better and more clear existing version resolution solution --- src/cli/commands/import.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/cli/commands/import.js b/src/cli/commands/import.js index 3b6fdc878a..ffaaf8f1f5 100644 --- a/src/cli/commands/import.js +++ b/src/cli/commands/import.js @@ -233,12 +233,26 @@ class ImportPackageRequest extends PackageRequest { ); } - resolveToExistingVersion(info: Manifest) { + _findResolvedManifest(info: Manifest): Manifest { + const {range, name} = normalizePattern(this.pattern); + const solvedRange = semver.validRange(range) ? info.version : range; + const resolved: ?Manifest = this.resolver.getExactVersionMatch(name, solvedRange, info); + if (resolved) { + return resolved; + } invariant(info._remote, 'expected package remote'); const ref = new PackageReference(this, info, info._remote); info._reference = ref; + return info; + } + + resolveToExistingVersion(info: Manifest) { + const resolved: ?Manifest = this._findResolvedManifest(info); + invariant(resolved, 'should have found a resolved reference'); + const ref = resolved._reference; + invariant(ref, 'should have a package reference'); ref.addRequest(this); - ref.addPattern(this.pattern, info); + ref.addPattern(this.pattern, resolved); ref.addOptional(this.optional); } From f2c11915900378f4d8a13e6c751083df1a504245 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Sat, 12 May 2018 19:41:58 +0200 Subject: [PATCH 14/14] chore(fixtures): change symlinks to actual files --- .../overlapping/node_modules/file-dep-a | 1 - .../node_modules/safe-buffer/package.json | 62 +++++++++++++++++++ .../node_modules/file-dep-a/package.json | 8 +++ .../overlapping/node_modules/file-dep-b | 1 - .../node_modules/safe-buffer/package.json | 62 +++++++++++++++++++ .../node_modules/file-dep-b/package.json | 8 +++ 6 files changed, 140 insertions(+), 2 deletions(-) delete mode 120000 __tests__/fixtures/import/overlapping/node_modules/file-dep-a create mode 100644 __tests__/fixtures/import/overlapping/node_modules/file-dep-a/node_modules/safe-buffer/package.json create mode 100644 __tests__/fixtures/import/overlapping/node_modules/file-dep-a/package.json delete mode 120000 __tests__/fixtures/import/overlapping/node_modules/file-dep-b create mode 100644 __tests__/fixtures/import/overlapping/node_modules/file-dep-b/node_modules/safe-buffer/package.json create mode 100644 __tests__/fixtures/import/overlapping/node_modules/file-dep-b/package.json diff --git a/__tests__/fixtures/import/overlapping/node_modules/file-dep-a b/__tests__/fixtures/import/overlapping/node_modules/file-dep-a deleted file mode 120000 index e0d5a06981..0000000000 --- a/__tests__/fixtures/import/overlapping/node_modules/file-dep-a +++ /dev/null @@ -1 +0,0 @@ -../deps/a \ No newline at end of file diff --git a/__tests__/fixtures/import/overlapping/node_modules/file-dep-a/node_modules/safe-buffer/package.json b/__tests__/fixtures/import/overlapping/node_modules/file-dep-a/node_modules/safe-buffer/package.json new file mode 100644 index 0000000000..c6c3037c0f --- /dev/null +++ b/__tests__/fixtures/import/overlapping/node_modules/file-dep-a/node_modules/safe-buffer/package.json @@ -0,0 +1,62 @@ +{ + "_from": "safe-buffer@5.1.2", + "_id": "safe-buffer@5.1.2", + "_inBundle": false, + "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "_location": "/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.1.2", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.1.2", + "saveSpec": null, + "fetchSpec": "5.1.2" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "_shasum": "991ec69d296e0313747d59bdfd2b745c35f8828d", + "_spec": "safe-buffer@5.1.2", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + }, + "types": "index.d.ts", + "version": "5.1.2" +} diff --git a/__tests__/fixtures/import/overlapping/node_modules/file-dep-a/package.json b/__tests__/fixtures/import/overlapping/node_modules/file-dep-a/package.json new file mode 100644 index 0000000000..4d75530f73 --- /dev/null +++ b/__tests__/fixtures/import/overlapping/node_modules/file-dep-a/package.json @@ -0,0 +1,8 @@ +{ + "name": "file-dep-a", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.1" + } +} diff --git a/__tests__/fixtures/import/overlapping/node_modules/file-dep-b b/__tests__/fixtures/import/overlapping/node_modules/file-dep-b deleted file mode 120000 index 8c9b20f0fe..0000000000 --- a/__tests__/fixtures/import/overlapping/node_modules/file-dep-b +++ /dev/null @@ -1 +0,0 @@ -../deps/b \ No newline at end of file diff --git a/__tests__/fixtures/import/overlapping/node_modules/file-dep-b/node_modules/safe-buffer/package.json b/__tests__/fixtures/import/overlapping/node_modules/file-dep-b/node_modules/safe-buffer/package.json new file mode 100644 index 0000000000..048391f17a --- /dev/null +++ b/__tests__/fixtures/import/overlapping/node_modules/file-dep-b/node_modules/safe-buffer/package.json @@ -0,0 +1,62 @@ +{ + "_from": "safe-buffer@5.1.1", + "_id": "safe-buffer@5.1.1", + "_inBundle": false, + "_integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "_location": "/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.1.1", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.1.1", + "saveSpec": null, + "fetchSpec": "5.1.1" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "_shasum": "893312af69b2123def71f57889001671eeb2c853", + "_spec": "safe-buffer@5.1.1", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0", + "zuul": "^3.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test.js" + }, + "version": "5.1.1" +} diff --git a/__tests__/fixtures/import/overlapping/node_modules/file-dep-b/package.json b/__tests__/fixtures/import/overlapping/node_modules/file-dep-b/package.json new file mode 100644 index 0000000000..6168fe1911 --- /dev/null +++ b/__tests__/fixtures/import/overlapping/node_modules/file-dep-b/package.json @@ -0,0 +1,8 @@ +{ + "name": "file-dep-b", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } +}