From ad6abf9631f095aa7b6ba1b65c9113781c31705d Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Sun, 21 Apr 2019 22:28:28 -0400 Subject: [PATCH 01/34] Step 0: install fs-extra --- package-lock.json | 45 +++++++++++++++++++++++++++++++++++---------- package.json | 1 + 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6de29418e..97dad3e75 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1879,15 +1879,13 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", - "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "requires": { "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs-minipass": { @@ -2771,9 +2769,9 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { "graceful-fs": "^4.1.6" } @@ -3351,6 +3349,28 @@ "decompress-zip": "0.3.0", "fs-extra": "0.26.7", "request": "^2.79.0" + }, + "dependencies": { + "fs-extra": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", + "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + } } }, "move-concurrently": { @@ -6000,6 +6020,11 @@ "crypto-random-string": "^1.0.0" } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", diff --git a/package.json b/package.json index 82f0ef028..6c8eca1e6 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "async": "~0.2.8", "colors": "~0.6.1", "first-mate": "6.2.0", + "fs-extra": "^7.0.1", "fs-plus": "2.x", "git-utils": "^4.0", "hosted-git-info": "^2.1.4", From 307c313a702c514afe508eb3f01bd483fb031142 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Sun, 21 Apr 2019 22:30:17 -0400 Subject: [PATCH 02/34] Step 1: use fs-extra in fs.coffee --- src/fs.coffee | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/fs.coffee b/src/fs.coffee index b5905e61a..d040a321c 100644 --- a/src/fs.coffee +++ b/src/fs.coffee @@ -1,5 +1,5 @@ _ = require 'underscore-plus' -fs = require 'fs-plus' +fs = require 'fs-extra' ncp = require 'ncp' rm = require 'rimraf' wrench = require 'wrench' @@ -7,12 +7,9 @@ path = require 'path' fsAdditions = list: (directoryPath) -> - if fs.isDirectorySync(directoryPath) - try - fs.readdirSync(directoryPath) - catch e - [] - else + try + fs.readdirSync(directoryPath) + catch e [] listRecursive: (directoryPath) -> From 50c266b66a9ee16fc5ca4cfa23c0bd8f90405980 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Mon, 22 Apr 2019 10:25:26 -0400 Subject: [PATCH 03/34] Step 2: change all the things? --- package-lock.json | 31 +++++++++++++++++++++++- package.json | 2 ++ spec/clean-spec.coffee | 6 ++--- spec/config-spec.coffee | 6 ++--- spec/develop-spec.coffee | 4 ++-- spec/disable-spec.coffee | 4 ++-- spec/fixtures/SHASUMS256.txt | 2 ++ spec/init-spec.coffee | 2 +- spec/install-spec.coffee | 8 +++---- spec/list-spec.coffee | 8 +++---- spec/publish-spec.coffee | 2 +- spec/rebuild-spec.coffee | 1 - spec/stars-spec.coffee | 2 +- spec/uninstall-spec.coffee | 12 +++++----- spec/upgrade-spec.coffee | 2 +- src/apm-cli.coffee | 10 ++++---- src/apm.coffee | 2 +- src/ci.coffee | 4 ++-- src/clean.coffee | 1 - src/dedupe.coffee | 8 +++---- src/fs.coffee | 39 ------------------------------ src/git.coffee | 15 ++++++++---- src/init.coffee | 15 ++++++------ src/install.coffee | 34 ++++++++++++++------------ src/link.coffee | 8 ++++--- src/links.coffee | 12 ++++++---- src/list.coffee | 35 ++++++++++++++------------- src/package-converter.coffee | 42 +++++++++++++++++++++++---------- src/publish.coffee | 7 ++++-- src/rebuild-module-cache.coffee | 33 +++++++++++++++----------- src/star.coffee | 23 ++++++++++-------- src/test.coffee | 2 +- src/theme-converter.coffee | 13 ++++++---- src/uninstall.coffee | 2 +- src/unlink.coffee | 17 ++++++++----- src/unpublish.coffee | 2 +- src/upgrade.coffee | 10 +++++--- 37 files changed, 240 insertions(+), 186 deletions(-) delete mode 100644 src/fs.coffee diff --git a/package-lock.json b/package-lock.json index 97dad3e75..8e98ba4ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1569,6 +1569,14 @@ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz", "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==" }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, "express": { "version": "4.16.3", "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", @@ -2368,6 +2376,14 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "requires": { + "parse-passwd": "^1.0.0" + } + }, "hooker": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", @@ -2686,7 +2702,7 @@ "integrity": "sha1-uDx1fIAOaOHW78GjoaE/85/23NI=", "dev": true, "requires": { - "jasmine-node": "git+https://github.com/kevinsawicki/jasmine-node.git#81af4f953a2b7dfb5bde8331c05362a4b464c5ef", + "jasmine-node": "jasmine-node@git+https://github.com/kevinsawicki/jasmine-node.git#81af4f953a2b7dfb5bde8331c05362a4b464c5ef", "underscore-plus": "1.x", "walkdir": "0.0.7" } @@ -2821,6 +2837,14 @@ "graceful-fs": "^4.1.9" } }, + "klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "requires": { + "graceful-fs": "^4.1.11" + } + }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", @@ -4744,6 +4768,11 @@ "error-ex": "^1.2.0" } }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", diff --git a/package.json b/package.json index 6c8eca1e6..fc89cabd4 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,14 @@ "asar-require": "0.3.0", "async": "~0.2.8", "colors": "~0.6.1", + "expand-tilde": "^2.0.2", "first-mate": "6.2.0", "fs-extra": "^7.0.1", "fs-plus": "2.x", "git-utils": "^4.0", "hosted-git-info": "^2.1.4", "keytar": "^4.0", + "klaw-sync": "^6.0.0", "mv": "2.0.0", "ncp": "~0.5.1", "node-gyp": "3.4.0", diff --git a/spec/clean-spec.coffee b/spec/clean-spec.coffee index 2b066ecd6..fdbba1f23 100644 --- a/spec/clean-spec.coffee +++ b/spec/clean-spec.coffee @@ -1,5 +1,5 @@ path = require 'path' -fs = require 'fs-plus' +fs = require 'fs-extra' temp = require 'temp' express = require 'express' http = require 'http' @@ -52,7 +52,7 @@ describe 'apm clean', -> it 'uninstalls any packages not referenced in the package.json', -> removedPath = path.join(moduleDirectory, 'node_modules', 'will-be-removed') - fs.makeTreeSync(removedPath) + fs.mkdirpSync(removedPath) fs.writeFileSync( path.join(removedPath, 'package.json'), '{"name": "will-be-removed", "version": "1.0.0", "dependencies": {}}', @@ -71,7 +71,7 @@ describe 'apm clean', -> it 'uninstalls a scoped package', -> removedPath = path.join(moduleDirectory, 'node_modules/@types/atom') - fs.makeTreeSync(removedPath) + fs.mkdirpSync(removedPath) fs.writeFileSync( path.join(removedPath, 'package.json'), '{"name": "@types/atom", "version": "1.0.0", "dependencies": {}}', diff --git a/spec/config-spec.coffee b/spec/config-spec.coffee index 09340a74a..97d1f8f2a 100644 --- a/spec/config-spec.coffee +++ b/spec/config-spec.coffee @@ -1,5 +1,5 @@ path = require 'path' -fs = require 'fs-plus' +fs = require 'fs-extra' temp = require 'temp' apm = require '../lib/apm-cli' @@ -30,7 +30,7 @@ describe "apm config", -> describe "apm config set", -> it "sets the value in the user config", -> - expect(fs.isFileSync(userConfigPath)).toBe false + expect(fs.existsSync(userConfigPath)).toBe false callback = jasmine.createSpy('callback') apm.run(['config', 'set', 'foo', 'bar'], callback) @@ -39,7 +39,7 @@ describe "apm config", -> callback.callCount is 1 runs -> - expect(fs.isFileSync(userConfigPath)).toBe true + expect(fs.statSync(userConfigPath).isFile()).toBe true callback.reset() apm.run(['config', 'get', 'foo'], callback) diff --git a/spec/develop-spec.coffee b/spec/develop-spec.coffee index 8d044c6b6..ece3645d8 100644 --- a/spec/develop-spec.coffee +++ b/spec/develop-spec.coffee @@ -1,5 +1,5 @@ path = require 'path' -fs = require 'fs-plus' +fs = require 'fs-extra' temp = require 'temp' apm = require '../lib/apm-cli' @@ -60,7 +60,7 @@ describe "apm develop", -> describe "when the repository has already been cloned", -> it "links it to ATOM_HOME/dev/packages", -> - fs.makeTreeSync(repoPath) + fs.mkdirpSync(repoPath) fs.writeFileSync(path.join(repoPath, "package.json"), "") callback = jasmine.createSpy('callback') apm.run(['develop', "fake-package"], callback) diff --git a/spec/disable-spec.coffee b/spec/disable-spec.coffee index 55947d85c..cd3d49290 100644 --- a/spec/disable-spec.coffee +++ b/spec/disable-spec.coffee @@ -1,4 +1,4 @@ -fs = require 'fs-plus' +fs = require 'fs-extra' wrench = require 'wrench' path = require 'path' temp = require 'temp' @@ -25,7 +25,7 @@ describe 'apm disable', -> packagesPath = path.join(atomHome, 'packages') packageSrcPath = path.join(__dirname, 'fixtures') - fs.makeTreeSync(packagesPath) + fs.mkdirpSync(packagesPath) wrench.copyDirSyncRecursive(path.join(packageSrcPath, 'test-module'), path.join(packagesPath, 'test-module')) wrench.copyDirSyncRecursive(path.join(packageSrcPath, 'test-module-two'), path.join(packagesPath, 'test-module-two')) wrench.copyDirSyncRecursive(path.join(packageSrcPath, 'test-module-three'), path.join(packagesPath, 'test-module-three')) diff --git a/spec/fixtures/SHASUMS256.txt b/spec/fixtures/SHASUMS256.txt index 6a8282489..9ac4dec8e 100644 --- a/spec/fixtures/SHASUMS256.txt +++ b/spec/fixtures/SHASUMS256.txt @@ -1 +1,3 @@ d5abc24102c80b97f100e921075845ff491646dde6ebf11012635a67bd6aba2a ./node-v0.10.3.tar.gz +25d7639c423f94a1a930287b6c04cef45d8326d1b2ce375ee1ac275204533ad4 ./x64/node.lib +49b20743ba952c93470f0e8489c2a6f1f2d979c9cbe6937f34d6ef9e23885e1d ./node.lib diff --git a/spec/init-spec.coffee b/spec/init-spec.coffee index 5d4d64228..99a3af6ce 100644 --- a/spec/init-spec.coffee +++ b/spec/init-spec.coffee @@ -2,7 +2,7 @@ path = require 'path' temp = require 'temp' CSON = require 'season' apm = require '../lib/apm-cli' -fs = require '../lib/fs' +fs = require 'fs-extra' describe "apm init", -> [packagePath, themePath, languagePath] = [] diff --git a/spec/install-spec.coffee b/spec/install-spec.coffee index 09b9b5721..0074c29c2 100644 --- a/spec/install-spec.coffee +++ b/spec/install-spec.coffee @@ -1,6 +1,6 @@ path = require 'path' CSON = require 'season' -fs = require '../lib/fs' +fs = require 'fs-extra' temp = require 'temp' express = require 'express' http = require 'http' @@ -101,7 +101,7 @@ describe 'apm install', -> describe 'when a package name is specified', -> it 'installs the package', -> testModuleDirectory = path.join(atomHome, 'packages', 'test-module') - fs.makeTreeSync(testModuleDirectory) + fs.mkdirpSync(testModuleDirectory) existingTestModuleFile = path.join(testModuleDirectory, 'will-be-deleted.js') fs.writeFileSync(existingTestModuleFile, '') expect(fs.existsSync(existingTestModuleFile)).toBeTruthy() @@ -165,7 +165,7 @@ describe 'apm install', -> it 'installs the package with the new name and removes the old package', -> testRenameDirectory = path.join(atomHome, 'packages', 'test-rename') testModuleDirectory = path.join(atomHome, 'packages', 'test-module') - fs.makeTreeSync(testRenameDirectory) + fs.mkdirpSync(testRenameDirectory) expect(fs.existsSync(testRenameDirectory)).toBeTruthy() expect(fs.existsSync(testModuleDirectory)).toBeFalsy() @@ -317,7 +317,7 @@ describe 'apm install', -> atomRepoPath = temp.mkdirSync('apm-repo-dir-') CSON.writeFileSync(path.join(atomRepoPath, 'package.json'), packageDependencies: 'test-module-with-dependencies': 'file:./packages/test-module-with-dependencies') packageDirectory = path.join(atomRepoPath, 'packages', 'test-module-with-dependencies') - fs.makeTreeSync(path.join(atomRepoPath, 'packages')) + fs.mkdirpSync(path.join(atomRepoPath, 'packages')) wrench.copyDirSyncRecursive(path.join(__dirname, 'fixtures', 'test-module-with-dependencies'), packageDirectory) originalPath = process.cwd() process.chdir(atomRepoPath) diff --git a/spec/list-spec.coffee b/spec/list-spec.coffee index 927eefe7e..5ad927c0f 100644 --- a/spec/list-spec.coffee +++ b/spec/list-spec.coffee @@ -1,5 +1,5 @@ path = require 'path' -fs = require 'fs-plus' +fs = require 'fs-extra' temp = require 'temp' wrench = require 'wrench' apm = require '../lib/apm-cli' @@ -18,7 +18,7 @@ createFakePackage = (type, metadata) -> when "user", "git" then "packages" when "dev" then path.join("dev", "packages") targetFolder = path.join(process.env.ATOM_HOME, packagesFolder, metadata.name) - fs.makeTreeSync targetFolder + fs.mkdirpSync targetFolder fs.writeFileSync path.join(targetFolder, 'package.json'), JSON.stringify(metadata) removeFakePackage = (type, name) -> @@ -61,7 +61,7 @@ describe 'apm list', -> sha: "abcdef1234567890" badPackagePath = path.join(process.env.ATOM_HOME, "packages", ".bin") - fs.makeTreeSync badPackagePath + fs.mkdirpSync badPackagePath fs.writeFileSync path.join(badPackagePath, "file.txt"), "some fake stuff" it 'lists the installed packages', -> @@ -80,7 +80,7 @@ describe 'apm list', -> describe 'enabling and disabling packages', -> beforeEach -> packagesPath = path.join(atomHome, 'packages') - fs.makeTreeSync(packagesPath) + fs.mkdirpSync(packagesPath) wrench.copyDirSyncRecursive(path.join(__dirname, 'fixtures', 'test-module'), path.join(packagesPath, 'test-module')) configPath = path.join(atomHome, 'config.cson') CSON.writeFileSync configPath, '*': diff --git a/spec/publish-spec.coffee b/spec/publish-spec.coffee index d76e99aae..749b0f99e 100644 --- a/spec/publish-spec.coffee +++ b/spec/publish-spec.coffee @@ -1,5 +1,5 @@ path = require 'path' -fs = require 'fs-plus' +fs = require 'fs-extra' temp = require 'temp' express = require 'express' http = require 'http' diff --git a/spec/rebuild-spec.coffee b/spec/rebuild-spec.coffee index a5dd3cc95..bbc7fd917 100644 --- a/spec/rebuild-spec.coffee +++ b/spec/rebuild-spec.coffee @@ -1,6 +1,5 @@ path = require 'path' CSON = require 'season' -fs = require 'fs-plus' temp = require 'temp' express = require 'express' http = require 'http' diff --git a/spec/stars-spec.coffee b/spec/stars-spec.coffee index 8186a4fba..14ad91a73 100644 --- a/spec/stars-spec.coffee +++ b/spec/stars-spec.coffee @@ -1,6 +1,6 @@ path = require 'path' express = require 'express' -fs = require 'fs-plus' +fs = require 'fs-extra' http = require 'http' temp = require 'temp' apm = require '../lib/apm-cli' diff --git a/spec/uninstall-spec.coffee b/spec/uninstall-spec.coffee index 1b86c1f53..083ed055d 100644 --- a/spec/uninstall-spec.coffee +++ b/spec/uninstall-spec.coffee @@ -1,5 +1,5 @@ path = require 'path' -fs = require 'fs-plus' +fs = require 'fs-extra' temp = require 'temp' apm = require '../lib/apm-cli' @@ -36,7 +36,7 @@ describe 'apm uninstall', -> it 'deletes the package', -> atomHome = temp.mkdirSync('apm-home-dir-') packagePath = path.join(atomHome, 'packages', 'test-package') - fs.makeTreeSync(path.join(packagePath, 'lib')) + fs.mkdirpSync(path.join(packagePath, 'lib')) fs.writeFileSync(path.join(packagePath, 'package.json'), "{}") process.env.ATOM_HOME = atomHome @@ -54,10 +54,10 @@ describe 'apm uninstall', -> it "deletes the packages from the dev packages folder", -> atomHome = temp.mkdirSync('apm-home-dir-') packagePath = path.join(atomHome, 'packages', 'test-package') - fs.makeTreeSync(path.join(packagePath, 'lib')) + fs.mkdirpSync(path.join(packagePath, 'lib')) fs.writeFileSync(path.join(packagePath, 'package.json'), "{}") devPackagePath = path.join(atomHome, 'dev', 'packages', 'test-package') - fs.makeTreeSync(path.join(devPackagePath, 'lib')) + fs.mkdirpSync(path.join(devPackagePath, 'lib')) fs.writeFileSync(path.join(devPackagePath, 'package.json'), "{}") process.env.ATOM_HOME = atomHome @@ -76,10 +76,10 @@ describe 'apm uninstall', -> it "deletes the packages from the both packages folders", -> atomHome = temp.mkdirSync('apm-home-dir-') packagePath = path.join(atomHome, 'packages', 'test-package') - fs.makeTreeSync(path.join(packagePath, 'lib')) + fs.mkdirpSync(path.join(packagePath, 'lib')) fs.writeFileSync(path.join(packagePath, 'package.json'), "{}") devPackagePath = path.join(atomHome, 'dev', 'packages', 'test-package') - fs.makeTreeSync(path.join(devPackagePath, 'lib')) + fs.mkdirpSync(path.join(devPackagePath, 'lib')) fs.writeFileSync(path.join(devPackagePath, 'package.json'), "{}") process.env.ATOM_HOME = atomHome diff --git a/spec/upgrade-spec.coffee b/spec/upgrade-spec.coffee index f1a5ab768..255f55860 100644 --- a/spec/upgrade-spec.coffee +++ b/spec/upgrade-spec.coffee @@ -1,5 +1,5 @@ path = require 'path' -fs = require 'fs-plus' +fs = require 'fs-extra' temp = require 'temp' express = require 'express' http = require 'http' diff --git a/src/apm-cli.coffee b/src/apm-cli.coffee index 21b2c47db..b44a68a69 100644 --- a/src/apm-cli.coffee +++ b/src/apm-cli.coffee @@ -1,4 +1,5 @@ {spawn} = require 'child_process' +fs = require 'fs-extra' path = require 'path' _ = require 'underscore-plus' @@ -6,22 +7,22 @@ colors = require 'colors' npm = require 'npm' yargs = require 'yargs' wordwrap = require 'wordwrap' +expandTilde = require 'expand-tilde' # Enable "require" scripts in asar archives require 'asar-require' config = require './apm' -fs = require './fs' git = require './git' setupTempDirectory = -> temp = require 'temp' tempDirectory = require('os').tmpdir() # Resolve ~ in tmp dir atom/atom#2271 - tempDirectory = path.resolve(fs.absolute(tempDirectory)) + tempDirectory = expandTilde(tempDirectory) temp.dir = tempDirectory try - fs.makeTreeSync(temp.dir) + fs.mkdirpSync(temp.dir) temp.track() setupTempDirectory() @@ -153,7 +154,8 @@ getPythonVersion = (callback) -> rootDir = process.env.SystemDrive ? 'C:\\' rootDir += '\\' unless rootDir[rootDir.length - 1] is '\\' pythonExe = path.resolve(rootDir, 'Python27', 'python.exe') - python = pythonExe if fs.isFileSync(pythonExe) + try + python = pythonExe if fs.statSync(pythonExe).isFile() python ?= 'python' diff --git a/src/apm.coffee b/src/apm.coffee index a78afa3e2..282fbda22 100644 --- a/src/apm.coffee +++ b/src/apm.coffee @@ -1,5 +1,5 @@ child_process = require 'child_process' -fs = require './fs' +fs = require 'fs-extra' path = require 'path' npm = require 'npm' semver = require 'semver' diff --git a/src/ci.coffee b/src/ci.coffee index c6ea07dcf..5a0ed9924 100644 --- a/src/ci.coffee +++ b/src/ci.coffee @@ -1,5 +1,5 @@ path = require 'path' -fs = require './fs' +fs = require 'fs-extra' yargs = require 'yargs' async = require 'async' _ = require 'underscore-plus' @@ -48,7 +48,7 @@ class Ci extends Command env = _.extend({}, process.env, {HOME: @atomNodeDirectory, RUSTUP_HOME: config.getRustupHomeDirPath()}) env.USERPROFILE = env.HOME if config.isWin32() - fs.makeTreeSync(@atomDirectory) + fs.mkdirpSync(@atomDirectory) # node-gyp doesn't currently have an option for this so just set the # environment variable to bypass strict SSL diff --git a/src/clean.coffee b/src/clean.coffee index 0fe44c512..0f81fc10b 100644 --- a/src/clean.coffee +++ b/src/clean.coffee @@ -7,7 +7,6 @@ _ = require 'underscore-plus' Command = require './command' config = require './apm' -fs = require './fs' module.exports = class Clean extends Command diff --git a/src/dedupe.coffee b/src/dedupe.coffee index 990f4fcd0..7221c8404 100644 --- a/src/dedupe.coffee +++ b/src/dedupe.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' async = require 'async' @@ -6,7 +7,6 @@ yargs = require 'yargs' config = require './apm' Command = require './command' -fs = require './fs' module.exports = class Dedupe extends Command @@ -40,7 +40,7 @@ class Dedupe extends Command env = _.extend({}, process.env, {HOME: @atomNodeDirectory, RUSTUP_HOME: config.getRustupHomeDirPath()}) env.USERPROFILE = env.HOME if config.isWin32() - fs.makeTreeSync(@atomDirectory) + fs.mkdirpSync(@atomDirectory) config.loadNpm (error, npm) => # node-gyp doesn't currently have an option for this so just set the # environment variable to bypass strict SSL @@ -87,8 +87,8 @@ class Dedupe extends Command @fork(@atomNpmPath, dedupeArgs, dedupeOptions, callback) createAtomDirectories: -> - fs.makeTreeSync(@atomDirectory) - fs.makeTreeSync(@atomNodeDirectory) + fs.mkdirpSync(@atomDirectory) + fs.mkdirpSync(@atomNodeDirectory) run: (options) -> {callback, cwd} = options diff --git a/src/fs.coffee b/src/fs.coffee deleted file mode 100644 index d040a321c..000000000 --- a/src/fs.coffee +++ /dev/null @@ -1,39 +0,0 @@ -_ = require 'underscore-plus' -fs = require 'fs-extra' -ncp = require 'ncp' -rm = require 'rimraf' -wrench = require 'wrench' -path = require 'path' - -fsAdditions = - list: (directoryPath) -> - try - fs.readdirSync(directoryPath) - catch e - [] - - listRecursive: (directoryPath) -> - wrench.readdirSyncRecursive(directoryPath) - - cp: (sourcePath, destinationPath, callback) -> - rm destinationPath, (error) -> - if error? - callback(error) - else - ncp(sourcePath, destinationPath, callback) - - mv: (sourcePath, destinationPath, callback) -> - rm destinationPath, (error) -> - if error? - callback(error) - else - wrench.mkdirSyncRecursive(path.dirname(destinationPath), 0o755) - fs.rename(sourcePath, destinationPath, callback) - -module.exports = new Proxy({}, { - get: (target, key) -> - fsAdditions[key] or fs[key] - - set: (target, key, value) -> - fsAdditions[key] = value -}) diff --git a/src/git.coffee b/src/git.coffee index ca6b1e048..ac9be9461 100644 --- a/src/git.coffee +++ b/src/git.coffee @@ -1,9 +1,10 @@ {spawn} = require 'child_process' +fs = require 'fs-extra' path = require 'path' + _ = require 'underscore-plus' npm = require 'npm' config = require './apm' -fs = require './fs' addPortableGitToEnv = (env) -> localAppData = env.LOCALAPPDATA @@ -31,11 +32,15 @@ addGitBashToEnv = (env) -> if env.ProgramFiles gitPath = path.join(env.ProgramFiles, 'Git') - unless fs.isDirectorySync(gitPath) - if env['ProgramFiles(x86)'] - gitPath = path.join(env['ProgramFiles(x86)'], 'Git') + try + unless fs.statSync(gitPath).isDirectory() + if env['ProgramFiles(x86)'] + gitPath = path.join(env['ProgramFiles(x86)'], 'Git') - return unless fs.isDirectorySync(gitPath) + try + return unless fs.statSync(gitPath).isDirectory() + catch error + return cmdPath = path.join(gitPath, 'cmd') binPath = path.join(gitPath, 'bin') diff --git a/src/init.coffee b/src/init.coffee index e263ab8c7..0a9ff9b3e 100644 --- a/src/init.coffee +++ b/src/init.coffee @@ -1,9 +1,10 @@ +fs = require 'fs-extra' path = require 'path' +klawSync = require 'klaw-sync' yargs = require 'yargs' Command = require './command' -fs = require './fs' module.exports = class Init extends Command @@ -114,9 +115,9 @@ class Init extends Command packageName ?= path.basename(packagePath) packageAuthor = process.env.GITHUB_USER or 'atom' - fs.makeTreeSync(packagePath) + fs.mkdirpSync(packagePath) - for childPath in fs.listRecursive(templatePath) + for {path: childPath, stats} in klawSync(templatePath) templateChildPath = path.resolve(templatePath, childPath) relativePath = templateChildPath.replace(templatePath, "") relativePath = relativePath.replace(/^\//, '') @@ -125,10 +126,10 @@ class Init extends Command sourcePath = path.join(packagePath, relativePath) continue if fs.existsSync(sourcePath) - if fs.isDirectorySync(templateChildPath) - fs.makeTreeSync(sourcePath) - else if fs.isFileSync(templateChildPath) - fs.makeTreeSync(path.dirname(sourcePath)) + if stats.isDirectory() + fs.mkdirpSync(sourcePath) + else if stats.isDirectory() + fs.mkdirpSync(path.dirname(sourcePath)) contents = fs.readFileSync(templateChildPath).toString() contents = @replacePackageNamePlaceholders(contents, packageName) contents = @replacePackageAuthorPlaceholders(contents, packageAuthor) diff --git a/src/install.coffee b/src/install.coffee index 220017e82..a4d3f7276 100644 --- a/src/install.coffee +++ b/src/install.coffee @@ -1,4 +1,5 @@ assert = require 'assert' +fs = require 'fs-extra' path = require 'path' _ = require 'underscore-plus' @@ -6,13 +7,13 @@ async = require 'async' CSON = require 'season' yargs = require 'yargs' Git = require 'git-utils' +klawSync = require 'klaw-sync' semver = require 'semver' temp = require 'temp' hostedGitInfo = require 'hosted-git-info' config = require './apm' Command = require './command' -fs = require './fs' RebuildModuleCache = require './rebuild-module-cache' request = require './request' {isDeprecatedPackage} = require './deprecated-packages' @@ -68,7 +69,7 @@ class Install extends Command env = _.extend({}, process.env, {HOME: @atomNodeDirectory, RUSTUP_HOME: config.getRustupHomeDirPath()}) env.USERPROFILE = env.HOME if config.isWin32() - fs.makeTreeSync(@atomDirectory) + fs.mkdirpSync(@atomDirectory) # node-gyp doesn't currently have an option for this so just set the # environment variable to bypass strict SSL @@ -112,7 +113,7 @@ class Install extends Command if installGlobally installDirectory = temp.mkdirSync('apm-install-dir-') nodeModulesDirectory = path.join(installDirectory, 'node_modules') - fs.makeTreeSync(nodeModulesDirectory) + fs.mkdirpSync(nodeModulesDirectory) installOptions.cwd = installDirectory @fork @atomNpmPath, installArgs, installOptions, (code, stderr='', stdout='') => @@ -125,7 +126,7 @@ class Install extends Command child = children[0] source = path.join(nodeModulesDirectory, child) destination = path.join(@atomPackagesDirectory, child) - commands.push (next) -> fs.cp(source, destination, next) + commands.push (next) -> fs.copy(source, destination, next) commands.push (next) => @buildModuleCache(pack.name, next) commands.push (next) => @warmCompileCache(pack.name, next) @@ -395,9 +396,9 @@ class Install extends Command undefined createAtomDirectories: -> - fs.makeTreeSync(@atomDirectory) - fs.makeTreeSync(@atomPackagesDirectory) - fs.makeTreeSync(@atomNodeDirectory) + fs.mkdirpSync(@atomDirectory) + fs.mkdirpSync(@atomPackagesDirectory) + fs.mkdirpSync(@atomNodeDirectory) # Compile a sample native module to see if a useable native build toolchain # is instlalled and successfully detected. This will include both Python @@ -431,7 +432,11 @@ class Install extends Command packageNamesFromPath: (filePath) -> filePath = path.resolve(filePath) - unless fs.isFileSync(filePath) + isFile = false + try + isFile = fs.statSync(filePath).isFile() + + unless isFile throw new Error("File '#{filePath}' does not exist") packages = fs.readFileSync(filePath, 'utf8') @@ -451,14 +456,13 @@ class Install extends Command try CompileCache = require(path.join(resourcePath, 'src', 'compile-cache')) - onDirectory = (directoryPath) -> + isntNodeModules = ({path: directoryPath}) -> path.basename(directoryPath) isnt 'node_modules' - onFile = (filePath) => - try - CompileCache.addPathToCache(filePath, @atomDirectory) - - fs.traverseTreeSync(packageDirectory, onFile, onDirectory) + for {path: childPath, stats} in klawSync(packageDirectory, {filter: isntNodeModules}) + if stats.isFile() + try + CompileCache.addPathToCache(childPath, @atomDirectory) callback(null) isBundledPackage: (packageName, callback) -> @@ -533,7 +537,7 @@ class Install extends Command {name} = data.metadata targetDir = path.join(@atomPackagesDirectory, name) process.stdout.write "Moving #{name} to #{targetDir} " unless options.argv.json - fs.cp cloneDir, targetDir, (err) => + fs.copy cloneDir, targetDir, (err) => if err next(err) else diff --git a/src/link.coffee b/src/link.coffee index 6d7588e58..ca9c98244 100644 --- a/src/link.coffee +++ b/src/link.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' CSON = require 'season' @@ -5,7 +6,6 @@ yargs = require 'yargs' Command = require './command' config = require './apm' -fs = require './fs' module.exports = class Link extends Command @@ -47,8 +47,10 @@ class Link extends Command return try - fs.unlinkSync(targetPath) if fs.isSymbolicLinkSync(targetPath) - fs.makeTreeSync path.dirname(targetPath) + if fs.existsSync(targetPath) + fs.unlinkSync(targetPath) if fs.lstatSync(targetPath).isSymbolicLink() + + fs.mkdirpSync path.dirname(targetPath) fs.symlinkSync(linkPath, targetPath, 'junction') console.log "#{targetPath} -> #{linkPath}" callback() diff --git a/src/links.coffee b/src/links.coffee index 72a79b29f..4c68a4fcc 100644 --- a/src/links.coffee +++ b/src/links.coffee @@ -1,10 +1,10 @@ +fs = require 'fs-extra' path = require 'path' yargs = require 'yargs' Command = require './command' config = require './apm' -fs = require './fs' tree = require './tree' module.exports = @@ -33,9 +33,13 @@ class Links extends Command getSymlinks: (directoryPath) -> symlinks = [] - for directory in fs.list(directoryPath) - symlinkPath = path.join(directoryPath, directory) - symlinks.push(symlinkPath) if fs.isSymbolicLinkSync(symlinkPath) + try + for directory in fs.readdirSync(directoryPath) + symlinkPath = path.join(directoryPath, directory) + symlinks.push(symlinkPath) if fs.isSymbolicLinkSync(symlinkPath) + catch error + # Noop - just fall through and return an empty array + symlinks logLinks: (directoryPath) -> diff --git a/src/list.coffee b/src/list.coffee index 3b5befef1..793e7bd3d 100644 --- a/src/list.coffee +++ b/src/list.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' _ = require 'underscore-plus' @@ -5,7 +6,6 @@ CSON = require 'season' yargs = require 'yargs' Command = require './command' -fs = require './fs' config = require './apm' tree = require './tree' {getRepository} = require "./packages" @@ -84,21 +84,24 @@ class List extends Command listPackages: (directoryPath, options) -> packages = [] - for child in fs.list(directoryPath) - continue unless fs.isDirectorySync(path.join(directoryPath, child)) - continue if child.match /^\./ - unless options.argv.links - continue if fs.isSymbolicLinkSync(path.join(directoryPath, child)) - - manifest = null - if manifestPath = CSON.resolve(path.join(directoryPath, child, 'package')) - try - manifest = CSON.readFileSync(manifestPath) - manifest ?= {} - manifest.name = child - - continue unless @isPackageVisible(options, manifest) - packages.push(manifest) + try + for child in fs.readdirSync(directoryPath) + continue unless fs.isDirectorySync(path.join(directoryPath, child)) + continue if child.match /^\./ + unless options.argv.links + continue if fs.isSymbolicLinkSync(path.join(directoryPath, child)) + + manifest = null + if manifestPath = CSON.resolve(path.join(directoryPath, child, 'package')) + try + manifest = CSON.readFileSync(manifestPath) + manifest ?= {} + manifest.name = child + + continue unless @isPackageVisible(options, manifest) + packages.push(manifest) + catch error + # Noop - just fall through and return an empty array packages diff --git a/src/package-converter.coffee b/src/package-converter.coffee index a29106d6b..86d4830ac 100644 --- a/src/package-converter.coffee +++ b/src/package-converter.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' url = require 'url' zlib = require 'zlib' @@ -9,7 +10,6 @@ plist = require '@atom/plist' tar = require 'tar' temp = require 'temp' -fs = require './fs' request = require './request' # Convert a TextMate bundle to an Atom package @@ -116,7 +116,10 @@ class PackageConverter @writeFileSync(destinationPath, contents) normalizeFilenames: (directoryPath) -> - return unless fs.isDirectorySync(directoryPath) + try + return unless fs.statSync(directoryPath).isDirectory() + catch error + return for child in fs.readdirSync(directoryPath) childPath = path.join(directoryPath, child) @@ -137,9 +140,14 @@ class PackageConverter convertSnippets: (packageName, source) -> sourceSnippets = path.join(source, 'snippets') - unless fs.isDirectorySync(sourceSnippets) - sourceSnippets = path.join(source, 'Snippets') - return unless fs.isDirectorySync(sourceSnippets) + try + unless fs.statSync(sourceSnippets).isDirectory() + sourceSnippets = path.join(source, 'Snippets') + + try + return unless fs.statSync(sourceSnippets).isDirectory() + catch error + return snippetsBySelector = {} destination = path.join(@destinationPath, 'snippets') @@ -177,9 +185,14 @@ class PackageConverter convertPreferences: (packageName, source) -> sourcePreferences = path.join(source, 'preferences') - unless fs.isDirectorySync(sourcePreferences) - sourcePreferences = path.join(source, 'Preferences') - return unless fs.isDirectorySync(sourcePreferences) + try + unless fs.statSync(sourcePreferences).isDirectory() + sourcePreferences = path.join(source, 'Preferences') + + try + return unless fs.statSync(sourcePreferences).isDirectory() + catch error + return preferencesBySelector = {} destination = path.join(@destinationPath, 'settings') @@ -205,13 +218,18 @@ class PackageConverter convertGrammars: (source) -> sourceSyntaxes = path.join(source, 'syntaxes') - unless fs.isDirectorySync(sourceSyntaxes) - sourceSyntaxes = path.join(source, 'Syntaxes') - return unless fs.isDirectorySync(sourceSyntaxes) + try + unless fs.statSync(sourceSyntaxes).isDirectory() + sourceSyntaxes = path.join(source, 'Syntaxes') + + try + return unless fs.statSync(sourceSyntaxes).isDirectory() + catch error + return destination = path.join(@destinationPath, 'grammars') for child in fs.readdirSync(sourceSyntaxes) childPath = path.join(sourceSyntaxes, child) - @convertFile(childPath, destination) if fs.isFileSync(childPath) + @convertFile(childPath, destination) if fs.statSync(childPath).isFile() @normalizeFilenames(destination) diff --git a/src/publish.coffee b/src/publish.coffee index a568adad2..e2e714973 100644 --- a/src/publish.coffee +++ b/src/publish.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' url = require 'url' @@ -5,7 +6,6 @@ yargs = require 'yargs' Git = require 'git-utils' semver = require 'semver' -fs = require './fs' config = require './apm' Command = require './command' Login = require './login' @@ -225,7 +225,10 @@ class Publish extends Command loadMetadata: -> metadataPath = path.resolve('package.json') - unless fs.isFileSync(metadataPath) + try + unless fs.statSync(metadataPath).isFile() + throw new Error("No package.json file found at #{process.cwd()}/package.json") + catch error throw new Error("No package.json file found at #{process.cwd()}/package.json") try diff --git a/src/rebuild-module-cache.coffee b/src/rebuild-module-cache.coffee index 3366f10f7..af7131dbb 100644 --- a/src/rebuild-module-cache.coffee +++ b/src/rebuild-module-cache.coffee @@ -1,9 +1,11 @@ +fs = require 'fs-extra' path = require 'path' + async = require 'async' yargs = require 'yargs' + Command = require './command' config = require './apm' -fs = require './fs' module.exports = class RebuildModuleCache extends Command @@ -49,18 +51,21 @@ class RebuildModuleCache extends Command {callback} = options commands = [] - fs.list(@atomPackagesDirectory).forEach (packageName) => - packageDirectory = path.join(@atomPackagesDirectory, packageName) - return if fs.isSymbolicLinkSync(packageDirectory) - return unless fs.isFileSync(path.join(packageDirectory, 'package.json')) - - commands.push (callback) => - process.stdout.write "Rebuilding #{packageName} module cache " - @rebuild packageDirectory, (error) => - if error? - @logFailure() - else - @logSuccess() - callback(error) + try + for packageName in fs.readdirSync(@atomPackagesDirectory) + packageDirectory = path.join(@atomPackagesDirectory, packageName) + return if fs.isSymbolicLinkSync(packageDirectory) + return unless fs.isFileSync(path.join(packageDirectory, 'package.json')) + + commands.push (callback) => + process.stdout.write "Rebuilding #{packageName} module cache " + @rebuild packageDirectory, (error) => + if error? + @logFailure() + else + @logSuccess() + callback(error) + catch error + # Noop - just fall through and use an empty array for commands async.waterfall(commands, callback) diff --git a/src/star.coffee b/src/star.coffee index 37d7dda89..be77eff84 100644 --- a/src/star.coffee +++ b/src/star.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' _ = require 'underscore-plus' @@ -7,7 +8,6 @@ yargs = require 'yargs' config = require './apm' Command = require './command' -fs = require './fs' Login = require './login' Packages = require './packages' request = require './request' @@ -53,16 +53,19 @@ class Star extends Command callback() getInstalledPackageNames: -> - installedPackages = [] userPackagesDirectory = path.join(config.getAtomDirectory(), 'packages') - for child in fs.list(userPackagesDirectory) - continue unless fs.isDirectorySync(path.join(userPackagesDirectory, child)) - - if manifestPath = CSON.resolve(path.join(userPackagesDirectory, child, 'package')) - try - metadata = CSON.readFileSync(manifestPath) ? {} - if metadata.name and Packages.getRepository(metadata) - installedPackages.push metadata.name + installedPackages = [] + try + for child in fs.readdirSync(userPackagesDirectory) + continue unless fs.isDirectorySync(path.join(userPackagesDirectory, child)) + + if manifestPath = CSON.resolve(path.join(userPackagesDirectory, child, 'package')) + try + metadata = CSON.readFileSync(manifestPath) ? {} + if metadata.name and Packages.getRepository(metadata) + installedPackages.push metadata.name + catch error + # Noop - just fall through and use an empty array for installedPackages _.uniq(installedPackages) diff --git a/src/test.coffee b/src/test.coffee index fae3d9328..79a03e808 100644 --- a/src/test.coffee +++ b/src/test.coffee @@ -1,10 +1,10 @@ +fs = require 'fs-extra' path = require 'path' yargs = require 'yargs' temp = require 'temp' Command = require './command' -fs = require './fs' module.exports = class Test extends Command diff --git a/src/theme-converter.coffee b/src/theme-converter.coffee index 265be8191..6110a2078 100644 --- a/src/theme-converter.coffee +++ b/src/theme-converter.coffee @@ -1,6 +1,6 @@ +fs = require 'fs-extra' path = require 'path' url = require 'url' -fs = require './fs' request = require './request' TextMateTheme = require './text-mate-theme' @@ -25,10 +25,13 @@ class ThemeConverter callback(null, body) else sourcePath = path.resolve(@sourcePath) - if fs.isFileSync(sourcePath) - callback(null, fs.readFileSync(sourcePath, 'utf8')) - else - callback("TextMate theme file not found: #{sourcePath}") + try + if fs.statSync(sourcePath).isFile() + callback(null, fs.readFileSync(sourcePath, 'utf8')) + return + + # Not a file, or we errored + callback("TextMate theme file not found: #{sourcePath}") convert: (callback) -> @readTheme (error, themeContents) => diff --git a/src/uninstall.coffee b/src/uninstall.coffee index eee9968d4..617e773f2 100644 --- a/src/uninstall.coffee +++ b/src/uninstall.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' async = require 'async' @@ -7,7 +8,6 @@ yargs = require 'yargs' auth = require './auth' Command = require './command' config = require './apm' -fs = require './fs' request = require './request' module.exports = diff --git a/src/unlink.coffee b/src/unlink.coffee index 7fa3e2f91..96b444471 100644 --- a/src/unlink.coffee +++ b/src/unlink.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' CSON = require 'season' @@ -5,7 +6,6 @@ yargs = require 'yargs' Command = require './command' config = require './apm' -fs = require './fs' module.exports = class Unlink extends Command @@ -39,7 +39,11 @@ class Unlink extends Command unlinkPath: (pathToUnlink) -> try process.stdout.write "Unlinking #{pathToUnlink} " - fs.unlinkSync(pathToUnlink) if fs.isSymbolicLinkSync(pathToUnlink) + isSymbolicLink = false + try + isSymbolicLink = fs.lstatSync(pathToUnlink).isSymbolicLink() + + fs.unlinkSync(pathToUnlink) if isSymbolicLink @logSuccess() catch error @logFailure() @@ -47,13 +51,14 @@ class Unlink extends Command unlinkAll: (options, callback) -> try - for child in fs.list(@devPackagesPath) + for child in fs.readdirSync(@devPackagesPath) packagePath = path.join(@devPackagesPath, child) - @unlinkPath(packagePath) if fs.isSymbolicLinkSync(packagePath) + @unlinkPath(packagePath) + unless options.argv.dev - for child in fs.list(@packagesPath) + for child in fs.readdirSync(@packagesPath) packagePath = path.join(@packagesPath, child) - @unlinkPath(packagePath) if fs.isSymbolicLinkSync(packagePath) + @unlinkPath(packagePath) callback() catch error callback(error) diff --git a/src/unpublish.coffee b/src/unpublish.coffee index daf2166a7..cfec5aa62 100644 --- a/src/unpublish.coffee +++ b/src/unpublish.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' readline = require 'readline' @@ -6,7 +7,6 @@ yargs = require 'yargs' auth = require './auth' Command = require './command' config = require './apm' -fs = require './fs' request = require './request' module.exports = diff --git a/src/upgrade.coffee b/src/upgrade.coffee index c36034fe5..3a6bcce28 100644 --- a/src/upgrade.coffee +++ b/src/upgrade.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' _ = require 'underscore-plus' @@ -9,7 +10,6 @@ Git = require 'git-utils' Command = require './command' config = require './apm' -fs = require './fs' Install = require './install' Packages = require './packages' request = require './request' @@ -47,7 +47,7 @@ class Upgrade extends Command getInstalledPackages: (options) -> packages = [] - for name in fs.list(@atomPackagesDirectory) + for name in fs.readdirSync(@atomPackagesDirectory) if pack = @getIntalledPackage(name) packages.push(pack) @@ -59,7 +59,11 @@ class Upgrade extends Command getIntalledPackage: (name) -> packageDirectory = path.join(@atomPackagesDirectory, name) - return if fs.isSymbolicLinkSync(packageDirectory) + try + return if fs.lstatSync(packageDirectory).isSymbolicLink() + catch error + return + try metadata = JSON.parse(fs.readFileSync(path.join(packageDirectory, 'package.json'))) return metadata if metadata?.name and metadata?.version From a270ce7da0d654a9f7edc90ce168563db2dd40de Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Mon, 22 Apr 2019 10:38:42 -0400 Subject: [PATCH 04/34] Ugh --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 8e98ba4ef..06e141b65 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2702,7 +2702,7 @@ "integrity": "sha1-uDx1fIAOaOHW78GjoaE/85/23NI=", "dev": true, "requires": { - "jasmine-node": "jasmine-node@git+https://github.com/kevinsawicki/jasmine-node.git#81af4f953a2b7dfb5bde8331c05362a4b464c5ef", + "jasmine-node": "git+https://github.com/kevinsawicki/jasmine-node.git#81af4f953a2b7dfb5bde8331c05362a4b464c5ef", "underscore-plus": "1.x", "walkdir": "0.0.7" } From 42297751d23be51b136c53742cc0e376775927d7 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 00:44:01 -0400 Subject: [PATCH 05/34] More fixes --- src/apm.coffee | 2 ++ src/list.coffee | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/apm.coffee b/src/apm.coffee index 282fbda22..8d7a37e13 100644 --- a/src/apm.coffee +++ b/src/apm.coffee @@ -1,6 +1,7 @@ child_process = require 'child_process' fs = require 'fs-extra' path = require 'path' + npm = require 'npm' semver = require 'semver' @@ -104,6 +105,7 @@ module.exports = setupApmRcFile: -> try + fs.ensureFileSync(@getGlobalConfigPath()) fs.writeFileSync @getGlobalConfigPath(), """ ; This file is auto-generated and should not be edited since any ; modifications will be lost the next time any apm command is run. diff --git a/src/list.coffee b/src/list.coffee index 793e7bd3d..5fb8351ab 100644 --- a/src/list.coffee +++ b/src/list.coffee @@ -86,10 +86,10 @@ class List extends Command packages = [] try for child in fs.readdirSync(directoryPath) - continue unless fs.isDirectorySync(path.join(directoryPath, child)) + continue unless fs.statSync(path.join(directoryPath, child)).isDirectory() continue if child.match /^\./ unless options.argv.links - continue if fs.isSymbolicLinkSync(path.join(directoryPath, child)) + continue if fs.lstatSync(path.join(directoryPath, child)).isSymbolicLink() manifest = null if manifestPath = CSON.resolve(path.join(directoryPath, child, 'package')) From ae36c6391e1da797e066b3986cc2d912e259ca1a Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 00:48:38 -0400 Subject: [PATCH 06/34] Get rid of the remaining fs-plus functions --- spec/init-spec.coffee | 6 +++--- spec/install-spec.coffee | 8 ++++---- src/links.coffee | 2 +- src/rebuild-module-cache.coffee | 4 ++-- src/star.coffee | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/spec/init-spec.coffee b/spec/init-spec.coffee index 99a3af6ce..02f9ac4d1 100644 --- a/spec/init-spec.coffee +++ b/spec/init-spec.coffee @@ -89,9 +89,9 @@ describe "apm init", -> it "generates the proper file structure", -> expect(fs.existsSync(packagePath)).toBeTruthy() - expect(fs.isFileSync(path.join(packagePath, 'settings', 'fake-package.cson'))).toBe true - expect(fs.isFileSync(path.join(packagePath, 'snippets', 'fake-package.cson'))).toBe true - expect(fs.isFileSync(path.join(packagePath, 'grammars', 'r.cson'))).toBe true + expect(fs.statSync(path.join(packagePath, 'settings', 'fake-package.cson')).isFile()).toBe true + expect(fs.statSync(path.join(packagePath, 'snippets', 'fake-package.cson')).isFile()).toBe true + expect(fs.statSync(path.join(packagePath, 'grammars', 'r.cson')).isFile()).toBe true expect(fs.existsSync(path.join(packagePath, 'command'))).toBeFalsy() expect(fs.existsSync(path.join(packagePath, 'README.md'))).toBeTruthy() expect(fs.existsSync(path.join(packagePath, 'package.json'))).toBeTruthy() diff --git a/spec/install-spec.coffee b/spec/install-spec.coffee index 0074c29c2..ab3792e9f 100644 --- a/spec/install-spec.coffee +++ b/spec/install-spec.coffee @@ -259,10 +259,10 @@ describe 'apm install', -> callback.callCount is 1 runs -> - expect(fs.isFileSync(path.join(testModuleDirectory, 'index.js'))).toBeTruthy() + expect(fs.statSync(path.join(testModuleDirectory, 'index.js')).isFile()).toBeTruthy() if process.platform is 'win32' - expect(fs.isFileSync(path.join(testModuleDirectory, 'node_modules', '.bin', 'abin'))).toBeTruthy() + expect(fs.statSync(path.join(testModuleDirectory, 'node_modules', '.bin', 'abin')).isFile()).toBeTruthy() else expect(fs.realpathSync(path.join(testModuleDirectory, 'node_modules', '.bin', 'abin'))).toBe fs.realpathSync(path.join(testModuleDirectory, 'node_modules', 'test-module-with-bin', 'bin', 'abin.js')) @@ -279,7 +279,7 @@ describe 'apm install', -> runs -> expect(callback.argsForCall[0][0]).toBeFalsy() - expect(fs.isFileSync(path.join(testModuleDirectory, 'package.json'))).toBeTruthy() + expect(fs.statSync(path.join(testModuleDirectory, 'package.json')).isFile()).toBeTruthy() describe 'when a packages file is specified', -> it 'installs all the packages listed in the file', -> @@ -534,7 +534,7 @@ describe 'apm install', -> nodeModules = fs.realpathSync(path.join(__dirname, '..', 'node_modules')) beforeEach -> - fs.cp path.join(nodeModules, 'node-gyp'), path.join(nodeModules, 'with a space') + fs.copy path.join(nodeModules, 'node-gyp'), path.join(nodeModules, 'with a space') process.env.npm_config_node_gyp = path.join(nodeModules, 'with a space', 'bin', 'node-gyp.js') process.env.ATOM_NODE_GYP_PATH = path.join(nodeModules, 'with a space', 'bin', 'node-gyp.js') diff --git a/src/links.coffee b/src/links.coffee index 4c68a4fcc..106c12c3c 100644 --- a/src/links.coffee +++ b/src/links.coffee @@ -36,7 +36,7 @@ class Links extends Command try for directory in fs.readdirSync(directoryPath) symlinkPath = path.join(directoryPath, directory) - symlinks.push(symlinkPath) if fs.isSymbolicLinkSync(symlinkPath) + symlinks.push(symlinkPath) if fs.lstatSync(symlinkPath).isSymbolicLink() catch error # Noop - just fall through and return an empty array diff --git a/src/rebuild-module-cache.coffee b/src/rebuild-module-cache.coffee index af7131dbb..516b77d0c 100644 --- a/src/rebuild-module-cache.coffee +++ b/src/rebuild-module-cache.coffee @@ -54,8 +54,8 @@ class RebuildModuleCache extends Command try for packageName in fs.readdirSync(@atomPackagesDirectory) packageDirectory = path.join(@atomPackagesDirectory, packageName) - return if fs.isSymbolicLinkSync(packageDirectory) - return unless fs.isFileSync(path.join(packageDirectory, 'package.json')) + return if fs.lstatSync(packageDirectory).isSymbolicLink() + return unless fs.statSync(path.join(packageDirectory, 'package.json')).isFile() commands.push (callback) => process.stdout.write "Rebuilding #{packageName} module cache " diff --git a/src/star.coffee b/src/star.coffee index be77eff84..f11bfe347 100644 --- a/src/star.coffee +++ b/src/star.coffee @@ -57,7 +57,7 @@ class Star extends Command installedPackages = [] try for child in fs.readdirSync(userPackagesDirectory) - continue unless fs.isDirectorySync(path.join(userPackagesDirectory, child)) + continue unless fs.statSync(path.join(userPackagesDirectory, child)).isDirectory() if manifestPath = CSON.resolve(path.join(userPackagesDirectory, child, 'package')) try From fe6eac4e06768c9b3e6512ca1d4109085697fda0 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 01:02:36 -0400 Subject: [PATCH 07/34] Fix initializing packages Down to 27 failures from 67! That was a pretty big chunk of failures caused by a isDirectory/isFile typo... --- src/init.coffee | 2 +- src/theme-converter.coffee | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/init.coffee b/src/init.coffee index 0a9ff9b3e..8d56bb528 100644 --- a/src/init.coffee +++ b/src/init.coffee @@ -128,7 +128,7 @@ class Init extends Command continue if fs.existsSync(sourcePath) if stats.isDirectory() fs.mkdirpSync(sourcePath) - else if stats.isDirectory() + else if stats.isFile() fs.mkdirpSync(path.dirname(sourcePath)) contents = fs.readFileSync(templateChildPath).toString() contents = @replacePackageNamePlaceholders(contents, packageName) diff --git a/src/theme-converter.coffee b/src/theme-converter.coffee index 6110a2078..76aff48e6 100644 --- a/src/theme-converter.coffee +++ b/src/theme-converter.coffee @@ -42,6 +42,8 @@ class ThemeConverter catch error return callback(error) - fs.writeFileSync(path.join(@destinationPath, 'styles', 'base.less'), theme.getStylesheet()) - fs.writeFileSync(path.join(@destinationPath, 'styles', 'syntax-variables.less'), theme.getSyntaxVariables()) + stylesPath = path.join(@destinationPath, 'styles') + fs.mkdirpSync(stylesPath) + fs.writeFileSync(path.join(stylesPath, 'base.less'), theme.getStylesheet()) + fs.writeFileSync(path.join(stylesPath, 'syntax-variables.less'), theme.getSyntaxVariables()) callback() From 88ef0f5ea51650223d4dd00894fa4c1cf00db59e Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 15:56:33 -0400 Subject: [PATCH 08/34] That took longer than expected --- src/install.coffee | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/install.coffee b/src/install.coffee index a4d3f7276..2b3f3c54b 100644 --- a/src/install.coffee +++ b/src/install.coffee @@ -120,12 +120,19 @@ class Install extends Command if code is 0 if installGlobally commands = [] - children = fs.readdirSync(nodeModulesDirectory) - .filter (dir) -> dir isnt ".bin" + children = fs.readdirSync(nodeModulesDirectory).filter (dir) -> dir isnt ".bin" assert.equal(children.length, 1, "Expected there to only be one child in node_modules") child = children[0] source = path.join(nodeModulesDirectory, child) destination = path.join(@atomPackagesDirectory, child) + commands.push (next) -> + # emptyDir will pass `destination` as the first callback argument if it doesn't exist + # We expect the first argument to always be the next callback function, + # so don't call emptyDir unless `destination` exists + if fs.existsSync(destination) + fs.emptyDir(destination, next) + else + next() commands.push (next) -> fs.copy(source, destination, next) commands.push (next) => @buildModuleCache(pack.name, next) commands.push (next) => @warmCompileCache(pack.name, next) @@ -537,6 +544,13 @@ class Install extends Command {name} = data.metadata targetDir = path.join(@atomPackagesDirectory, name) process.stdout.write "Moving #{name} to #{targetDir} " unless options.argv.json + fs.emptyDir targetDir, (err) -> + if err + next(err) + else + next() + + tasks.push (next) => fs.copy cloneDir, targetDir, (err) => if err next(err) From 8c446df3e2933b032c8ce559829afa8fa1642331 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 16:13:15 -0400 Subject: [PATCH 09/34] Add missing mkdirps to upgrade-spec --- spec/upgrade-spec.coffee | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/spec/upgrade-spec.coffee b/spec/upgrade-spec.coffee index 255f55860..dd4a24448 100644 --- a/spec/upgrade-spec.coffee +++ b/spec/upgrade-spec.coffee @@ -52,6 +52,7 @@ describe "apm upgrade", -> waitsFor -> done it "does not display updates for unpublished packages", -> + fs.mkdirpSync(path.join(packagesDir, 'not-published')) fs.writeFileSync(path.join(packagesDir, 'not-published', 'package.json'), JSON.stringify({name: 'not-published', version: '1.0', repository: 'https://github.com/a/b'})) callback = jasmine.createSpy('callback') @@ -65,6 +66,7 @@ describe "apm upgrade", -> expect(console.log.argsForCall[1][0]).toContain 'empty' it "does not display updates for packages whose engine does not satisfy the installed Atom version", -> + fs.mkdirpSync(path.join(packagesDir, 'test-module')) fs.writeFileSync(path.join(packagesDir, 'test-module', 'package.json'), JSON.stringify({name: 'test-module', version: '0.3.0', repository: 'https://github.com/a/b'})) callback = jasmine.createSpy('callback') @@ -78,6 +80,7 @@ describe "apm upgrade", -> expect(console.log.argsForCall[1][0]).toContain 'empty' it "displays the latest update that satisfies the installed Atom version", -> + fs.mkdirpSync(path.join(packagesDir, 'multi-module')) fs.writeFileSync(path.join(packagesDir, 'multi-module', 'package.json'), JSON.stringify({name: 'multi-module', version: '0.1.0', repository: 'https://github.com/a/b'})) callback = jasmine.createSpy('callback') @@ -91,6 +94,7 @@ describe "apm upgrade", -> expect(console.log.argsForCall[1][0]).toContain 'multi-module 0.1.0 -> 0.3.0' it "does not display updates for packages already up to date", -> + fs.mkdirpSync(path.join(packagesDir, 'multi-module')) fs.writeFileSync(path.join(packagesDir, 'multi-module', 'package.json'), JSON.stringify({name: 'multi-module', version: '0.3.0', repository: 'https://github.com/a/b'})) callback = jasmine.createSpy('callback') @@ -104,6 +108,7 @@ describe "apm upgrade", -> expect(console.log.argsForCall[1][0]).toContain 'empty' it "does display updates when the installed package's repository is not the same as the available package's repository", -> + fs.mkdirpSync(path.join(packagesDir, 'different-repo')) fs.writeFileSync(path.join(packagesDir, 'different-repo', 'package.json'), JSON.stringify({name: 'different-repo', version: '0.3.0', repository: 'https://github.com/world/hello'})) callback = jasmine.createSpy('callback') @@ -117,6 +122,8 @@ describe "apm upgrade", -> expect(console.log.argsForCall[1][0]).toContain 'different-repo 0.3.0 -> 0.4.0' it "allows the package names to upgrade to be specified", -> + fs.mkdirpSync(path.join(packagesDir, 'multi-module')) + fs.mkdirpSync(path.join(packagesDir, 'different-repo')) fs.writeFileSync(path.join(packagesDir, 'multi-module', 'package.json'), JSON.stringify({name: 'multi-module', version: '0.1.0', repository: 'https://github.com/a/b'})) fs.writeFileSync(path.join(packagesDir, 'different-repo', 'package.json'), JSON.stringify({name: 'different-repo', version: '0.3.0', repository: 'https://github.com/world/hello'})) @@ -133,6 +140,7 @@ describe "apm upgrade", -> expect(console.log.argsForCall[1][0]).not.toContain 'multi-module 0.1.0 -> 0.3.0' it "does not display updates when the installed package's repository does not exist", -> + fs.mkdirpSync(path.join(packagesDir, 'different-repo')) fs.writeFileSync(path.join(packagesDir, 'different-repo', 'package.json'), JSON.stringify({name: 'different-repo', version: '0.3.0'})) callback = jasmine.createSpy('callback') @@ -159,6 +167,8 @@ describe "apm upgrade", -> it "ignores the commit SHA suffix in the version", -> fs.writeFileSync(path.join(atomApp, 'package.json'), JSON.stringify(version: '0.10.0-deadbeef')) + + fs.mkdirpSync(path.join(packagesDir, 'multi-module')) fs.writeFileSync(path.join(packagesDir, 'multi-module', 'package.json'), JSON.stringify({name: 'multi-module', version: '0.1.0', repository: 'https://github.com/a/b'})) callback = jasmine.createSpy('callback') From ae7c496ad78d711fec1958aadb0eb39275fbcf80 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 16:28:27 -0400 Subject: [PATCH 10/34] :fire: wrench --- package-lock.json | 5 ----- package.json | 1 - spec/ci-spec.coffee | 9 ++++----- spec/clean-spec.coffee | 3 +-- spec/disable-spec.coffee | 7 +++---- spec/install-spec.coffee | 5 ++--- spec/list-spec.coffee | 3 +-- spec/rebuild-spec.coffee | 1 - spec/upgrade-spec.coffee | 1 - 9 files changed, 11 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 06e141b65..d22a9e9f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6258,11 +6258,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "wrench": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/wrench/-/wrench-1.5.9.tgz", - "integrity": "sha1-QRaRxjqbJTGxcAJnJ5veyiOyFCo=" - }, "write-file-atomic": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", diff --git a/package.json b/package.json index fc89cabd4..9ede938ee 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,6 @@ "temp": "^0.8.3", "underscore-plus": "1.x", "wordwrap": "0.0.2", - "wrench": "~1.5.1", "yargs": "^3.23.0" }, "devDependencies": { diff --git a/spec/ci-spec.coffee b/spec/ci-spec.coffee index 96dcddb13..9fa085672 100644 --- a/spec/ci-spec.coffee +++ b/spec/ci-spec.coffee @@ -3,7 +3,6 @@ fs = require 'fs' http = require 'http' temp = require 'temp' express = require 'express' -wrench = require 'wrench' CSON = require 'season' apm = require '../lib/apm-cli' @@ -62,7 +61,7 @@ describe 'apm ci', -> it 'installs dependency versions as specified by the lockfile', -> moduleDirectory = path.join temp.mkdirSync('apm-test-'), 'test-module-with-lockfile' - wrench.copyDirSyncRecursive path.join(__dirname, 'fixtures', 'test-module-with-lockfile'), moduleDirectory + fs.copySync path.join(__dirname, 'fixtures', 'test-module-with-lockfile'), moduleDirectory process.chdir moduleDirectory callback = jasmine.createSpy('callback') @@ -80,7 +79,7 @@ describe 'apm ci', -> it 'builds a native dependency correctly', -> moduleDirectory = path.join temp.mkdirSync('apm-test-'), 'test-module-with-native' - wrench.copyDirSyncRecursive path.join(__dirname, 'fixtures', 'test-module-with-lockfile'), moduleDirectory + fs.copySync path.join(__dirname, 'fixtures', 'test-module-with-lockfile'), moduleDirectory process.chdir moduleDirectory pjsonPath = path.join moduleDirectory, 'package.json' @@ -108,7 +107,7 @@ describe 'apm ci', -> it 'fails if the lockfile is not present', -> moduleDirectory = path.join temp.mkdirSync('apm-test-'), 'test-module' - wrench.copyDirSyncRecursive path.join(__dirname, 'fixtures', 'test-module'), moduleDirectory + fs.copySync path.join(__dirname, 'fixtures', 'test-module'), moduleDirectory process.chdir moduleDirectory callback = jasmine.createSpy('callback') @@ -120,7 +119,7 @@ describe 'apm ci', -> it 'fails if the lockfile is out of date', -> moduleDirectory = path.join temp.mkdirSync('apm-test-'), 'test-module-with-lockfile' - wrench.copyDirSyncRecursive path.join(__dirname, 'fixtures', 'test-module-with-lockfile'), moduleDirectory + fs.copySync path.join(__dirname, 'fixtures', 'test-module-with-lockfile'), moduleDirectory process.chdir moduleDirectory pjsonPath = path.join moduleDirectory, 'package.json' diff --git a/spec/clean-spec.coffee b/spec/clean-spec.coffee index fdbba1f23..19fe4e083 100644 --- a/spec/clean-spec.coffee +++ b/spec/clean-spec.coffee @@ -3,7 +3,6 @@ fs = require 'fs-extra' temp = require 'temp' express = require 'express' http = require 'http' -wrench = require 'wrench' apm = require '../lib/apm-cli' describe 'apm clean', -> @@ -40,7 +39,7 @@ describe 'apm clean', -> process.env.npm_config_registry = 'http://localhost:3000/' moduleDirectory = path.join(temp.mkdirSync('apm-test-module-'), 'test-module-with-dependencies') - wrench.copyDirSyncRecursive(path.join(__dirname, 'fixtures', 'test-module-with-dependencies'), moduleDirectory) + fs.copySync(path.join(__dirname, 'fixtures', 'test-module-with-dependencies'), moduleDirectory) process.chdir(moduleDirectory) live = true waitsFor -> live diff --git a/spec/disable-spec.coffee b/spec/disable-spec.coffee index cd3d49290..1bcfd4c1b 100644 --- a/spec/disable-spec.coffee +++ b/spec/disable-spec.coffee @@ -1,5 +1,4 @@ fs = require 'fs-extra' -wrench = require 'wrench' path = require 'path' temp = require 'temp' CSON = require 'season' @@ -26,9 +25,9 @@ describe 'apm disable', -> packagesPath = path.join(atomHome, 'packages') packageSrcPath = path.join(__dirname, 'fixtures') fs.mkdirpSync(packagesPath) - wrench.copyDirSyncRecursive(path.join(packageSrcPath, 'test-module'), path.join(packagesPath, 'test-module')) - wrench.copyDirSyncRecursive(path.join(packageSrcPath, 'test-module-two'), path.join(packagesPath, 'test-module-two')) - wrench.copyDirSyncRecursive(path.join(packageSrcPath, 'test-module-three'), path.join(packagesPath, 'test-module-three')) + fs.copySync(path.join(packageSrcPath, 'test-module'), path.join(packagesPath, 'test-module')) + fs.copySync(path.join(packageSrcPath, 'test-module-two'), path.join(packagesPath, 'test-module-two')) + fs.copySync(path.join(packageSrcPath, 'test-module-three'), path.join(packagesPath, 'test-module-three')) runs -> apm.run(['disable', 'test-module-two', 'not-installed', 'test-module-three'], callback) diff --git a/spec/install-spec.coffee b/spec/install-spec.coffee index ab3792e9f..f7b8eccf3 100644 --- a/spec/install-spec.coffee +++ b/spec/install-spec.coffee @@ -4,7 +4,6 @@ fs = require 'fs-extra' temp = require 'temp' express = require 'express' http = require 'http' -wrench = require 'wrench' apm = require '../lib/apm-cli' Install = require '../lib/install' @@ -220,7 +219,7 @@ describe 'apm install', -> describe 'when no path is specified', -> it 'installs all dependent modules', -> moduleDirectory = path.join(temp.mkdirSync('apm-test-module-'), 'test-module-with-dependencies') - wrench.copyDirSyncRecursive(path.join(__dirname, 'fixtures', 'test-module-with-dependencies'), moduleDirectory) + fs.copySync(path.join(__dirname, 'fixtures', 'test-module-with-dependencies'), moduleDirectory) process.chdir(moduleDirectory) callback = jasmine.createSpy('callback') apm.run(['install'], callback) @@ -318,7 +317,7 @@ describe 'apm install', -> CSON.writeFileSync(path.join(atomRepoPath, 'package.json'), packageDependencies: 'test-module-with-dependencies': 'file:./packages/test-module-with-dependencies') packageDirectory = path.join(atomRepoPath, 'packages', 'test-module-with-dependencies') fs.mkdirpSync(path.join(atomRepoPath, 'packages')) - wrench.copyDirSyncRecursive(path.join(__dirname, 'fixtures', 'test-module-with-dependencies'), packageDirectory) + fs.copySync(path.join(__dirname, 'fixtures', 'test-module-with-dependencies'), packageDirectory) originalPath = process.cwd() process.chdir(atomRepoPath) diff --git a/spec/list-spec.coffee b/spec/list-spec.coffee index 5ad927c0f..eca1ab9b0 100644 --- a/spec/list-spec.coffee +++ b/spec/list-spec.coffee @@ -1,7 +1,6 @@ path = require 'path' fs = require 'fs-extra' temp = require 'temp' -wrench = require 'wrench' apm = require '../lib/apm-cli' CSON = require 'season' @@ -81,7 +80,7 @@ describe 'apm list', -> beforeEach -> packagesPath = path.join(atomHome, 'packages') fs.mkdirpSync(packagesPath) - wrench.copyDirSyncRecursive(path.join(__dirname, 'fixtures', 'test-module'), path.join(packagesPath, 'test-module')) + fs.copySync(path.join(__dirname, 'fixtures', 'test-module'), path.join(packagesPath, 'test-module')) configPath = path.join(atomHome, 'config.cson') CSON.writeFileSync configPath, '*': core: disabledPackages: ["test-module"] diff --git a/spec/rebuild-spec.coffee b/spec/rebuild-spec.coffee index bbc7fd917..bcbb6b298 100644 --- a/spec/rebuild-spec.coffee +++ b/spec/rebuild-spec.coffee @@ -3,7 +3,6 @@ CSON = require 'season' temp = require 'temp' express = require 'express' http = require 'http' -wrench = require 'wrench' apm = require '../lib/apm-cli' describe 'apm rebuild', -> diff --git a/spec/upgrade-spec.coffee b/spec/upgrade-spec.coffee index dd4a24448..ffdceb46f 100644 --- a/spec/upgrade-spec.coffee +++ b/spec/upgrade-spec.coffee @@ -3,7 +3,6 @@ fs = require 'fs-extra' temp = require 'temp' express = require 'express' http = require 'http' -wrench = require 'wrench' apm = require '../lib/apm-cli' apmRun = (args, callback) -> From cfb0c47da0c41ca10ef09a569fd36f8061e62e64 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 16:36:50 -0400 Subject: [PATCH 11/34] :fire: fs-plus, mv, ncp --- package-lock.json | 32 -------------------------------- package.json | 3 --- 2 files changed, 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index d22a9e9f4..f5a49e77d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3420,43 +3420,11 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, - "mv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.0.0.tgz", - "integrity": "sha1-jn7CtRh8hHFNd8jpg7HtKdejOhs=", - "requires": { - "mkdirp": "~0.3.5", - "ncp": "~0.4.2", - "rimraf": "~2.2.6" - }, - "dependencies": { - "mkdirp": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", - "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=" - }, - "ncp": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", - "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=" - }, - "rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" - } - } - }, "nan": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" }, - "ncp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.5.1.tgz", - "integrity": "sha1-dDmFMW49tFkoG1hxaehFc1oFQ58=" - }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", diff --git a/package.json b/package.json index 9ede938ee..2a3b15e13 100644 --- a/package.json +++ b/package.json @@ -29,13 +29,10 @@ "expand-tilde": "^2.0.2", "first-mate": "6.2.0", "fs-extra": "^7.0.1", - "fs-plus": "2.x", "git-utils": "^4.0", "hosted-git-info": "^2.1.4", "keytar": "^4.0", "klaw-sync": "^6.0.0", - "mv": "2.0.0", - "ncp": "~0.5.1", "node-gyp": "3.4.0", "npm": "6.2.0", "open": "0.0.5", From 5e61195a684fd2c9a011e3e440fec64475f5990c Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 16:53:30 -0400 Subject: [PATCH 12/34] Oops --- package-lock.json | 2 +- script/download-node.js | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5a49e77d..c8c260a48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2709,7 +2709,7 @@ }, "jasmine-node": { "version": "git+https://github.com/kevinsawicki/jasmine-node.git#81af4f953a2b7dfb5bde8331c05362a4b464c5ef", - "from": "jasmine-node@git+https://github.com/kevinsawicki/jasmine-node.git#81af4f953a2b7dfb5bde8331c05362a4b464c5ef", + "from": "git+https://github.com/kevinsawicki/jasmine-node.git#81af4f953a2b7dfb5bde8331c05362a4b464c5ef", "dev": true, "requires": { "coffee-script": ">=1.0.1", diff --git a/script/download-node.js b/script/download-node.js index 4477855cd..b1898e3bd 100755 --- a/script/download-node.js +++ b/script/download-node.js @@ -1,5 +1,4 @@ -var fs = require('fs'); -var mv = require('mv'); +var fs = require('fs-extra'); var zlib = require('zlib'); var path = require('path'); @@ -56,7 +55,7 @@ var copyNodeBinToLocation = function(callback, version, targetFilename, fromDire var arch = identifyArch(); var subDir = "node-" + version + "-" + process.platform + "-" + arch; var downloadedNodePath = path.join(fromDirectory, subDir, 'bin', 'node'); - return mv(downloadedNodePath, targetFilename, {mkdirp: true}, function(err) { + fs.move(downloadedNodePath, targetFilename, function(err) { if (err) { callback(err); return; From 0f2fe0c34fecdb9e4c2771ce57e0e7e37d2a467f Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 17:04:34 -0400 Subject: [PATCH 13/34] Don't know how I missed those --- spec/apm-cli-spec.coffee | 2 +- spec/ci-spec.coffee | 2 +- spec/enable-spec.coffee | 1 - spec/link-spec.coffee | 2 +- spec/test-spec.coffee | 1 - src/develop.coffee | 2 +- 6 files changed, 4 insertions(+), 6 deletions(-) diff --git a/spec/apm-cli-spec.coffee b/spec/apm-cli-spec.coffee index 0c9856787..8c9d7f4ff 100644 --- a/spec/apm-cli-spec.coffee +++ b/spec/apm-cli-spec.coffee @@ -1,6 +1,6 @@ +fs = require 'fs-extra' path = require 'path' temp = require 'temp' -fs = require 'fs' apm = require '../lib/apm-cli' describe 'apm command line interface', -> diff --git a/spec/ci-spec.coffee b/spec/ci-spec.coffee index 9fa085672..0a5e1fdae 100644 --- a/spec/ci-spec.coffee +++ b/spec/ci-spec.coffee @@ -1,5 +1,5 @@ path = require 'path' -fs = require 'fs' +fs = require 'fs-extra' http = require 'http' temp = require 'temp' express = require 'express' diff --git a/spec/enable-spec.coffee b/spec/enable-spec.coffee index af25ae780..a8672cf94 100644 --- a/spec/enable-spec.coffee +++ b/spec/enable-spec.coffee @@ -1,4 +1,3 @@ -fs = require 'fs' path = require 'path' temp = require 'temp' CSON = require 'season' diff --git a/spec/link-spec.coffee b/spec/link-spec.coffee index 2d7c4fca4..3b3c46f6c 100644 --- a/spec/link-spec.coffee +++ b/spec/link-spec.coffee @@ -1,4 +1,4 @@ -fs = require 'fs' +fs = require 'fs-extra' path = require 'path' temp = require 'temp' apm = require '../lib/apm-cli' diff --git a/spec/test-spec.coffee b/spec/test-spec.coffee index 4d6206e42..dd61c68d2 100644 --- a/spec/test-spec.coffee +++ b/spec/test-spec.coffee @@ -1,5 +1,4 @@ child_process = require 'child_process' -fs = require 'fs' path = require 'path' temp = require 'temp' apm = require '../lib/apm-cli' diff --git a/src/develop.coffee b/src/develop.coffee index 99ec1f5c4..cc1991cc0 100644 --- a/src/develop.coffee +++ b/src/develop.coffee @@ -1,4 +1,4 @@ -fs = require 'fs' +fs = require 'fs-extra' path = require 'path' _ = require 'underscore-plus' From fd56c149c5126596f8c7bfd702becd6ee1ded81e Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 17:13:14 -0400 Subject: [PATCH 14/34] copySync --- spec/install-spec.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/install-spec.coffee b/spec/install-spec.coffee index f7b8eccf3..44f6527b5 100644 --- a/spec/install-spec.coffee +++ b/spec/install-spec.coffee @@ -533,7 +533,7 @@ describe 'apm install', -> nodeModules = fs.realpathSync(path.join(__dirname, '..', 'node_modules')) beforeEach -> - fs.copy path.join(nodeModules, 'node-gyp'), path.join(nodeModules, 'with a space') + fs.copySync path.join(nodeModules, 'node-gyp'), path.join(nodeModules, 'with a space') process.env.npm_config_node_gyp = path.join(nodeModules, 'with a space', 'bin', 'node-gyp.js') process.env.ATOM_NODE_GYP_PATH = path.join(nodeModules, 'with a space', 'bin', 'node-gyp.js') From d258284f865f0d08f06d931b80b3f86a190b103b Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 21:59:28 -0400 Subject: [PATCH 15/34] Debug it --- spec/init-spec.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/init-spec.coffee b/spec/init-spec.coffee index 02f9ac4d1..ce24623df 100644 --- a/spec/init-spec.coffee +++ b/spec/init-spec.coffee @@ -8,7 +8,7 @@ describe "apm init", -> [packagePath, themePath, languagePath] = [] beforeEach -> - silenceOutput() + silenceOutput(true) spyOnToken() currentDir = temp.mkdirSync('apm-init-') @@ -78,7 +78,7 @@ describe "apm init", -> runs -> expect(callback.argsForCall[0][0].length).toBeGreaterThan 0 - describe "when converting a TextMate bundle", -> + fdescribe "when converting a TextMate bundle", -> beforeEach -> callback = jasmine.createSpy('callback') textMateBundlePath = path.join(__dirname, 'fixtures', 'r.tmbundle') From e633ef8be1e97a76bea6f83fd1ab959778b5b98f Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Tue, 23 Apr 2019 23:01:59 -0400 Subject: [PATCH 16/34] More debug --- src/package-converter.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/src/package-converter.coffee b/src/package-converter.coffee index 86d4830ac..84df56c74 100644 --- a/src/package-converter.coffee +++ b/src/package-converter.coffee @@ -192,6 +192,7 @@ class PackageConverter try return unless fs.statSync(sourcePreferences).isDirectory() catch error + console.log error return preferencesBySelector = {} From c2925276c670b4ef24b30aaec3eeeb16c54c5bbc Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Wed, 24 Apr 2019 00:06:44 -0400 Subject: [PATCH 17/34] Ah hah --- src/package-converter.coffee | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/package-converter.coffee b/src/package-converter.coffee index 84df56c74..c91745662 100644 --- a/src/package-converter.coffee +++ b/src/package-converter.coffee @@ -143,6 +143,8 @@ class PackageConverter try unless fs.statSync(sourceSnippets).isDirectory() sourceSnippets = path.join(source, 'Snippets') + catch error + sourceSnippets = path.join(source, 'Snippets') try return unless fs.statSync(sourceSnippets).isDirectory() @@ -188,11 +190,12 @@ class PackageConverter try unless fs.statSync(sourcePreferences).isDirectory() sourcePreferences = path.join(source, 'Preferences') + catch error + sourcePreferences = path.join(source, 'Preferences') try return unless fs.statSync(sourcePreferences).isDirectory() catch error - console.log error return preferencesBySelector = {} @@ -222,6 +225,8 @@ class PackageConverter try unless fs.statSync(sourceSyntaxes).isDirectory() sourceSyntaxes = path.join(source, 'Syntaxes') + catch error + sourceSyntaxes = path.join(source, 'Syntaxes') try return unless fs.statSync(sourceSyntaxes).isDirectory() From 19d54d4920f448df966277a3af9ab712c7715eab Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Wed, 24 Apr 2019 00:14:00 -0400 Subject: [PATCH 18/34] Bam, got it! --- spec/init-spec.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/init-spec.coffee b/spec/init-spec.coffee index ce24623df..ca8402bf7 100644 --- a/spec/init-spec.coffee +++ b/spec/init-spec.coffee @@ -78,7 +78,7 @@ describe "apm init", -> runs -> expect(callback.argsForCall[0][0].length).toBeGreaterThan 0 - fdescribe "when converting a TextMate bundle", -> + describe "when converting a TextMate bundle", -> beforeEach -> callback = jasmine.createSpy('callback') textMateBundlePath = path.join(__dirname, 'fixtures', 'r.tmbundle') From cab9db2722aaf02eebc26d0231d46efd451ac4dc Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Wed, 24 Apr 2019 00:21:10 -0400 Subject: [PATCH 19/34] Silence output --- spec/init-spec.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/init-spec.coffee b/spec/init-spec.coffee index ca8402bf7..02f9ac4d1 100644 --- a/spec/init-spec.coffee +++ b/spec/init-spec.coffee @@ -8,7 +8,7 @@ describe "apm init", -> [packagePath, themePath, languagePath] = [] beforeEach -> - silenceOutput(true) + silenceOutput() spyOnToken() currentDir = temp.mkdirSync('apm-init-') From 88b6c206d0eaac6b9a524a5e902ec5da8aacbfe7 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Wed, 24 Apr 2019 00:51:27 -0400 Subject: [PATCH 20/34] Is it the link specs? --- spec/link-spec.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/link-spec.coffee b/spec/link-spec.coffee index 3b3c46f6c..6009e992f 100644 --- a/spec/link-spec.coffee +++ b/spec/link-spec.coffee @@ -3,7 +3,7 @@ path = require 'path' temp = require 'temp' apm = require '../lib/apm-cli' -describe 'apm link/unlink', -> +fdescribe 'apm link/unlink', -> beforeEach -> silenceOutput() spyOnToken() From e24d0daad61a9ebcfee30a2138ad99f354c90864 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Wed, 24 Apr 2019 00:57:26 -0400 Subject: [PATCH 21/34] Nope - somewhere in install-spec? --- spec/install-spec.coffee | 4 ++-- spec/link-spec.coffee | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/install-spec.coffee b/spec/install-spec.coffee index 44f6527b5..834d0f5e4 100644 --- a/spec/install-spec.coffee +++ b/spec/install-spec.coffee @@ -7,12 +7,12 @@ http = require 'http' apm = require '../lib/apm-cli' Install = require '../lib/install' -describe 'apm install', -> +fdescribe 'apm install', -> [atomHome, resourcePath] = [] beforeEach -> spyOnToken() - silenceOutput() + silenceOutput(true) atomHome = temp.mkdirSync('apm-home-dir-') process.env.ATOM_HOME = atomHome diff --git a/spec/link-spec.coffee b/spec/link-spec.coffee index 6009e992f..3b3c46f6c 100644 --- a/spec/link-spec.coffee +++ b/spec/link-spec.coffee @@ -3,7 +3,7 @@ path = require 'path' temp = require 'temp' apm = require '../lib/apm-cli' -fdescribe 'apm link/unlink', -> +describe 'apm link/unlink', -> beforeEach -> silenceOutput() spyOnToken() From c4664acbfff52106d0ea83e8592e8323f8efa325 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Wed, 24 Apr 2019 01:07:16 -0400 Subject: [PATCH 22/34] Ah, yes --- src/install.coffee | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/install.coffee b/src/install.coffee index 2b3f3c54b..c5d307742 100644 --- a/src/install.coffee +++ b/src/install.coffee @@ -544,20 +544,17 @@ class Install extends Command {name} = data.metadata targetDir = path.join(@atomPackagesDirectory, name) process.stdout.write "Moving #{name} to #{targetDir} " unless options.argv.json - fs.emptyDir targetDir, (err) -> + fs.emptyDir targetDir, (err) => if err next(err) else - next() - - tasks.push (next) => - fs.copy cloneDir, targetDir, (err) => - if err - next(err) - else - @logSuccess() unless options.argv.json - json = {installPath: targetDir, metadata: data.metadata} - next(null, json) + fs.copy cloneDir, targetDir, (err) => + if err + next(err) + else + @logSuccess() unless options.argv.json + json = {installPath: targetDir, metadata: data.metadata} + next(null, json) iteratee = (currentData, task, next) -> task(currentData, next) async.reduce tasks, {}, iteratee, callback From f1330b810c5cf5554a52487da9896f1226cfbc22 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Wed, 24 Apr 2019 22:36:31 -0400 Subject: [PATCH 23/34] Wow it really was just silencing the output --- spec/install-spec.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/install-spec.coffee b/spec/install-spec.coffee index 834d0f5e4..44f6527b5 100644 --- a/spec/install-spec.coffee +++ b/spec/install-spec.coffee @@ -7,12 +7,12 @@ http = require 'http' apm = require '../lib/apm-cli' Install = require '../lib/install' -fdescribe 'apm install', -> +describe 'apm install', -> [atomHome, resourcePath] = [] beforeEach -> spyOnToken() - silenceOutput(true) + silenceOutput() atomHome = temp.mkdirSync('apm-home-dir-') process.env.ATOM_HOME = atomHome From f8604354ab5f004f6aae7338224aa009f03b3276 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Thu, 25 Apr 2019 12:55:20 -0400 Subject: [PATCH 24/34] If statSync triggers an exception, fallback to 32-bit Git --- src/git.coffee | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/git.coffee b/src/git.coffee index ac9be9461..b97a1de98 100644 --- a/src/git.coffee +++ b/src/git.coffee @@ -36,6 +36,9 @@ addGitBashToEnv = (env) -> unless fs.statSync(gitPath).isDirectory() if env['ProgramFiles(x86)'] gitPath = path.join(env['ProgramFiles(x86)'], 'Git') + catch error + if env['ProgramFiles(x86)'] + gitPath = path.join(env['ProgramFiles(x86)'], 'Git') try return unless fs.statSync(gitPath).isDirectory() From 51bc62a078310209f9f227676cbca69ce0da1701 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Thu, 25 Apr 2019 13:20:43 -0400 Subject: [PATCH 25/34] Ensure no behavior changes --- src/link.coffee | 4 ++-- src/links.coffee | 5 +++-- src/list.coffee | 12 +++++++++--- src/rebuild-module-cache.coffee | 10 +++++++--- src/star.coffee | 7 +++++-- src/upgrade.coffee | 9 ++++++--- 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/link.coffee b/src/link.coffee index ca9c98244..d85f4c40b 100644 --- a/src/link.coffee +++ b/src/link.coffee @@ -47,8 +47,8 @@ class Link extends Command return try - if fs.existsSync(targetPath) - fs.unlinkSync(targetPath) if fs.lstatSync(targetPath).isSymbolicLink() + if fs.existsSync(targetPath) and fs.lstatSync(targetPath).isSymbolicLink() + fs.unlinkSync(targetPath) fs.mkdirpSync path.dirname(targetPath) fs.symlinkSync(linkPath, targetPath, 'junction') diff --git a/src/links.coffee b/src/links.coffee index 106c12c3c..d338984fb 100644 --- a/src/links.coffee +++ b/src/links.coffee @@ -36,9 +36,10 @@ class Links extends Command try for directory in fs.readdirSync(directoryPath) symlinkPath = path.join(directoryPath, directory) - symlinks.push(symlinkPath) if fs.lstatSync(symlinkPath).isSymbolicLink() + try + symlinks.push(symlinkPath) if fs.lstatSync(symlinkPath).isSymbolicLink() catch error - # Noop - just fall through and return an empty array + # readdir failed - just fall through and return an empty array symlinks diff --git a/src/list.coffee b/src/list.coffee index 5fb8351ab..770f22e51 100644 --- a/src/list.coffee +++ b/src/list.coffee @@ -86,10 +86,16 @@ class List extends Command packages = [] try for child in fs.readdirSync(directoryPath) - continue unless fs.statSync(path.join(directoryPath, child)).isDirectory() + stats = null + try + stats = fs.lstatSync(path.join(directoryPath, child)) + catch error + continue + + continue unless stats.isDirectory() continue if child.match /^\./ unless options.argv.links - continue if fs.lstatSync(path.join(directoryPath, child)).isSymbolicLink() + continue if stats.isSymbolicLink() manifest = null if manifestPath = CSON.resolve(path.join(directoryPath, child, 'package')) @@ -101,7 +107,7 @@ class List extends Command continue unless @isPackageVisible(options, manifest) packages.push(manifest) catch error - # Noop - just fall through and return an empty array + # readdir failed - just fall through and return an empty array packages diff --git a/src/rebuild-module-cache.coffee b/src/rebuild-module-cache.coffee index 516b77d0c..730914b3e 100644 --- a/src/rebuild-module-cache.coffee +++ b/src/rebuild-module-cache.coffee @@ -54,8 +54,12 @@ class RebuildModuleCache extends Command try for packageName in fs.readdirSync(@atomPackagesDirectory) packageDirectory = path.join(@atomPackagesDirectory, packageName) - return if fs.lstatSync(packageDirectory).isSymbolicLink() - return unless fs.statSync(path.join(packageDirectory, 'package.json')).isFile() + try + continue if fs.lstatSync(packageDirectory).isSymbolicLink() + continue unless fs.statSync(path.join(packageDirectory, 'package.json')).isFile() + catch error + # If either error, we don't want to keep going + continue commands.push (callback) => process.stdout.write "Rebuilding #{packageName} module cache " @@ -66,6 +70,6 @@ class RebuildModuleCache extends Command @logSuccess() callback(error) catch error - # Noop - just fall through and use an empty array for commands + # readdir failed - just fall through and use an empty array for commands async.waterfall(commands, callback) diff --git a/src/star.coffee b/src/star.coffee index f11bfe347..5b2cb8cb4 100644 --- a/src/star.coffee +++ b/src/star.coffee @@ -57,7 +57,10 @@ class Star extends Command installedPackages = [] try for child in fs.readdirSync(userPackagesDirectory) - continue unless fs.statSync(path.join(userPackagesDirectory, child)).isDirectory() + try + continue unless fs.statSync(path.join(userPackagesDirectory, child)).isDirectory() + catch error + continue if manifestPath = CSON.resolve(path.join(userPackagesDirectory, child, 'package')) try @@ -65,7 +68,7 @@ class Star extends Command if metadata.name and Packages.getRepository(metadata) installedPackages.push metadata.name catch error - # Noop - just fall through and use an empty array for installedPackages + # readdir failed - just fall through and use an empty array for installedPackages _.uniq(installedPackages) diff --git a/src/upgrade.coffee b/src/upgrade.coffee index 3a6bcce28..b8db37edb 100644 --- a/src/upgrade.coffee +++ b/src/upgrade.coffee @@ -47,9 +47,12 @@ class Upgrade extends Command getInstalledPackages: (options) -> packages = [] - for name in fs.readdirSync(@atomPackagesDirectory) - if pack = @getIntalledPackage(name) - packages.push(pack) + try + for name in fs.readdirSync(@atomPackagesDirectory) + if pack = @getIntalledPackage(name) + packages.push(pack) + catch error + # readdir failed - just fall through and use an empty array for packages packageNames = @packageNamesFromArgv(options.argv) if packageNames.length > 0 From 207531a6960a2b359f9f6961965d88986573a42b Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Fri, 26 Apr 2019 21:21:45 -0400 Subject: [PATCH 26/34] Wah --- spec/ci-spec.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/ci-spec.coffee b/spec/ci-spec.coffee index 0a5e1fdae..ea47f5c0c 100644 --- a/spec/ci-spec.coffee +++ b/spec/ci-spec.coffee @@ -10,7 +10,7 @@ describe 'apm ci', -> [atomHome, resourcePath, server] = [] beforeEach -> - spyOnToken() + spyOnToken(true) silenceOutput() atomHome = temp.mkdirSync 'apm-home-dir-' @@ -59,7 +59,7 @@ describe 'apm ci', -> server.close -> done = true waitsFor -> done - it 'installs dependency versions as specified by the lockfile', -> + fit 'installs dependency versions as specified by the lockfile', -> moduleDirectory = path.join temp.mkdirSync('apm-test-'), 'test-module-with-lockfile' fs.copySync path.join(__dirname, 'fixtures', 'test-module-with-lockfile'), moduleDirectory process.chdir moduleDirectory From e7c293f263c43592e1cc2b52ebabc9786ac0acbd Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:13:50 -0400 Subject: [PATCH 27/34] Where is this node-gyp?? --- script/postinstall.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/script/postinstall.sh b/script/postinstall.sh index 222a25b4c..325ed873e 100755 --- a/script/postinstall.sh +++ b/script/postinstall.sh @@ -16,3 +16,5 @@ if [ -z "${NO_APM_DEDUPE}" ]; then else echo ">> Deduplication disabled" fi + +./bin/npm ls node-gyp From 1e9ad02fb407dbe515a40b12afe2ea37022fddfd Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:27:19 -0400 Subject: [PATCH 28/34] What about this --- script/postinstall.sh | 2 -- src/ci.coffee | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/script/postinstall.sh b/script/postinstall.sh index 325ed873e..222a25b4c 100755 --- a/script/postinstall.sh +++ b/script/postinstall.sh @@ -16,5 +16,3 @@ if [ -z "${NO_APM_DEDUPE}" ]; then else echo ">> Deduplication disabled" fi - -./bin/npm ls node-gyp diff --git a/src/ci.coffee b/src/ci.coffee index 72a68f8e6..15746b7bf 100644 --- a/src/ci.coffee +++ b/src/ci.coffee @@ -16,7 +16,7 @@ class Ci extends Command @atomDirectory = config.getAtomDirectory() @atomNodeDirectory = path.join(@atomDirectory, '.node-gyp') @atomNpmPath = require.resolve('npm/bin/npm-cli') - @atomNodeGypPath = process.env.ATOM_NODE_GYP_PATH or require.resolve('npm/node_modules/node-gyp/bin/node-gyp') + @atomNodeGypPath = process.env.ATOM_NODE_GYP_PATH or require.resolve('node-gyp', {paths: require.resolve('npm')}) parseOptions: (argv) -> options = yargs(argv).wrap(100) From 675734c975fcd65f6a624015e695afafdd99c1e9 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:35:38 -0400 Subject: [PATCH 29/34] Verbose it --- src/ci.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ci.coffee b/src/ci.coffee index 15746b7bf..792907488 100644 --- a/src/ci.coffee +++ b/src/ci.coffee @@ -32,7 +32,7 @@ class Ci extends Command """ options.alias('h', 'help').describe('help', 'Print this usage message') - options.boolean('verbose').default('verbose', false).describe('verbose', 'Show verbose debug information') + options.boolean('verbose').default('verbose', true).describe('verbose', 'Show verbose debug information') installDependencies: (options, callback) => async.waterfall [ From 3e1d4ee25563c5664bb486cae289d6feb1de2c2d Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:43:52 -0400 Subject: [PATCH 30/34] Wrong function... --- spec/ci-spec.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/ci-spec.coffee b/spec/ci-spec.coffee index ea47f5c0c..62577fc84 100644 --- a/spec/ci-spec.coffee +++ b/spec/ci-spec.coffee @@ -10,8 +10,8 @@ describe 'apm ci', -> [atomHome, resourcePath, server] = [] beforeEach -> - spyOnToken(true) - silenceOutput() + spyOnToken() + silenceOutput(true) atomHome = temp.mkdirSync 'apm-home-dir-' process.env.ATOM_HOME = atomHome From 81547a9ea94da42a50edbbfffa12dfbc3ec6ae9e Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:57:06 -0400 Subject: [PATCH 31/34] Fix the bundle issues??? --- package-lock.json | 1271 ++++++++++++++++----------------------------- 1 file changed, 435 insertions(+), 836 deletions(-) diff --git a/package-lock.json b/package-lock.json index 20a58fcc9..fad56337e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -729,9 +729,9 @@ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" }, "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, "concat-map": { @@ -1426,9 +1426,9 @@ } }, "fined": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.1.tgz", - "integrity": "sha512-jQp949ZmEbiYHk3gkbdtpJ0G1+kgtLQBNdP5edFP7Fh+WAYceLQz6yO1SBj72Xkg8GVyTB3bBzAYrHJVh5Xd5g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "dev": true, "requires": { "expand-tilde": "^2.0.2", @@ -2085,9 +2085,9 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", "dev": true }, "is-absolute": { @@ -2389,19 +2389,12 @@ } }, "keytar": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/keytar/-/keytar-4.4.1.tgz", - "integrity": "sha512-6xEe7ybXSR5EZC+z0GI2yqLYZjV1tyPQY2xSZ8rGsBxrrLEh8VR/Lfqv59uGX+I+W+OZxH0jCXN1dU1++ify4g==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-4.6.0.tgz", + "integrity": "sha512-8wWWTC62QHvUvgW/QYyJv7X0GFZfp2Ykr5n3PuXKADro0Sv2RKvuYxbkzoZvsw33EDNAKnUTSA0/KLGN/MbwDw==", "requires": { - "nan": "2.12.1", - "prebuild-install": "5.2.4" - }, - "dependencies": { - "nan": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", - "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==" - } + "nan": "2.13.2", + "prebuild-install": "5.3.0" } }, "kind-of": { @@ -2601,16 +2594,16 @@ "dev": true }, "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" }, "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "requires": { - "mime-db": "~1.38.0" + "mime-db": "1.40.0" } }, "mimic-response": { @@ -2746,9 +2739,9 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" }, "node-abi": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.7.1.tgz", - "integrity": "sha512-OV8Bq1OrPh6z+Y4dqwo05HqrRL9YNF7QVMRfq1/pguwKLG+q9UB/Lk0x5qXjO23JjJg+/jqCHSTaG1P3tfKfuw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.8.0.tgz", + "integrity": "sha512-1/aa2clS0pue0HjckL62CsbhWWU35HARvBDXcJtYKbYR7LnIutmpxmXbuDMV9kEviD2lP/wACOgWmmwljghHyQ==", "requires": { "semver": "^5.4.1" } @@ -2904,8 +2897,7 @@ "dependencies": { "JSONStream": { "version": "1.3.3", - "resolved": false, - "integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==", + "bundled": true, "requires": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -2913,70 +2905,59 @@ }, "abbrev": { "version": "1.1.1", - "resolved": false, - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "bundled": true }, "agent-base": { "version": "4.2.0", - "resolved": false, - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", + "bundled": true, "requires": { "es6-promisify": "^5.0.0" } }, "agentkeepalive": { "version": "3.4.1", - "resolved": false, - "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", + "bundled": true, "requires": { "humanize-ms": "^1.2.1" } }, "ansi-align": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "bundled": true, "requires": { "string-width": "^2.0.0" } }, "ansi-regex": { "version": "2.1.1", - "resolved": false, - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "ansi-styles": { "version": "3.2.1", - "resolved": false, - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "bundled": true, "requires": { "color-convert": "^1.9.0" } }, "ansicolors": { "version": "0.3.2", - "resolved": false, - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" + "bundled": true }, "ansistyles": { "version": "0.1.3", - "resolved": false, - "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=" + "bundled": true }, "aproba": { "version": "1.2.0", - "resolved": false, - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "bundled": true }, "archy": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + "bundled": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": false, - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -2984,43 +2965,35 @@ }, "asap": { "version": "2.0.6", - "resolved": false, - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "bundled": true }, "asn1": { "version": "0.2.3", - "resolved": false, - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "bundled": true }, "assert-plus": { "version": "0.2.0", - "resolved": false, - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + "bundled": true }, "asynckit": { "version": "0.4.0", - "resolved": false, - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "bundled": true }, "aws-sign2": { "version": "0.6.0", - "resolved": false, - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + "bundled": true }, "aws4": { "version": "1.7.0", - "resolved": false, - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" + "bundled": true }, "balanced-match": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "bundled": true }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "bundled": true, "optional": true, "requires": { "tweetnacl": "^0.14.3" @@ -3028,8 +3001,7 @@ }, "bin-links": { "version": "1.1.2", - "resolved": false, - "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", + "bundled": true, "requires": { "bluebird": "^3.5.0", "cmd-shim": "^2.0.2", @@ -3040,29 +3012,25 @@ }, "block-stream": { "version": "0.0.9", - "resolved": false, - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "requires": { "inherits": "~2.0.0" } }, "bluebird": { "version": "3.5.1", - "resolved": false, - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + "bundled": true }, "boom": { "version": "2.10.1", - "resolved": false, - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "bundled": true, "requires": { "hoek": "2.x.x" } }, "boxen": { "version": "1.3.0", - "resolved": false, - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "bundled": true, "requires": { "ansi-align": "^2.0.0", "camelcase": "^4.0.0", @@ -3075,8 +3043,7 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": false, - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3084,33 +3051,27 @@ }, "buffer-from": { "version": "1.0.0", - "resolved": false, - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" + "bundled": true }, "builtin-modules": { "version": "1.1.1", - "resolved": false, - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "bundled": true }, "builtins": { "version": "1.0.3", - "resolved": false, - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + "bundled": true }, "byline": { "version": "5.0.0", - "resolved": false, - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=" + "bundled": true }, "byte-size": { "version": "4.0.3", - "resolved": false, - "integrity": "sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==" + "bundled": true }, "cacache": { "version": "11.0.2", - "resolved": false, - "integrity": "sha512-hMiz7LN4w8sdfmKsvNs80ao/vf2JCGWWdpu95JyY90AJZRbZJmgE71dCefRiNf8OCqiZQDcUBfYiLlUNu4/j5A==", + "bundled": true, "requires": { "bluebird": "^3.5.1", "chownr": "^1.0.1", @@ -3130,28 +3091,23 @@ }, "call-limit": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=" + "bundled": true }, "camelcase": { "version": "4.1.0", - "resolved": false, - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "bundled": true }, "capture-stack-trace": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" + "bundled": true }, "caseless": { "version": "0.12.0", - "resolved": false, - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "bundled": true }, "chalk": { "version": "2.4.1", - "resolved": false, - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "bundled": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -3160,31 +3116,26 @@ }, "chownr": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + "bundled": true }, "ci-info": { "version": "1.1.3", - "resolved": false, - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==" + "bundled": true }, "cidr-regex": { "version": "2.0.9", - "resolved": false, - "integrity": "sha512-F7/fBRUU45FnvSPjXdpIrc++WRSBdCiSTlyq4ZNhLKOlHFNWgtzZ0Fd+zrqI/J1j0wmlx/f5ZQDmD2GcbrNcmw==", + "bundled": true, "requires": { "ip-regex": "^2.1.0" } }, "cli-boxes": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + "bundled": true }, "cli-columns": { "version": "3.1.2", - "resolved": false, - "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", + "bundled": true, "requires": { "string-width": "^2.0.0", "strip-ansi": "^3.0.1" @@ -3192,8 +3143,7 @@ }, "cli-table3": { "version": "0.5.0", - "resolved": false, - "integrity": "sha512-c7YHpUyO1SaKaO7kYtxd5NZ8FjAmSK3LpKkuzdwn+2CwpFxBpdoQLm+OAnnCfoEl7onKhN9PKQi1lsHuAIUqGQ==", + "bundled": true, "requires": { "colors": "^1.1.2", "object-assign": "^4.1.0", @@ -3202,8 +3152,7 @@ }, "cliui": { "version": "4.1.0", - "resolved": false, - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "bundled": true, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -3212,13 +3161,11 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true }, "strip-ansi": { "version": "4.0.0", - "resolved": false, - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "requires": { "ansi-regex": "^3.0.0" } @@ -3227,13 +3174,11 @@ }, "clone": { "version": "1.0.4", - "resolved": false, - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "bundled": true }, "cmd-shim": { "version": "2.0.2", - "resolved": false, - "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", + "bundled": true, "requires": { "graceful-fs": "^4.1.2", "mkdirp": "~0.5.0" @@ -3241,37 +3186,31 @@ }, "co": { "version": "4.6.0", - "resolved": false, - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "bundled": true }, "code-point-at": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "color-convert": { "version": "1.9.1", - "resolved": false, - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "bundled": true, "requires": { "color-name": "^1.1.1" } }, "color-name": { "version": "1.1.3", - "resolved": false, - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "bundled": true }, "colors": { "version": "1.3.0", - "resolved": false, - "integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==", + "bundled": true, "optional": true }, "columnify": { "version": "1.5.4", - "resolved": false, - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "bundled": true, "requires": { "strip-ansi": "^3.0.0", "wcwidth": "^1.0.0" @@ -3279,21 +3218,18 @@ }, "combined-stream": { "version": "1.0.6", - "resolved": false, - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "bundled": true, "requires": { "delayed-stream": "~1.0.0" } }, "concat-map": { "version": "0.0.1", - "resolved": false, - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "concat-stream": { "version": "1.6.2", - "resolved": false, - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "bundled": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -3303,8 +3239,7 @@ }, "config-chain": { "version": "1.1.11", - "resolved": false, - "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", + "bundled": true, "requires": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -3312,8 +3247,7 @@ }, "configstore": { "version": "3.1.2", - "resolved": false, - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "bundled": true, "requires": { "dot-prop": "^4.1.0", "graceful-fs": "^4.1.2", @@ -3325,13 +3259,11 @@ }, "console-control-strings": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "bundled": true }, "copy-concurrently": { "version": "1.0.5", - "resolved": false, - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "bundled": true, "requires": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -3343,28 +3275,24 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": false, - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + "bundled": true } } }, "core-util-is": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "bundled": true }, "create-error-class": { "version": "3.0.2", - "resolved": false, - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "bundled": true, "requires": { "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { "version": "5.1.0", - "resolved": false, - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", @@ -3373,104 +3301,87 @@ }, "cryptiles": { "version": "2.0.5", - "resolved": false, - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "bundled": true, "requires": { "boom": "2.x.x" } }, "crypto-random-string": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + "bundled": true }, "cyclist": { "version": "0.2.2", - "resolved": false, - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" + "bundled": true }, "dashdash": { "version": "1.14.1", - "resolved": false, - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "requires": { "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "bundled": true } } }, "debug": { "version": "3.1.0", - "resolved": false, - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "requires": { "ms": "2.0.0" }, "dependencies": { "ms": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "bundled": true } } }, "debuglog": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=" + "bundled": true }, "decamelize": { "version": "1.2.0", - "resolved": false, - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "bundled": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": false, - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "bundled": true }, "deep-extend": { "version": "0.5.1", - "resolved": false, - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" + "bundled": true }, "defaults": { "version": "1.0.3", - "resolved": false, - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "bundled": true, "requires": { "clone": "^1.0.2" } }, "delayed-stream": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "bundled": true }, "delegates": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "bundled": true }, "detect-indent": { "version": "5.0.0", - "resolved": false, - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=" + "bundled": true }, "detect-newline": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" + "bundled": true }, "dezalgo": { "version": "1.0.3", - "resolved": false, - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "bundled": true, "requires": { "asap": "^2.0.0", "wrappy": "1" @@ -3478,26 +3389,22 @@ }, "dot-prop": { "version": "4.2.0", - "resolved": false, - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "bundled": true, "requires": { "is-obj": "^1.0.0" } }, "dotenv": { "version": "5.0.1", - "resolved": false, - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==" + "bundled": true }, "duplexer3": { "version": "0.1.4", - "resolved": false, - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "bundled": true }, "duplexify": { "version": "3.6.0", - "resolved": false, - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "bundled": true, "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -3507,8 +3414,7 @@ }, "ecc-jsbn": { "version": "0.1.1", - "resolved": false, - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "bundled": true, "optional": true, "requires": { "jsbn": "~0.1.0" @@ -3516,60 +3422,51 @@ }, "editor": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=" + "bundled": true }, "encoding": { "version": "0.1.12", - "resolved": false, - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "bundled": true, "requires": { "iconv-lite": "~0.4.13" } }, "end-of-stream": { "version": "1.4.1", - "resolved": false, - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "bundled": true, "requires": { "once": "^1.4.0" } }, "err-code": { "version": "1.1.2", - "resolved": false, - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" + "bundled": true }, "errno": { "version": "0.1.7", - "resolved": false, - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "bundled": true, "requires": { "prr": "~1.0.1" } }, "es6-promise": { "version": "4.2.4", - "resolved": false, - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" + "bundled": true }, "es6-promisify": { "version": "5.0.0", - "resolved": false, - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "bundled": true, "requires": { "es6-promise": "^4.0.3" } }, "escape-string-regexp": { "version": "1.0.5", - "resolved": false, - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "bundled": true }, "execa": { "version": "0.7.0", - "resolved": false, - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", @@ -3582,36 +3479,30 @@ }, "extend": { "version": "3.0.1", - "resolved": false, - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "bundled": true }, "extsprintf": { "version": "1.3.0", - "resolved": false, - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "bundled": true }, "figgy-pudding": { "version": "3.1.0", - "resolved": false, - "integrity": "sha512-Gi2vIue0ec6P/7LNpueGhLuvfF2ztuterl8YFBQn1yKgIS46noGxCbi+vviPdObNYtgUSh5FpHy5q0Cw9XhxKQ==" + "bundled": true }, "find-npm-prefix": { "version": "1.0.2", - "resolved": false, - "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==" + "bundled": true }, "find-up": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "requires": { "locate-path": "^2.0.0" } }, "flush-write-stream": { "version": "1.0.3", - "resolved": false, - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "bundled": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.4" @@ -3619,13 +3510,11 @@ }, "forever-agent": { "version": "0.6.1", - "resolved": false, - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "bundled": true }, "form-data": { "version": "2.1.4", - "resolved": false, - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "bundled": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.5", @@ -3634,8 +3523,7 @@ }, "from2": { "version": "2.3.0", - "resolved": false, - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "bundled": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -3643,16 +3531,14 @@ }, "fs-minipass": { "version": "1.2.5", - "resolved": false, - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "bundled": true, "requires": { "minipass": "^2.2.1" } }, "fs-vacuum": { "version": "1.2.10", - "resolved": false, - "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", + "bundled": true, "requires": { "graceful-fs": "^4.1.2", "path-is-inside": "^1.0.1", @@ -3661,8 +3547,7 @@ }, "fs-write-stream-atomic": { "version": "1.0.10", - "resolved": false, - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "bundled": true, "requires": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", @@ -3672,20 +3557,17 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": false, - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + "bundled": true } } }, "fs.realpath": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true }, "fstream": { "version": "1.0.11", - "resolved": false, - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -3695,8 +3577,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": false, - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -3710,8 +3591,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3722,13 +3602,11 @@ }, "genfun": { "version": "4.0.1", - "resolved": false, - "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=" + "bundled": true }, "gentle-fs": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", + "bundled": true, "requires": { "aproba": "^1.1.2", "fs-vacuum": "^1.2.10", @@ -3742,40 +3620,34 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": false, - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + "bundled": true } } }, "get-caller-file": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + "bundled": true }, "get-stream": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "bundled": true }, "getpass": { "version": "0.1.7", - "resolved": false, - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "requires": { "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "bundled": true } } }, "glob": { "version": "7.1.2", - "resolved": false, - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3787,16 +3659,14 @@ }, "global-dirs": { "version": "0.1.1", - "resolved": false, - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "bundled": true, "requires": { "ini": "^1.3.4" } }, "got": { "version": "6.7.1", - "resolved": false, - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "bundled": true, "requires": { "create-error-class": "^3.0.0", "duplexer3": "^0.1.4", @@ -3813,18 +3683,15 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": false, - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true }, "har-schema": { "version": "1.0.5", - "resolved": false, - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + "bundled": true }, "har-validator": { "version": "4.2.1", - "resolved": false, - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "bundled": true, "requires": { "ajv": "^4.9.1", "har-schema": "^1.0.5" @@ -3832,8 +3699,7 @@ "dependencies": { "ajv": { "version": "4.11.8", - "resolved": false, - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "bundled": true, "requires": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" @@ -3843,18 +3709,15 @@ }, "has-flag": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "bundled": true }, "has-unicode": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "bundled": true }, "hawk": { "version": "3.1.3", - "resolved": false, - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "bundled": true, "requires": { "boom": "2.x.x", "cryptiles": "2.x.x", @@ -3864,23 +3727,19 @@ }, "hoek": { "version": "2.16.3", - "resolved": false, - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "bundled": true }, "hosted-git-info": { "version": "2.6.0", - "resolved": false, - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" + "bundled": true }, "http-cache-semantics": { "version": "3.8.1", - "resolved": false, - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + "bundled": true }, "http-proxy-agent": { "version": "2.1.0", - "resolved": false, - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "bundled": true, "requires": { "agent-base": "4", "debug": "3.1.0" @@ -3888,8 +3747,7 @@ }, "http-signature": { "version": "1.1.1", - "resolved": false, - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "bundled": true, "requires": { "assert-plus": "^0.2.0", "jsprim": "^1.2.2", @@ -3898,8 +3756,7 @@ }, "https-proxy-agent": { "version": "2.2.1", - "resolved": false, - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "bundled": true, "requires": { "agent-base": "^4.1.0", "debug": "^3.1.0" @@ -3907,47 +3764,40 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": false, - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "bundled": true, "requires": { "ms": "^2.0.0" } }, "iconv-lite": { "version": "0.4.23", - "resolved": false, - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "bundled": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "iferr": { "version": "1.0.0", - "resolved": false, - "integrity": "sha512-0+ecqiP/cxgnNBIPi+TgJlaxE7sFp2N3kBFg17klQUdf24YKiaEV6b9QgEqOlD5vCVCE0U7OV9lPSN2OfS4zoQ==" + "bundled": true }, "ignore-walk": { "version": "3.0.1", - "resolved": false, - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "bundled": true, "requires": { "minimatch": "^3.0.4" } }, "import-lazy": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + "bundled": true }, "imurmurhash": { "version": "0.1.4", - "resolved": false, - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "bundled": true }, "inflight": { "version": "1.0.6", - "resolved": false, - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -3955,18 +3805,15 @@ }, "inherits": { "version": "2.0.3", - "resolved": false, - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "ini": { "version": "1.3.5", - "resolved": false, - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "bundled": true }, "init-package-json": { "version": "1.10.3", - "resolved": false, - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "bundled": true, "requires": { "glob": "^7.1.1", "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", @@ -3980,55 +3827,47 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "bundled": true }, "ip": { "version": "1.1.5", - "resolved": false, - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "bundled": true }, "ip-regex": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + "bundled": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "requires": { "builtin-modules": "^1.0.0" } }, "is-ci": { "version": "1.1.0", - "resolved": false, - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "bundled": true, "requires": { "ci-info": "^1.0.0" } }, "is-cidr": { "version": "2.0.6", - "resolved": false, - "integrity": "sha512-A578p1dV22TgPXn6NCaDAPj6vJvYsBgAzUrAd28a4oldeXJjWqEUuSZOLIW3im51mazOKsoyVp8NU/OItlWacw==", + "bundled": true, "requires": { "cidr-regex": "^2.0.8" } }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { "number-is-nan": "^1.0.0" } }, "is-installed-globally": { "version": "0.1.0", - "resolved": false, - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "bundled": true, "requires": { "global-dirs": "^0.1.0", "is-path-inside": "^1.0.0" @@ -4036,100 +3875,82 @@ }, "is-npm": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" + "bundled": true }, "is-obj": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "bundled": true }, "is-path-inside": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "bundled": true, "requires": { "path-is-inside": "^1.0.1" } }, "is-redirect": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + "bundled": true }, "is-retry-allowed": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + "bundled": true }, "is-stream": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "bundled": true }, "is-typedarray": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "bundled": true }, "isarray": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true }, "isexe": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "bundled": true }, "isstream": { "version": "0.1.2", - "resolved": false, - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "bundled": true }, "jsbn": { "version": "0.1.1", - "resolved": false, - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "optional": true }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": false, - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "bundled": true }, "json-schema": { "version": "0.2.3", - "resolved": false, - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "bundled": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "bundled": true, "requires": { "jsonify": "~0.0.0" } }, "json-stringify-safe": { "version": "5.0.1", - "resolved": false, - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "bundled": true }, "jsonify": { "version": "0.0.0", - "resolved": false, - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + "bundled": true }, "jsonparse": { "version": "1.3.1", - "resolved": false, - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + "bundled": true }, "jsprim": { "version": "1.4.1", - "resolved": false, - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "bundled": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -4139,36 +3960,31 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "bundled": true } } }, "latest-version": { "version": "3.1.0", - "resolved": false, - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "bundled": true, "requires": { "package-json": "^4.0.0" } }, "lazy-property": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=" + "bundled": true }, "lcid": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "requires": { "invert-kv": "^1.0.0" } }, "libcipm": { "version": "2.0.0", - "resolved": false, - "integrity": "sha512-yTWR7Ch7Mg891KZj+1yhcWhztO6tuAcBLdmCvBXv2pbCzV5/DOEDjDQdZmmYn5mFwI96kOSu+OIMRTmLsxrNZw==", + "bundled": true, "requires": { "bin-links": "^1.1.2", "bluebird": "^3.5.1", @@ -4187,8 +4003,7 @@ }, "libnpmhook": { "version": "4.0.1", - "resolved": false, - "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", + "bundled": true, "requires": { "figgy-pudding": "^3.1.0", "npm-registry-fetch": "^3.0.0" @@ -4196,8 +4011,7 @@ "dependencies": { "npm-registry-fetch": { "version": "3.1.1", - "resolved": false, - "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", + "bundled": true, "requires": { "bluebird": "^3.5.1", "figgy-pudding": "^3.1.0", @@ -4210,8 +4024,7 @@ }, "libnpx": { "version": "10.2.0", - "resolved": false, - "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", + "bundled": true, "requires": { "dotenv": "^5.0.1", "npm-package-arg": "^6.0.0", @@ -4225,8 +4038,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -4234,8 +4046,7 @@ }, "lock-verify": { "version": "2.0.2", - "resolved": false, - "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", + "bundled": true, "requires": { "npm-package-arg": "^5.1.2 || 6", "semver": "^5.4.1" @@ -4243,21 +4054,18 @@ }, "lockfile": { "version": "1.0.4", - "resolved": false, - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", + "bundled": true, "requires": { "signal-exit": "^3.0.2" } }, "lodash._baseindexof": { "version": "3.1.0", - "resolved": false, - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=" + "bundled": true }, "lodash._baseuniq": { "version": "4.6.0", - "resolved": false, - "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", + "bundled": true, "requires": { "lodash._createset": "~4.0.0", "lodash._root": "~3.0.0" @@ -4265,71 +4073,58 @@ }, "lodash._bindcallback": { "version": "3.0.1", - "resolved": false, - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" + "bundled": true }, "lodash._cacheindexof": { "version": "3.0.2", - "resolved": false, - "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=" + "bundled": true }, "lodash._createcache": { "version": "3.1.2", - "resolved": false, - "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", + "bundled": true, "requires": { "lodash._getnative": "^3.0.0" } }, "lodash._createset": { "version": "4.0.3", - "resolved": false, - "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=" + "bundled": true }, "lodash._getnative": { "version": "3.9.1", - "resolved": false, - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" + "bundled": true }, "lodash._root": { "version": "3.0.1", - "resolved": false, - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" + "bundled": true }, "lodash.clonedeep": { "version": "4.5.0", - "resolved": false, - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + "bundled": true }, "lodash.restparam": { "version": "3.6.1", - "resolved": false, - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" + "bundled": true }, "lodash.union": { "version": "4.6.0", - "resolved": false, - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" + "bundled": true }, "lodash.uniq": { "version": "4.5.0", - "resolved": false, - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + "bundled": true }, "lodash.without": { "version": "4.4.0", - "resolved": false, - "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=" + "bundled": true }, "lowercase-keys": { "version": "1.0.1", - "resolved": false, - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "bundled": true }, "lru-cache": { "version": "4.1.3", - "resolved": false, - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -4337,16 +4132,14 @@ }, "make-dir": { "version": "1.3.0", - "resolved": false, - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "bundled": true, "requires": { "pify": "^3.0.0" } }, "make-fetch-happen": { "version": "4.0.1", - "resolved": false, - "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", + "bundled": true, "requires": { "agentkeepalive": "^3.4.1", "cacache": "^11.0.1", @@ -4363,52 +4156,44 @@ }, "meant": { "version": "1.0.1", - "resolved": false, - "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==" + "bundled": true }, "mem": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "requires": { "mimic-fn": "^1.0.0" } }, "mime-db": { "version": "1.33.0", - "resolved": false, - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + "bundled": true }, "mime-types": { "version": "2.1.18", - "resolved": false, - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "bundled": true, "requires": { "mime-db": "~1.33.0" } }, "mimic-fn": { "version": "1.2.0", - "resolved": false, - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "bundled": true }, "minimatch": { "version": "3.0.4", - "resolved": false, - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": false, - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true }, "minipass": { "version": "2.3.3", - "resolved": false, - "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", + "bundled": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4416,23 +4201,20 @@ "dependencies": { "yallist": { "version": "3.0.2", - "resolved": false, - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + "bundled": true } } }, "minizlib": { "version": "1.1.0", - "resolved": false, - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "bundled": true, "requires": { "minipass": "^2.2.1" } }, "mississippi": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "bundled": true, "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -4448,16 +4230,14 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": false, - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" } }, "move-concurrently": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "bundled": true, "requires": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", @@ -4469,18 +4249,15 @@ }, "ms": { "version": "2.1.1", - "resolved": false, - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "bundled": true }, "mute-stream": { "version": "0.0.7", - "resolved": false, - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + "bundled": true }, "node-fetch-npm": { "version": "2.0.2", - "resolved": false, - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "bundled": true, "requires": { "encoding": "^0.1.11", "json-parse-better-errors": "^1.0.0", @@ -4489,8 +4266,7 @@ }, "node-gyp": { "version": "3.7.0", - "resolved": false, - "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", + "bundled": true, "requires": { "fstream": "^1.0.0", "glob": "^7.0.3", @@ -4508,21 +4284,18 @@ "dependencies": { "nopt": { "version": "3.0.6", - "resolved": false, - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "bundled": true, "requires": { "abbrev": "1" } }, "semver": { "version": "5.3.0", - "resolved": false, - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + "bundled": true }, "tar": { "version": "2.2.1", - "resolved": false, - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "requires": { "block-stream": "*", "fstream": "^1.0.2", @@ -4533,8 +4306,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": false, - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -4542,8 +4314,7 @@ }, "normalize-package-data": { "version": "2.4.0", - "resolved": false, - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "bundled": true, "requires": { "hosted-git-info": "^2.1.4", "is-builtin-module": "^1.0.0", @@ -4553,8 +4324,7 @@ }, "npm-audit-report": { "version": "1.3.1", - "resolved": false, - "integrity": "sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==", + "bundled": true, "requires": { "cli-table3": "^0.5.0", "console-control-strings": "^1.1.0" @@ -4562,26 +4332,22 @@ }, "npm-bundled": { "version": "1.0.3", - "resolved": false, - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==" + "bundled": true }, "npm-cache-filename": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=" + "bundled": true }, "npm-install-checks": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", + "bundled": true, "requires": { "semver": "^2.3.0 || 3.x || 4 || 5" } }, "npm-lifecycle": { "version": "2.0.3", - "resolved": false, - "integrity": "sha512-0U4Iim5ix2NHUT672G7FBpldJX0N2xKBjJqRTAzioEJjb6I6KpQXq+y1sB5EDSjKaAX8VCC9qPK31Jy+p3ix5A==", + "bundled": true, "requires": { "byline": "^5.0.0", "graceful-fs": "^4.1.11", @@ -4595,13 +4361,11 @@ }, "npm-logical-tree": { "version": "1.2.1", - "resolved": false, - "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==" + "bundled": true }, "npm-package-arg": { "version": "6.1.0", - "resolved": false, - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "bundled": true, "requires": { "hosted-git-info": "^2.6.0", "osenv": "^0.1.5", @@ -4611,8 +4375,7 @@ }, "npm-packlist": { "version": "1.1.10", - "resolved": false, - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", + "bundled": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -4620,8 +4383,7 @@ }, "npm-pick-manifest": { "version": "2.1.0", - "resolved": false, - "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", + "bundled": true, "requires": { "npm-package-arg": "^6.0.0", "semver": "^5.4.1" @@ -4629,8 +4391,7 @@ }, "npm-profile": { "version": "3.0.2", - "resolved": false, - "integrity": "sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==", + "bundled": true, "requires": { "aproba": "^1.1.2 || 2", "make-fetch-happen": "^2.5.0 || 3 || 4" @@ -4638,8 +4399,7 @@ }, "npm-registry-client": { "version": "8.5.1", - "resolved": false, - "integrity": "sha512-7rjGF2eA7hKDidGyEWmHTiKfXkbrcQAsGL/Rh4Rt3x3YNRNHhwaTzVJfW3aNvvlhg4G62VCluif0sLCb/i51Hg==", + "bundled": true, "requires": { "concat-stream": "^1.5.2", "graceful-fs": "^4.1.6", @@ -4657,13 +4417,11 @@ "dependencies": { "retry": { "version": "0.10.1", - "resolved": false, - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + "bundled": true }, "ssri": { "version": "5.3.0", - "resolved": false, - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "bundled": true, "requires": { "safe-buffer": "^5.1.1" } @@ -4672,8 +4430,7 @@ }, "npm-registry-fetch": { "version": "1.1.0", - "resolved": false, - "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", + "bundled": true, "requires": { "bluebird": "^3.5.1", "figgy-pudding": "^2.0.1", @@ -4685,8 +4442,7 @@ "dependencies": { "cacache": { "version": "10.0.4", - "resolved": false, - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "bundled": true, "requires": { "bluebird": "^3.5.1", "chownr": "^1.0.1", @@ -4705,8 +4461,7 @@ "dependencies": { "mississippi": { "version": "2.0.0", - "resolved": false, - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "bundled": true, "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -4724,13 +4479,11 @@ }, "figgy-pudding": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==" + "bundled": true }, "make-fetch-happen": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", + "bundled": true, "requires": { "agentkeepalive": "^3.4.1", "cacache": "^10.0.4", @@ -4747,8 +4500,7 @@ }, "pump": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "bundled": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -4756,13 +4508,11 @@ }, "smart-buffer": { "version": "1.1.15", - "resolved": false, - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" + "bundled": true }, "socks": { "version": "1.1.10", - "resolved": false, - "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", + "bundled": true, "requires": { "ip": "^1.1.4", "smart-buffer": "^1.0.13" @@ -4770,8 +4520,7 @@ }, "socks-proxy-agent": { "version": "3.0.1", - "resolved": false, - "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", + "bundled": true, "requires": { "agent-base": "^4.1.0", "socks": "^1.1.10" @@ -4779,8 +4528,7 @@ }, "ssri": { "version": "5.3.0", - "resolved": false, - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "bundled": true, "requires": { "safe-buffer": "^5.1.1" } @@ -4789,21 +4537,18 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": false, - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "requires": { "path-key": "^2.0.0" } }, "npm-user-validate": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=" + "bundled": true }, "npmlog": { "version": "4.1.2", - "resolved": false, - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "bundled": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -4813,41 +4558,34 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "oauth-sign": { "version": "0.8.2", - "resolved": false, - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "bundled": true }, "object-assign": { "version": "4.1.1", - "resolved": false, - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "bundled": true }, "once": { "version": "1.4.0", - "resolved": false, - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { "wrappy": "1" } }, "opener": { "version": "1.4.3", - "resolved": false, - "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=" + "bundled": true }, "os-homedir": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "bundled": true }, "os-locale": { "version": "2.1.0", - "resolved": false, - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "requires": { "execa": "^0.7.0", "lcid": "^1.0.0", @@ -4856,13 +4594,11 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "bundled": true }, "osenv": { "version": "0.1.5", - "resolved": false, - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "bundled": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -4870,34 +4606,29 @@ }, "p-finally": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "bundled": true }, "p-limit": { "version": "1.2.0", - "resolved": false, - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, "requires": { "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "requires": { "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "bundled": true }, "package-json": { "version": "4.0.1", - "resolved": false, - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "bundled": true, "requires": { "got": "^6.7.1", "registry-auth-token": "^3.0.1", @@ -4907,8 +4638,7 @@ }, "pacote": { "version": "8.1.6", - "resolved": false, - "integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==", + "bundled": true, "requires": { "bluebird": "^3.5.1", "cacache": "^11.0.2", @@ -4939,8 +4669,7 @@ }, "parallel-transform": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "bundled": true, "requires": { "cyclist": "~0.2.2", "inherits": "^2.0.3", @@ -4949,53 +4678,43 @@ }, "path-exists": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "bundled": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "bundled": true }, "path-is-inside": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + "bundled": true }, "path-key": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "bundled": true }, "performance-now": { "version": "0.2.0", - "resolved": false, - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + "bundled": true }, "pify": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "bundled": true }, "prepend-http": { "version": "1.0.4", - "resolved": false, - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + "bundled": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": false, - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + "bundled": true }, "promise-inflight": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "bundled": true }, "promise-retry": { "version": "1.1.1", - "resolved": false, - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "bundled": true, "requires": { "err-code": "^1.0.0", "retry": "^0.10.0" @@ -5003,46 +4722,39 @@ "dependencies": { "retry": { "version": "0.10.1", - "resolved": false, - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + "bundled": true } } }, "promzard": { "version": "0.3.0", - "resolved": false, - "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", + "bundled": true, "requires": { "read": "1" } }, "proto-list": { "version": "1.2.4", - "resolved": false, - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + "bundled": true }, "protoduck": { "version": "5.0.0", - "resolved": false, - "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", + "bundled": true, "requires": { "genfun": "^4.0.1" } }, "prr": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + "bundled": true }, "pseudomap": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "bundled": true }, "pump": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "bundled": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -5050,8 +4762,7 @@ }, "pumpify": { "version": "1.5.1", - "resolved": false, - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "bundled": true, "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -5060,8 +4771,7 @@ "dependencies": { "pump": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "bundled": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -5071,23 +4781,19 @@ }, "punycode": { "version": "1.4.1", - "resolved": false, - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "bundled": true }, "qrcode-terminal": { "version": "0.12.0", - "resolved": false, - "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==" + "bundled": true }, "qs": { "version": "6.4.0", - "resolved": false, - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + "bundled": true }, "query-string": { "version": "6.1.0", - "resolved": false, - "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", + "bundled": true, "requires": { "decode-uri-component": "^0.2.0", "strict-uri-encode": "^2.0.0" @@ -5095,13 +4801,11 @@ }, "qw": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=" + "bundled": true }, "rc": { "version": "1.2.7", - "resolved": false, - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "bundled": true, "requires": { "deep-extend": "^0.5.1", "ini": "~1.3.0", @@ -5111,31 +4815,27 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": false, - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "bundled": true } } }, "read": { "version": "1.0.7", - "resolved": false, - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "bundled": true, "requires": { "mute-stream": "~0.0.4" } }, "read-cmd-shim": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", + "bundled": true, "requires": { "graceful-fs": "^4.1.2" } }, "read-installed": { "version": "4.0.3", - "resolved": false, - "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", + "bundled": true, "requires": { "debuglog": "^1.0.1", "graceful-fs": "^4.1.2", @@ -5148,8 +4848,7 @@ }, "read-package-json": { "version": "2.0.13", - "resolved": false, - "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", + "bundled": true, "requires": { "glob": "^7.1.1", "graceful-fs": "^4.1.2", @@ -5160,8 +4859,7 @@ }, "read-package-tree": { "version": "5.2.1", - "resolved": false, - "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", + "bundled": true, "requires": { "debuglog": "^1.0.1", "dezalgo": "^1.0.0", @@ -5172,8 +4870,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": false, - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "bundled": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -5186,8 +4883,7 @@ }, "readdir-scoped-modules": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", + "bundled": true, "requires": { "debuglog": "^1.0.1", "dezalgo": "^1.0.0", @@ -5197,8 +4893,7 @@ }, "registry-auth-token": { "version": "3.3.2", - "resolved": false, - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "bundled": true, "requires": { "rc": "^1.1.6", "safe-buffer": "^5.0.1" @@ -5206,16 +4901,14 @@ }, "registry-url": { "version": "3.1.0", - "resolved": false, - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "bundled": true, "requires": { "rc": "^1.0.1" } }, "request": { "version": "2.81.0", - "resolved": false, - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "bundled": true, "requires": { "aws-sign2": "~0.6.0", "aws4": "^1.2.1", @@ -5243,72 +4936,60 @@ }, "require-directory": { "version": "2.1.1", - "resolved": false, - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "bundled": true }, "require-main-filename": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "bundled": true }, "resolve-from": { "version": "4.0.0", - "resolved": false, - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "bundled": true }, "retry": { "version": "0.12.0", - "resolved": false, - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + "bundled": true }, "rimraf": { "version": "2.6.2", - "resolved": false, - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "requires": { "glob": "^7.0.5" } }, "run-queue": { "version": "1.0.3", - "resolved": false, - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "bundled": true, "requires": { "aproba": "^1.1.1" } }, "safe-buffer": { "version": "5.1.2", - "resolved": false, - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "bundled": true }, "safer-buffer": { "version": "2.1.2", - "resolved": false, - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "bundled": true }, "semver": { "version": "5.5.0", - "resolved": false, - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "bundled": true }, "semver-diff": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "bundled": true, "requires": { "semver": "^5.0.3" } }, "set-blocking": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "bundled": true }, "sha": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", + "bundled": true, "requires": { "graceful-fs": "^4.1.2", "readable-stream": "^2.0.2" @@ -5316,49 +4997,41 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": false, - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "bundled": true }, "signal-exit": { "version": "3.0.2", - "resolved": false, - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "bundled": true }, "slash": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + "bundled": true }, "slide": { "version": "1.1.6", - "resolved": false, - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + "bundled": true }, "smart-buffer": { "version": "4.0.1", - "resolved": false, - "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==" + "bundled": true }, "sntp": { "version": "1.0.9", - "resolved": false, - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "bundled": true, "requires": { "hoek": "2.x.x" } }, "socks": { "version": "2.2.0", - "resolved": false, - "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", + "bundled": true, "requires": { "ip": "^1.1.5", "smart-buffer": "^4.0.1" @@ -5366,8 +5039,7 @@ }, "socks-proxy-agent": { "version": "4.0.1", - "resolved": false, - "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", + "bundled": true, "requires": { "agent-base": "~4.2.0", "socks": "~2.2.0" @@ -5375,13 +5047,11 @@ }, "sorted-object": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=" + "bundled": true }, "sorted-union-stream": { "version": "2.1.3", - "resolved": false, - "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", + "bundled": true, "requires": { "from2": "^1.3.0", "stream-iterate": "^1.1.0" @@ -5389,8 +5059,7 @@ "dependencies": { "from2": { "version": "1.3.0", - "resolved": false, - "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", + "bundled": true, "requires": { "inherits": "~2.0.1", "readable-stream": "~1.1.10" @@ -5398,13 +5067,11 @@ }, "isarray": { "version": "0.0.1", - "resolved": false, - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "bundled": true }, "readable-stream": { "version": "1.1.14", - "resolved": false, - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "bundled": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -5414,15 +5081,13 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": false, - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "bundled": true } } }, "spdx-correct": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -5430,13 +5095,11 @@ }, "spdx-exceptions": { "version": "2.1.0", - "resolved": false, - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + "bundled": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -5444,13 +5107,11 @@ }, "spdx-license-ids": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" + "bundled": true }, "sshpk": { "version": "1.14.2", - "resolved": false, - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "bundled": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -5465,20 +5126,17 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "bundled": true } } }, "ssri": { "version": "6.0.0", - "resolved": false, - "integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==" + "bundled": true }, "stream-each": { "version": "1.2.2", - "resolved": false, - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "bundled": true, "requires": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -5486,8 +5144,7 @@ }, "stream-iterate": { "version": "1.2.0", - "resolved": false, - "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", + "bundled": true, "requires": { "readable-stream": "^2.1.5", "stream-shift": "^1.0.0" @@ -5495,18 +5152,15 @@ }, "stream-shift": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + "bundled": true }, "strict-uri-encode": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" + "bundled": true }, "string-width": { "version": "2.1.1", - "resolved": false, - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -5514,18 +5168,15 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "bundled": true }, "strip-ansi": { "version": "4.0.0", - "resolved": false, - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "requires": { "ansi-regex": "^3.0.0" } @@ -5534,47 +5185,40 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": false, - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "bundled": true, "requires": { "safe-buffer": "~5.1.0" } }, "stringstream": { "version": "0.0.6", - "resolved": false, - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==" + "bundled": true }, "strip-ansi": { "version": "3.0.1", - "resolved": false, - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { "ansi-regex": "^2.0.0" } }, "strip-eof": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "bundled": true }, "strip-json-comments": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "bundled": true }, "supports-color": { "version": "5.4.0", - "resolved": false, - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "bundled": true, "requires": { "has-flag": "^3.0.0" } }, "tar": { "version": "4.4.4", - "resolved": false, - "integrity": "sha512-mq9ixIYfNF9SK0IS/h2HKMu8Q2iaCuhDDsZhdEag/FHv8fOaYld4vN7ouMgcSSt5WKZzPs8atclTcJm36OTh4w==", + "bundled": true, "requires": { "chownr": "^1.0.1", "fs-minipass": "^1.2.5", @@ -5587,33 +5231,28 @@ "dependencies": { "yallist": { "version": "3.0.2", - "resolved": false, - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + "bundled": true } } }, "term-size": { "version": "1.2.0", - "resolved": false, - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "bundled": true, "requires": { "execa": "^0.7.0" } }, "text-table": { "version": "0.2.0", - "resolved": false, - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "bundled": true }, "through": { "version": "2.3.8", - "resolved": false, - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "bundled": true }, "through2": { "version": "2.0.3", - "resolved": false, - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "bundled": true, "requires": { "readable-stream": "^2.1.5", "xtend": "~4.0.1" @@ -5621,89 +5260,75 @@ }, "timed-out": { "version": "4.0.1", - "resolved": false, - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + "bundled": true }, "tiny-relative-date": { "version": "1.3.0", - "resolved": false, - "integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==" + "bundled": true }, "tough-cookie": { "version": "2.3.4", - "resolved": false, - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "bundled": true, "requires": { "punycode": "^1.4.1" } }, "tunnel-agent": { "version": "0.6.0", - "resolved": false, - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "requires": { "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", - "resolved": false, - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "optional": true }, "typedarray": { "version": "0.0.6", - "resolved": false, - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "bundled": true }, "uid-number": { "version": "0.0.6", - "resolved": false, - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" + "bundled": true }, "umask": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=" + "bundled": true }, "unique-filename": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "bundled": true, "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "bundled": true, "requires": { "imurmurhash": "^0.1.4" } }, "unique-string": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "bundled": true, "requires": { "crypto-random-string": "^1.0.0" } }, "unpipe": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "bundled": true }, "unzip-response": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + "bundled": true }, "update-notifier": { "version": "2.5.0", - "resolved": false, - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "bundled": true, "requires": { "boxen": "^1.2.1", "chalk": "^2.0.1", @@ -5719,31 +5344,26 @@ }, "url-parse-lax": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "bundled": true, "requires": { "prepend-http": "^1.0.1" } }, "util-deprecate": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "bundled": true }, "util-extend": { "version": "1.0.3", - "resolved": false, - "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=" + "bundled": true }, "uuid": { "version": "3.3.2", - "resolved": false, - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "bundled": true }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": false, - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "bundled": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -5751,16 +5371,14 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "bundled": true, "requires": { "builtins": "^1.0.3" } }, "verror": { "version": "1.10.0", - "resolved": false, - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "bundled": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -5769,44 +5387,38 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "bundled": true } } }, "wcwidth": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "bundled": true, "requires": { "defaults": "^1.0.3" } }, "which": { "version": "1.3.1", - "resolved": false, - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "bundled": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "bundled": true }, "wide-align": { "version": "1.1.2", - "resolved": false, - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "requires": { "string-width": "^1.0.2" }, "dependencies": { "string-width": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5817,24 +5429,21 @@ }, "widest-line": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "bundled": true, "requires": { "string-width": "^2.1.1" } }, "worker-farm": { "version": "1.6.0", - "resolved": false, - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "bundled": true, "requires": { "errno": "~0.1.7" } }, "wrap-ansi": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -5842,8 +5451,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5854,13 +5462,11 @@ }, "wrappy": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true }, "write-file-atomic": { "version": "2.3.0", - "resolved": false, - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "bundled": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -5869,28 +5475,23 @@ }, "xdg-basedir": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + "bundled": true }, "xtend": { "version": "4.0.1", - "resolved": false, - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "bundled": true }, "y18n": { "version": "4.0.0", - "resolved": false, - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "bundled": true }, "yallist": { "version": "2.1.2", - "resolved": false, - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "bundled": true }, "yargs": { "version": "11.0.0", - "resolved": false, - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", + "bundled": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", @@ -5908,15 +5509,13 @@ "dependencies": { "y18n": { "version": "3.2.1", - "resolved": false, - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "bundled": true } } }, "yargs-parser": { "version": "9.0.2", - "resolved": false, - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "requires": { "camelcase": "^4.1.0" } @@ -6121,9 +5720,9 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, "pascalcase": { @@ -6223,9 +5822,9 @@ "dev": true }, "prebuild-install": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.2.4.tgz", - "integrity": "sha512-CG3JnpTZXdmr92GW4zbcba4jkDha6uHraJ7hW4Fn8j0mExxwOKK20hqho8ZuBDCKYCHYIkFM1P2jhtG+KpP4fg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.0.tgz", + "integrity": "sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg==", "requires": { "detect-libc": "^1.0.3", "expand-template": "^2.0.3", @@ -6267,13 +5866,13 @@ } }, "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", "dev": true, "requires": { "forwarded": "~0.1.2", - "ipaddr.js": "1.8.0" + "ipaddr.js": "1.9.0" } }, "psl": { @@ -6465,9 +6064,9 @@ "dev": true }, "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", + "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -7164,13 +6763,13 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "~2.1.24" } }, "unc-path-regex": { From 8effbd98d7368a267b69728adf08d3e2f54c02d1 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Fri, 26 Apr 2019 23:21:31 -0400 Subject: [PATCH 32/34] Undo those require.resolve changes --- spec/ci-spec.coffee | 2 +- src/ci.coffee | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/ci-spec.coffee b/spec/ci-spec.coffee index 62577fc84..1483114d7 100644 --- a/spec/ci-spec.coffee +++ b/spec/ci-spec.coffee @@ -59,7 +59,7 @@ describe 'apm ci', -> server.close -> done = true waitsFor -> done - fit 'installs dependency versions as specified by the lockfile', -> + it 'installs dependency versions as specified by the lockfile', -> moduleDirectory = path.join temp.mkdirSync('apm-test-'), 'test-module-with-lockfile' fs.copySync path.join(__dirname, 'fixtures', 'test-module-with-lockfile'), moduleDirectory process.chdir moduleDirectory diff --git a/src/ci.coffee b/src/ci.coffee index 792907488..72a68f8e6 100644 --- a/src/ci.coffee +++ b/src/ci.coffee @@ -16,7 +16,7 @@ class Ci extends Command @atomDirectory = config.getAtomDirectory() @atomNodeDirectory = path.join(@atomDirectory, '.node-gyp') @atomNpmPath = require.resolve('npm/bin/npm-cli') - @atomNodeGypPath = process.env.ATOM_NODE_GYP_PATH or require.resolve('node-gyp', {paths: require.resolve('npm')}) + @atomNodeGypPath = process.env.ATOM_NODE_GYP_PATH or require.resolve('npm/node_modules/node-gyp/bin/node-gyp') parseOptions: (argv) -> options = yargs(argv).wrap(100) @@ -32,7 +32,7 @@ class Ci extends Command """ options.alias('h', 'help').describe('help', 'Print this usage message') - options.boolean('verbose').default('verbose', true).describe('verbose', 'Show verbose debug information') + options.boolean('verbose').default('verbose', false).describe('verbose', 'Show verbose debug information') installDependencies: (options, callback) => async.waterfall [ From 44b75672236fedd718f18d774a951ab3c3a63630 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Fri, 26 Apr 2019 23:26:45 -0400 Subject: [PATCH 33/34] Forgot the silenceOutput change --- spec/ci-spec.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/ci-spec.coffee b/spec/ci-spec.coffee index 1483114d7..0a5e1fdae 100644 --- a/spec/ci-spec.coffee +++ b/spec/ci-spec.coffee @@ -11,7 +11,7 @@ describe 'apm ci', -> beforeEach -> spyOnToken() - silenceOutput(true) + silenceOutput() atomHome = temp.mkdirSync 'apm-home-dir-' process.env.ATOM_HOME = atomHome From c5bae692a92564647c88590da2631732d8acfebc Mon Sep 17 00:00:00 2001 From: DeeDeeG Date: Mon, 10 Aug 2020 12:31:04 -0400 Subject: [PATCH 34/34] src: More fs.makeTreeSync --> fs.mkdirpSync --- src/ci.coffee | 2 +- src/dedupe.coffee | 2 +- src/install.coffee | 6 +++--- src/rebuild.coffee | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ci.coffee b/src/ci.coffee index 225574a6a..fe00ca234 100644 --- a/src/ci.coffee +++ b/src/ci.coffee @@ -51,7 +51,7 @@ class Ci extends Command if vsArgs = @getVisualStudioFlags() installArgs.push(vsArgs) - fs.makeTreeSync(@atomDirectory) + fs.mkdirpSync(@atomDirectory) env = _.extend({}, process.env, {HOME: @atomNodeDirectory, RUSTUP_HOME: config.getRustupHomeDirPath()}) @addBuildEnvVars(env) diff --git a/src/dedupe.coffee b/src/dedupe.coffee index 4a0564b97..683fd3287 100644 --- a/src/dedupe.coffee +++ b/src/dedupe.coffee @@ -48,7 +48,7 @@ class Dedupe extends Command dedupeArgs.push(packageName) for packageName in options.argv._ - fs.makeTreeSync(@atomDirectory) + fs.mkdirpSync(@atomDirectory) env = _.extend({}, process.env, {HOME: @atomNodeDirectory, RUSTUP_HOME: config.getRustupHomeDirPath()}) @addBuildEnvVars(env) diff --git a/src/install.coffee b/src/install.coffee index 59e6aa26e..34446801f 100644 --- a/src/install.coffee +++ b/src/install.coffee @@ -74,7 +74,7 @@ class Install extends Command if vsArgs = @getVisualStudioFlags() installArgs.push(vsArgs) - fs.makeTreeSync(@atomDirectory) + fs.mkdirpSync(@atomDirectory) env = _.extend({}, process.env, {HOME: @atomNodeDirectory, RUSTUP_HOME: config.getRustupHomeDirPath()}) @addBuildEnvVars(env) @@ -176,7 +176,7 @@ class Install extends Command if vsArgs = @getVisualStudioFlags() installArgs.push(vsArgs) - fs.makeTreeSync(@atomDirectory) + fs.mkdirpSync(@atomDirectory) env = _.extend({}, process.env, {HOME: @atomNodeDirectory, RUSTUP_HOME: config.getRustupHomeDirPath()}) @addBuildEnvVars(env) @@ -389,7 +389,7 @@ class Install extends Command if vsArgs = @getVisualStudioFlags() buildArgs.push(vsArgs) - fs.makeTreeSync(@atomDirectory) + fs.mkdirpSync(@atomDirectory) env = _.extend({}, process.env, {HOME: @atomNodeDirectory, RUSTUP_HOME: config.getRustupHomeDirPath()}) @addBuildEnvVars(env) diff --git a/src/rebuild.coffee b/src/rebuild.coffee index f3d647ac2..a9eb95829 100644 --- a/src/rebuild.coffee +++ b/src/rebuild.coffee @@ -1,3 +1,4 @@ +fs = require 'fs-extra' path = require 'path' _ = require 'underscore-plus' @@ -5,7 +6,6 @@ yargs = require 'yargs' config = require './apm' Command = require './command' -fs = require './fs' Install = require './install' module.exports = @@ -41,7 +41,7 @@ class Rebuild extends Command if vsArgs = @getVisualStudioFlags() rebuildArgs.push(vsArgs) - fs.makeTreeSync(@atomDirectory) + fs.mkdirpSync(@atomDirectory) env = _.extend({}, process.env, {HOME: @atomNodeDirectory, RUSTUP_HOME: config.getRustupHomeDirPath()}) @addBuildEnvVars(env)