diff --git a/.eslintrc.json b/.eslintrc.json index 499f0e144c..44ee57e9cd 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -46,5 +46,18 @@ "argsIgnorePattern": "reject" } ] - } + }, + "overrides": [ + { + "files": [ "app/assets/js/scripts/*.js" ], + "rules": { + "no-unused-vars": [ + 0 + ], + "no-undef": [ + 0 + ] + } + } + ] } \ No newline at end of file diff --git a/.eslintrc.scripts.json b/.eslintrc.scripts.json deleted file mode 100644 index e5f750e7f1..0000000000 --- a/.eslintrc.scripts.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "env": { - "es6": true, - "node": true - }, - "extends": "eslint:recommended", - "parserOptions": { - "ecmaVersion": 2017, - "sourceType": "module" - }, - "rules": { - "indent": [ - "error", - 4, - { - "SwitchCase": 1 - } - ], - "linebreak-style": [ - "error", - "windows" - ], - "quotes": [ - "error", - "single" - ], - "semi": [ - "error", - "never" - ], - "no-var": [ - "error" - ], - "no-console": [ - 0 - ], - "no-control-regex": [ - 0 - ], - "no-unused-vars": [ - 0 - ], - "no-undef": [ - 0 - ] - } -} \ No newline at end of file diff --git a/app/assets/css/launcher.css b/app/assets/css/launcher.css index 20505e3077..203159d5a5 100644 --- a/app/assets/css/launcher.css +++ b/app/assets/css/launcher.css @@ -1545,13 +1545,15 @@ input:checked + .toggleSwitchSlider:before { margin-bottom: 10px; } #settingsDropinFileSystemButton:hover, -#settingsDropinFileSystemButton:focus { +#settingsDropinFileSystemButton:focus, +#settingsDropinFileSystemButton[drag] { background: rgba(54, 54, 54, 0.25); text-shadow: 0px 0px 20px white; } /* Refresh instructions on the file system button. */ #settingsDropinRefreshNote { font-size: 10px; + pointer-events: none; } /* Button to remove drop-in mods. */ @@ -2663,7 +2665,6 @@ input:checked + .toggleSwitchSlider:before { box-shadow: 0px 0px 10px 0px rgb(0, 0, 0); overflow: hidden; position: relative; - /*background-image: url('https://cdn.discordapp.com/avatars/169197209630277642/6650b5a50e1cb3d00a79b9b88b9a0cd4.png');*/ background-position: center; background-repeat: no-repeat; background-size: contain; diff --git a/app/assets/js/assetguard.js b/app/assets/js/assetguard.js index 85f23e3d9a..1fe6c1f8db 100644 --- a/app/assets/js/assetguard.js +++ b/app/assets/js/assetguard.js @@ -4,8 +4,7 @@ const async = require('async') const child_process = require('child_process') const crypto = require('crypto') const EventEmitter = require('events') -const fs = require('fs') -const mkpath = require('mkdirp') +const fs = require('fs-extra') const path = require('path') const Registry = require('winreg') const request = require('request') @@ -360,7 +359,7 @@ class AssetGuard extends EventEmitter { const versionPath = path.join(commonPath, 'versions', forgeVersion.id) const versionFile = path.join(versionPath, forgeVersion.id + '.json') if(!fs.existsSync(versionFile)){ - mkpath.sync(versionPath) + fs.ensureDirSync(versionPath) fs.writeFileSync(path.join(versionPath, forgeVersion.id + '.json'), zipEntries[i].getData()) resolve(forgeVersion) } else { @@ -996,7 +995,7 @@ class AssetGuard extends EventEmitter { const url = await self._getVersionDataUrl(version) //This download will never be tracked as it's essential and trivial. console.log('Preparing download of ' + version + ' assets.') - mkpath.sync(versionPath) + fs.ensureDirSync(versionPath) const stream = request(url).pipe(fs.createWriteStream(versionFile)) stream.on('finish', () => { resolve(JSON.parse(fs.readFileSync(versionFile))) @@ -1078,7 +1077,7 @@ class AssetGuard extends EventEmitter { let data = null if(!fs.existsSync(assetIndexLoc) || force){ console.log('Downloading ' + versionData.id + ' asset index.') - mkpath.sync(indexPath) + fs.ensureDirSync(indexPath) const stream = request(assetIndex.url).pipe(fs.createWriteStream(assetIndexLoc)) stream.on('finish', () => { data = JSON.parse(fs.readFileSync(assetIndexLoc, 'utf-8')) @@ -1457,7 +1456,7 @@ class AssetGuard extends EventEmitter { async.eachLimit(dlQueue, limit, (asset, cb) => { - mkpath.sync(path.join(asset.to, '..')) + fs.ensureDirSync(path.join(asset.to, '..')) let req = request(asset.from) req.pause() diff --git a/app/assets/js/configmanager.js b/app/assets/js/configmanager.js index ad81c5f7e8..3061d712e5 100644 --- a/app/assets/js/configmanager.js +++ b/app/assets/js/configmanager.js @@ -1,5 +1,4 @@ -const fs = require('fs') -const mkpath = require('mkdirp') +const fs = require('fs-extra') const os = require('os') const path = require('path') @@ -98,7 +97,7 @@ exports.load = function(){ if(!fs.existsSync(filePath)){ // Create all parent directories. - mkpath.sync(path.join(filePath, '..')) + fs.ensureDirSync(path.join(filePath, '..')) config = DEFAULT_CONFIG exports.save() } else { @@ -110,7 +109,7 @@ exports.load = function(){ logger.error(err) logger.log('Configuration file contains malformed JSON or is corrupt.') logger.log('Generating a new configuration file.') - mkpath.sync(path.join(filePath, '..')) + fs.ensureDirSync(path.join(filePath, '..')) config = DEFAULT_CONFIG exports.save() } diff --git a/app/assets/js/dropinmodutil.js b/app/assets/js/dropinmodutil.js index c6e62001be..b27512c833 100644 --- a/app/assets/js/dropinmodutil.js +++ b/app/assets/js/dropinmodutil.js @@ -1,5 +1,4 @@ -const fs = require('fs') -const mkpath = require('mkdirp') +const fs = require('fs-extra') const path = require('path') const { shell } = require('electron') @@ -16,9 +15,7 @@ const DISABLED_EXT = '.disabled' * @param {string} modsDir The path to the mods directory. */ exports.validateModsDir = function(modsDir) { - if(!fs.existsSync(modsDir)) { - mkpath.sync(modsDir) - } + fs.ensureDirSync(modsDir) } /** @@ -66,6 +63,22 @@ exports.scanForDropinMods = function(modsDir, version) { return modsDiscovered } +/** + * Add dropin mods. + * + * @param {FileList} files The files to add. + * @param {string} modsDir The path to the mods directory. + */ +exports.addDropinMods = function(files, modsdir) { + + for(let f of files) { + if(MOD_REGEX.exec(f.name) != null) { + fs.moveSync(f.path, path.join(modsdir, f.name)) + } + } + +} + /** * Delete a drop-in mod from the file system. * diff --git a/app/assets/js/preloader.js b/app/assets/js/preloader.js index 03da5a2fc0..c6307b68a7 100644 --- a/app/assets/js/preloader.js +++ b/app/assets/js/preloader.js @@ -1,7 +1,7 @@ const {ipcRenderer} = require('electron') +const fs = require('fs-extra') const os = require('os') const path = require('path') -const rimraf = require('rimraf') const ConfigManager = require('./configmanager') const DistroManager = require('./distromanager') @@ -56,7 +56,7 @@ DistroManager.pullRemote().then((data) => { }) // Clean up temp dir incase previous launches ended unexpectedly. -rimraf(path.join(os.tmpdir(), ConfigManager.getTempNativeFolder()), (err) => { +fs.remove(path.join(os.tmpdir(), ConfigManager.getTempNativeFolder()), (err) => { if(err){ logger.warn('Error while cleaning natives directory', err) } else { diff --git a/app/assets/js/processbuilder.js b/app/assets/js/processbuilder.js index 6364984deb..20af61185c 100644 --- a/app/assets/js/processbuilder.js +++ b/app/assets/js/processbuilder.js @@ -1,11 +1,9 @@ const AdmZip = require('adm-zip') const child_process = require('child_process') const crypto = require('crypto') -const fs = require('fs') -const mkpath = require('mkdirp') +const fs = require('fs-extra') const os = require('os') const path = require('path') -const rimraf = require('rimraf') const {URL} = require('url') const { Library } = require('./assetguard') @@ -36,7 +34,7 @@ class ProcessBuilder { * Convienence method to run the functions typically used to build a process. */ build(){ - mkpath.sync(this.gameDir) + fs.ensureDirSync(this.gameDir) const tempNativePath = path.join(os.tmpdir(), ConfigManager.getTempNativeFolder(), crypto.pseudoRandomBytes(16).toString('hex')) process.throwDeprecation = true this.setupLiteLoader() @@ -74,7 +72,7 @@ class ProcessBuilder { }) child.on('close', (code, signal) => { logger.log('Exited with code', code) - rimraf(tempNativePath, (err) => { + fs.remove(tempNativePath, (err) => { if(err){ logger.warn('Error while deleting temp dir', err) } else { @@ -364,7 +362,7 @@ class ProcessBuilder { const libs = [] const libArr = this.versionData.libraries - mkpath.sync(tempNativePath) + fs.ensureDirSync(tempNativePath) for(let i=0; i { + e.dataTransfer.dropEffect = 'move' + fsBtn.setAttribute('drag', '') + e.preventDefault() + } + fsBtn.ondragover = e => { + e.preventDefault() + } + fsBtn.ondragleave = e => { + fsBtn.removeAttribute('drag') + } + + fsBtn.ondrop = e => { + fsBtn.removeAttribute('drag') + e.preventDefault() + + DropinModUtil.addDropinMods(e.dataTransfer.files, CACHE_SETTINGS_MODS_DIR) + reloadDropinMods() + } } /** @@ -676,14 +695,18 @@ function saveDropinModConfiguration(){ document.addEventListener('keydown', (e) => { if(getCurrentView() === VIEWS.settings && selectedSettingsTab === 'settingsTabMods'){ if(e.key === 'F5'){ - resolveDropinModsForUI() - bindDropinModsRemoveButton() - bindDropinModFileSystemButton() - bindModsToggleSwitch() + reloadDropinMods() } } }) +function reloadDropinMods(){ + resolveDropinModsForUI() + bindDropinModsRemoveButton() + bindDropinModFileSystemButton() + bindModsToggleSwitch() +} + // Server status bar functions. /** diff --git a/package-lock.json b/package-lock.json index 0a80e43608..75584d9cee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -134,28 +134,28 @@ } }, "app-builder-bin": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.5.1.tgz", - "integrity": "sha512-Hm+eyyfQCs5N5avLAw3w9Cf1S5TX/t6ecAfHusbzCDh/rLKLKYso2vwDWH4OQZ8uWLnuJwaAUDf3PstRcn0H+A==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.6.0.tgz", + "integrity": "sha512-7HphDMS2U9MwAA6R7lSU6MASFR/D+VJDb5hQ4Fn2coOMyaRn71QDWPdG0TPnDr88F2I7bsTuHYud28S/yN2lZw==", "dev": true }, "app-builder-lib": { - "version": "20.36.2", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.36.2.tgz", - "integrity": "sha512-5FxLnWI13t0LLmh2QjmPx3KW/xhj67su7UxdCzQgULsUmYurdPx8yAOb9YxoX+RpR08inqt+H3GBOJlqSSrVgg==", + "version": "20.38.2", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.38.2.tgz", + "integrity": "sha512-jwysFwaU4ohvHqv5jNCeoZSO0N/8x7W/c0S6TiTb6QUC3U0YVcsN7DPMj7QApHzTvMTO9kxzjUzwA8dbQZVovg==", "dev": true, "requires": { "7zip-bin": "~4.1.0", - "app-builder-bin": "2.5.1", + "app-builder-bin": "2.6.0", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.6", - "builder-util": "9.3.0", + "builder-util": "9.6.0", "builder-util-runtime": "8.0.2", "chromium-pickle-js": "^0.2.0", "debug": "^4.1.0", "ejs": "^2.6.1", "electron-osx-sign": "0.4.11", - "electron-publish": "20.36.0", + "electron-publish": "20.38.2", "fs-extra-p": "^7.0.0", "hosted-git-info": "^2.7.1", "is-ci": "^1.2.1", @@ -168,7 +168,7 @@ "read-config-file": "3.2.0", "sanitize-filename": "^1.6.1", "semver": "^5.6.0", - "temp-file": "^3.2.0" + "temp-file": "^3.3.2" }, "dependencies": { "debug": { @@ -261,7 +261,8 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, "base64-js": { "version": "1.3.0", @@ -387,6 +388,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -417,15 +419,15 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "builder-util": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-9.3.0.tgz", - "integrity": "sha512-K+kj5vWj4Mk3jOm6kVT9ZwNcECLHe449vdMxYuZpCnn7CSxRm+TeZm9P9ZFCQUID5Hww/Sy4NMFo+VVJh6+Ptw==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-9.6.0.tgz", + "integrity": "sha512-6T4E3aNVndTZ2oCt+22S0wxt47d094MxrADi6S012QumXlDNfSsyu1ffbGN9w0HG+4aubpLzf9apKgMP1yl4Kw==", "dev": true, "requires": { "7zip-bin": "~4.1.0", - "app-builder-bin": "2.5.1", + "app-builder-bin": "2.6.0", "bluebird-lst": "^1.0.6", - "builder-util-runtime": "^8.0.1", + "builder-util-runtime": "^8.0.2", "chalk": "^2.4.1", "debug": "^4.1.0", "fs-extra-p": "^7.0.0", @@ -433,7 +435,7 @@ "js-yaml": "^3.12.0", "source-map-support": "^0.5.9", "stat-mode": "^0.2.2", - "temp-file": "^3.2.0" + "temp-file": "^3.3.2" }, "dependencies": { "debug": { @@ -664,7 +666,8 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "concat-stream": { "version": "1.6.2", @@ -860,14 +863,14 @@ } }, "dmg-builder": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.4.0.tgz", - "integrity": "sha512-q84fMrMm9mXh2qH0Sb3+o0gCvfeJRBI+46y+CpQystqgRyB+3bZB11WqCf5d8+qsENhzpi786jR82xbHG1Vvag==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.5.2.tgz", + "integrity": "sha512-eT3qc8IrwfDyq5ddGO807Wya2ltVlIlE0FVf6Aa+HWdlp9JnYayPNGWrQA9xIHpKKlq206JdNZ6LYIn93EAzdg==", "dev": true, "requires": { - "app-builder-lib": "~20.36.0", + "app-builder-lib": "~20.38.2", "bluebird-lst": "^1.0.6", - "builder-util": "~9.3.0", + "builder-util": "~9.6.0", "fs-extra-p": "^7.0.0", "iconv-lite": "^0.4.24", "js-yaml": "^3.12.0", @@ -947,24 +950,24 @@ } }, "electron-builder": { - "version": "20.36.2", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.36.2.tgz", - "integrity": "sha512-xPJNt3ZBn5IYlp3pCP0Rvi00JYAKdTeOSLWFrkST1xqWfRZxXrI4uisVD9HQjzRN8hBHhTgTfXtb9uhWPha9eA==", + "version": "20.38.2", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.38.2.tgz", + "integrity": "sha512-uUEzfc/e8J7nAowvFQw4SyHIe4d6VSHO1LmcLy53he4aGXlVklHluhbwa0rxATPdYVNgHmJz7zoVgYYOd/YS+A==", "dev": true, "requires": { - "app-builder-lib": "20.36.2", + "app-builder-lib": "20.38.2", "bluebird-lst": "^1.0.6", - "builder-util": "9.3.0", + "builder-util": "9.6.0", "builder-util-runtime": "8.0.2", "chalk": "^2.4.1", - "dmg-builder": "6.4.0", + "dmg-builder": "6.5.2", "fs-extra-p": "^7.0.0", "is-ci": "^1.2.1", "lazy-val": "^1.0.3", "read-config-file": "3.2.0", "sanitize-filename": "^1.6.1", "update-notifier": "^2.5.0", - "yargs": "^12.0.2" + "yargs": "^12.0.5" } }, "electron-download": { @@ -982,6 +985,19 @@ "rc": "^1.2.1", "semver": "^5.4.1", "sumchecker": "^2.0.2" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } } }, "electron-osx-sign": { @@ -1016,24 +1032,32 @@ } }, "electron-publish": { - "version": "20.36.0", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.36.0.tgz", - "integrity": "sha512-LjJ4KoApSLtKyGWotv0B+PoTzpLEdHHXzDF9HLxatPlfoZCmrOexqm7Qiv1ODuYWPac7Zpf2OHitJp8WIOcZRQ==", + "version": "20.38.2", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.38.2.tgz", + "integrity": "sha512-GXwnZm9I9l4RjlDwuALpR57aIH38qRzDEYbhLysmrC5T2xlCgyBIfxS5EUNESqKT+9KeJJZcj+eTKMjbz+Qafw==", "dev": true, "requires": { "bluebird-lst": "^1.0.6", - "builder-util": "~9.3.0", - "builder-util-runtime": "^8.0.1", + "builder-util": "~9.6.0", + "builder-util-runtime": "^8.0.2", "chalk": "^2.4.1", "fs-extra-p": "^7.0.0", "lazy-val": "^1.0.3", - "mime": "^2.3.1" + "mime": "^2.4.0" + }, + "dependencies": { + "mime": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", + "dev": true + } } }, "electron-updater": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.0.4.tgz", - "integrity": "sha512-y3wddJQyC5h1UTJhNAWoX4McJ5Z1r1ZDqyifpYWniVS286YCXe1xSLkbe9C6ZzxzPurt1jg2ZubPuBNt/811Dw==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.0.5.tgz", + "integrity": "sha512-2w93987YlPNMbhYQe6+EsSpkhtgYtLyYuAMttqQckwFdBJJat4Jo8ja/gmBk2Aa760g2Jt7aIBPQvlJDiXGPgg==", "requires": { "bluebird-lst": "^1.0.6", "builder-util-runtime": "~8.0.2", @@ -1415,10 +1439,9 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, + "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": "^4.0.0", @@ -1449,7 +1472,8 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "functional-red-black-tree": { "version": "1.0.1", @@ -1492,6 +1516,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1629,6 +1654,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -2024,9 +2050,9 @@ "dev": true }, "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { "pseudomap": "^1.0.2", @@ -2122,6 +2148,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2390,9 +2417,9 @@ } }, "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==" }, "parse-color": { "version": "1.0.0", @@ -2429,7 +2456,8 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-is-inside": { "version": "1.0.2", @@ -2606,9 +2634,9 @@ }, "dependencies": { "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", + "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -2784,6 +2812,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, "requires": { "glob": "^7.0.5" } @@ -3573,9 +3602,9 @@ "dev": true }, "yargs": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.4.tgz", - "integrity": "sha512-f5esswlPO351AnejaO2A1ZZr0zesz19RehQKwiRDqWtrraWrJy16tsUIKgDXFMVytvNOHPVmTiaTh3wO67I0fQ==", + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { "cliui": "^4.0.0", @@ -3589,7 +3618,7 @@ "string-width": "^2.0.0", "which-module": "^2.0.0", "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.0" + "yargs-parser": "^11.1.1" }, "dependencies": { "ansi-regex": { @@ -3635,9 +3664,9 @@ } }, "yargs-parser": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.0.tgz", - "integrity": "sha512-lGA5HsbjkpCfekDBHAhgE5OE8xEoqiUDylowr+BvhRCwG1xVYTsd8hx2CYC0NY4k9RIgJeybFTG2EZW4P2aN1w==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { "camelcase": "^5.0.0", diff --git a/package.json b/package.json index 65330b1129..5007220d1a 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "dist:win": "npm run dist -- --win --x64", "dist:mac": "npm run dist -- --mac", "dist:linux": "npm run dist -- --linux --x64", - "lint": "eslint --config .eslintrc.json --ignore-pattern app/assets/js/scripts/*.js . && eslint --config .eslintrc.scripts.json app/assets/js/scripts" + "lint": "eslint --config .eslintrc.json ." }, "engines": { "node": "10.x.x" @@ -30,12 +30,11 @@ "discord-rpc": "discordjs/RPC", "ejs": "^2.6.1", "ejs-electron": "^2.0.3", - "electron-updater": "^4.0.4", + "electron-updater": "^4.0.5", + "fs-extra": "^7.0.1", "github-syntax-dark": "^0.5.0", "jquery": "^3.3.1", - "mkdirp": "^0.5.1", "request": "^2.88.0", - "rimraf": "^2.6.2", "semver": "^5.6.0", "tar-fs": "^1.16.3", "winreg": "^1.2.4" @@ -43,7 +42,7 @@ "devDependencies": { "cross-env": "^5.2.0", "electron": "^3.0.10", - "electron-builder": "^20.36.2", + "electron-builder": "^20.38.2", "eslint": "^5.9.0" }, "repository": {