From d779eacf618ab5097747548f10c674bedc083f54 Mon Sep 17 00:00:00 2001 From: Daniel Scalzi Date: Sat, 1 Dec 2018 08:20:42 -0500 Subject: [PATCH] Added drag/drop functionality to the add mods button. You can now drag one or more files onto the add mods button in order to add them to the mods directory. Only jar, litemod, and zip files will be moved. Changed eslint to use a single configuration file, with overrides for the UI scripts. Now using fs-extra, replace usages of rimraf and mkdirp with fs-extra functions. --- .eslintrc.json | 15 ++- .eslintrc.scripts.json | 47 ---------- app/assets/css/launcher.css | 5 +- app/assets/js/assetguard.js | 11 +-- app/assets/js/configmanager.js | 7 +- app/assets/js/dropinmodutil.js | 23 ++++- app/assets/js/preloader.js | 4 +- app/assets/js/processbuilder.js | 10 +- app/assets/js/scripts/settings.js | 31 +++++- package-lock.json | 151 ++++++++++++++++++------------ package.json | 9 +- 11 files changed, 170 insertions(+), 143 deletions(-) delete mode 100644 .eslintrc.scripts.json diff --git a/.eslintrc.json b/.eslintrc.json index 499f0e1..44ee57e 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 e5f750e..0000000 --- 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 20505e3..203159d 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 85f23e3..1fe6c1f 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 ad81c5f..3061d71 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 c6e6200..b27512c 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 03da5a2..c6307b6 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 6364984..20af611 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 0a80e43..75584d9 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 65330b1..5007220 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": {