diff --git a/app/application/src/js/index.js b/app/application/src/js/index.js index 2b7e49ac..28c5178b 100644 --- a/app/application/src/js/index.js +++ b/app/application/src/js/index.js @@ -1,4 +1,4 @@ -const speakeasy = require("speakeasy") +const speakeasy = require("@levminer/speakeasy") const { app } = require("electron").remote const fs = require("fs") const path = require("path") @@ -105,7 +105,7 @@ const go = () => {
Text
- +You can export everything form your saved config.
You can use your exported config in Authme Web.
+ +If you saved your config you can export the secrects and the QR codes.
diff --git a/app/export/src/js/index.js b/app/export/src/js/index.js index 274cd83d..3892fc4c 100644 --- a/app/export/src/js/index.js +++ b/app/export/src/js/index.js @@ -1,5 +1,5 @@ const electron = require("electron") -const { app, dialog } = require("electron").remote +const { app, dialog, shell } = require("electron").remote const fs = require("fs") const path = require("path") const qrcode = require("qrcode") @@ -169,3 +169,7 @@ const save_qr_codes = () => { const hide = () => { ipc.send("hide2") } + +const aw = () => { + shell.openExternal("https://web.authme.levminer.com") +} diff --git a/app/settings/index.html b/app/settings/index.html index 483924cd..c6f730e0 100644 --- a/app/settings/index.html +++ b/app/settings/index.html @@ -17,9 +17,13 @@You can configure the app setting here.
+All systems online.
+ +Start the app after the operating system loaded. The app will start on the tray (Windows only).
- +On closing the app will not quit. You can open the app from the tray menu (Windows only).
diff --git a/app/settings/src/css/index.css b/app/settings/src/css/index.css index 1ab0a5e6..2004ffa7 100644 --- a/app/settings/src/css/index.css +++ b/app/settings/src/css/index.css @@ -6,7 +6,7 @@ body { .center { top: -50px; width: 1000px; - height: 1500px; + height: 1700px; } .button1 { @@ -58,3 +58,8 @@ body { top: 50px; color: white !important; } + +#status { + font-size: 28px; + font-weight: bold; +} diff --git a/app/settings/src/js/index.js b/app/settings/src/js/index.js index 50cf9160..1cf8d7fc 100644 --- a/app/settings/src/js/index.js +++ b/app/settings/src/js/index.js @@ -3,6 +3,7 @@ const fs = require("fs") const electron = require("electron") const ipc = electron.ipcRenderer const path = require("path") +const fetch = require("node-fetch") const version = ipc.sendSync("ver") @@ -191,6 +192,38 @@ const folder1 = () => { shell.showItemInFolder(file_path) } +// ? Status API +const status = document.querySelector("#status") + +const api = async () => { + try { + await fetch("https://api.levminer.com/api/v1/status/all") + .then((res) => res.json()) + .then((data) => { + try { + if (data.state === "up") { + status.style.color = "green" + } else { + status.textContent = "Some systems offline" + status.style.color = "red" + } + } catch (error) { + return console.log(error) + } + }) + } catch (error) { + status.textContent = "Can't connect to API" + status.style.color = "red" + } +} + +api() + +// ? Open Status +const page = () => { + shell.openExternal("https://status.levminer.com") +} + const hide = () => { ipc.send("hide0") } diff --git a/main.js b/main.js index f43d704c..e61ae7a7 100644 --- a/main.js +++ b/main.js @@ -29,8 +29,8 @@ let ipc_to_application_1 = false let confirmed = false let startup = false -const authme_version = "2.1.0" -const tag_name = "2.1.0" +const authme_version = "2.1.1" +const tag_name = "2.1.1" ipc.on("ver", (event, data) => { event.returnValue = authme_version @@ -401,39 +401,56 @@ const createWindow = () => { // ? check for auto update window2.on("show", () => { - const api = () => { - fetch("https://api.github.com/repos/Levminer/authme/releases/latest") - .then((res) => res.json()) - .then((data) => { - try { - if (data.tag_name != tag_name && data.tag_name != undefined) { - dialog - .showMessageBox({ - title: "Authme", - buttons: ["Yes", "No"], - defaultId: 0, - cancelId: 1, - type: "info", - message: ` - Update available: Authme ${data.tag_name} - - Do you want to download it? - - You currently running: Authme ${tag_name} - `, - }) - .then((result) => { - update = true - - if (result.response === 0) { - shell.openExternal("https://github.com/Levminer/authme/releases/latest") - } - }) + const api = async () => { + try { + await fetch("https://api.github.com/repos/Levminer/authme/releases/latest") + .then((res) => res.json()) + .then((data) => { + try { + if (data.tag_name != tag_name && data.tag_name != undefined) { + dialog + .showMessageBox({ + title: "Authme", + buttons: ["Yes", "No"], + defaultId: 0, + cancelId: 1, + type: "info", + message: ` + Update available: Authme ${data.tag_name} + + Do you want to download it? + + You currently running: Authme ${tag_name} + `, + }) + .then((result) => { + update = true + + if (result.response === 0) { + shell.openExternal("https://github.com/Levminer/authme/releases/latest") + } + }) + } + } catch (error) { + return console.log(error) } - } catch (error) { - return console.log(error) - } + }) + } catch (error) { + dialog.showMessageBox({ + title: "Authme", + buttons: ["Close"], + defaultId: 0, + cancelId: 1, + type: "info", + message: ` + No update available: + + Can't connect to API! + + You currently running: Authme ${tag_name} + `, }) + } } if (update_start == false) { @@ -781,54 +798,71 @@ app.whenReady().then(() => { label: "Update", accelerator: file.shortcuts.update, click: () => { - const api = () => { - fetch("https://api.github.com/repos/Levminer/authme/releases/latest") - .then((res) => res.json()) - .then((data) => { - try { - if (data.tag_name != tag_name && data.tag_name != undefined) { - dialog - .showMessageBox({ + const api = async () => { + try { + await fetch("https://api.levminer.com/api/v1/authme/releases") + .then((res) => res.json()) + .then((data) => { + try { + if (data.tag_name != tag_name && data.tag_name != undefined) { + dialog + .showMessageBox({ + title: "Authme", + buttons: ["Yes", "No"], + defaultId: 0, + cancelId: 1, + type: "info", + message: ` + Update available: Authme ${data.tag_name} + + Do you want to download it? + + You currently running: Authme ${tag_name} + `, + }) + .then((result) => { + update = true + + if (result.response === 0) { + shell.openExternal("https://github.com/Levminer/authme/releases/latest") + } + }) + } else { + dialog.showMessageBox({ title: "Authme", - buttons: ["Yes", "No"], + buttons: ["Close"], defaultId: 0, cancelId: 1, type: "info", message: ` - Update available: Authme ${data.tag_name} + No update available: - Do you want to download it? + You running the latest version! You currently running: Authme ${tag_name} `, }) - .then((result) => { - update = true - - if (result.response === 0) { - shell.openExternal("https://github.com/Levminer/authme/releases/latest") - } - }) - } else { - dialog.showMessageBox({ - title: "Authme", - buttons: ["Close"], - defaultId: 0, - cancelId: 1, - type: "info", - message: ` - No update available: - - You running the latest version! - - You currently running: Authme ${tag_name} - `, - }) + } + } catch (error) { + return console.log(error) } - } catch (error) { - return console.log(error) - } + }) + } catch (error) { + dialog.showMessageBox({ + title: "Authme", + buttons: ["Close"], + defaultId: 0, + cancelId: 1, + type: "info", + message: ` + No update available: + + Can't connect to API! + + You currently running: Authme ${tag_name} + `, }) + } } api() diff --git a/package-lock.json b/package-lock.json index 9da715f6..15fe8b8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "authme", - "version": "2.0.0", + "version": "2.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -20,12 +20,12 @@ } }, "@babel/generator": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", - "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.10.tgz", + "integrity": "sha512-6mCdfhWgmqLdtTkhXjnIz0LcdVCd26wS2JXRtj2XY0u5klDsXBREA/pG5NVOuVnF2LUrBGNFtQkIqqTbblg0ww==", "dev": true, "requires": { - "@babel/types": "^7.12.5", + "@babel/types": "^7.12.10", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -50,12 +50,12 @@ } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.10" } }, "@babel/helper-split-export-declaration": { @@ -119,9 +119,9 @@ } }, "@babel/parser": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz", - "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.10.tgz", + "integrity": "sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA==", "dev": true }, "@babel/runtime": { @@ -144,17 +144,17 @@ } }, "@babel/traverse": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz", - "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz", + "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", + "@babel/generator": "^7.12.10", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" @@ -169,9 +169,9 @@ } }, "@babel/types": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz", - "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.10.tgz", + "integrity": "sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -553,6 +553,14 @@ "regenerator-runtime": "^0.13.3" } }, + "@levminer/speakeasy": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@levminer/speakeasy/-/speakeasy-1.0.3.tgz", + "integrity": "sha512-baKe9Sq1MTyRjRnyvZsCHNl+w3TRc1qv85EZZOlV/FdXHUrQF2Z3MMVtnChMe1osITsFREb7LcZkIpaGsj+m3g==", + "requires": { + "base32.js": "0.1.0" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -943,9 +951,9 @@ "dev": true }, "base32.js": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.0.1.tgz", - "integrity": "sha1-0EVzalex9sE58MffQlGKhOkbsro=" + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz", + "integrity": "sha1-tYLexpPC8R6JPPBk7mrFthMaIgI=" }, "base64-js": { "version": "1.3.1", @@ -978,9 +986,9 @@ "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" }, "boolean": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", - "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz", + "integrity": "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==", "dev": true, "optional": true }, @@ -1427,9 +1435,9 @@ "dev": true }, "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", + "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==", "dev": true, "optional": true }, @@ -1631,9 +1639,9 @@ } }, "electron": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/electron/-/electron-11.0.3.tgz", - "integrity": "sha512-nNfbLi7Q1xfJXOEO2adck5TS6asY4Jxc332E4Te8XfQ9hcaC3GiCdeEqk9FndNCwxhJA5Lr9jfSGRTwWebFa/w==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-11.1.0.tgz", + "integrity": "sha512-RFAhR/852VMaRd9NSe7jprwSoG9dLc6u1GwnqRWg+/3cy/8Zrwt1Betw1lXiZH7hGuB9K2cqju83Xv5Pq5ZSGA==", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -1812,13 +1820,21 @@ } }, "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, "universalify": { @@ -1830,9 +1846,9 @@ } }, "electron-osx-sign": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.17.tgz", - "integrity": "sha512-wUJPmZJQCs1zgdlQgeIpRcvrf7M5/COQaOV68Va1J/SgmWx5KL2otgg+fAae7luw6qz9R8Gvu/Qpe9tAOu/3xQ==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz", + "integrity": "sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==", "dev": true, "requires": { "bluebird": "^3.5.0", @@ -1861,16 +1877,16 @@ } }, "electron-packager": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.1.0.tgz", - "integrity": "sha512-THNm4bz1DfvR9f0g51+NjuAYELflM8+1vhQ/iv/G8vyZNKzSMuFd5doobngQKq3rRsLdPNZVnGqDdgS884d7Og==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.2.0.tgz", + "integrity": "sha512-BaklTBRQy1JTijR3hi8XxHf/uo76rHbDCNM/eQHSblzE9C0NoNfOe86nPxB7y1u2jwlqoEJ4zFiHpTFioKGGRA==", "dev": true, "requires": { "@electron/get": "^1.6.0", "asar": "^3.0.0", "debug": "^4.0.1", "electron-notarize": "^1.0.0", - "electron-osx-sign": "^0.4.11", + "electron-osx-sign": "^0.5.0", "extract-zip": "^2.0.0", "filenamify": "^4.1.0", "fs-extra": "^9.0.0", @@ -1882,7 +1898,7 @@ "rcedit": "^2.0.0", "resolve": "^1.1.6", "semver": "^7.1.3", - "yargs-parser": "^19.0.1" + "yargs-parser": "^20.0.0" }, "dependencies": { "extract-zip": { @@ -1919,13 +1935,21 @@ } }, "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, "universalify": { @@ -3235,9 +3259,9 @@ } }, "eslint-plugin-prettier": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.2.0.tgz", - "integrity": "sha512-kOUSJnFjAUFKwVxuzy6sA5yyMx6+o9ino4gCdShzBNx4eyFRudWRYKCFolKjoM40PEiuU6Cn7wBLfq3WsGg7qg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.0.tgz", + "integrity": "sha512-tMTwO8iUWlSRZIwS9k7/E4vrTsfvsrcM5p1eftyuqWH25nKsz/o6/54I7jwQ/3zobISyC7wMy9ZsFwgTxOcOpQ==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" @@ -3249,6 +3273,12 @@ "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", "dev": true }, + "eslint-plugin-standard": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz", + "integrity": "sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg==", + "dev": true + }, "eslint-rule-composer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", @@ -3495,9 +3525,9 @@ "dev": true }, "filenamify": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.1.0.tgz", - "integrity": "sha512-KQV/uJDI9VQgN7sHH1Zbk6+42cD6mnQ2HONzkXUfPJ+K2FC8GZ1dpewbbHw0Sz8Tf5k3EVdHVayM4DoAwWlmtg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.2.0.tgz", + "integrity": "sha512-pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA==", "dev": true, "requires": { "filename-reserved-regex": "^2.0.0", @@ -3594,9 +3624,9 @@ }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -3903,9 +3933,9 @@ "dev": true }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, "inquirer": { @@ -4867,9 +4897,9 @@ } }, "rcedit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-2.2.0.tgz", - "integrity": "sha512-dhFtYmQS+V8qQIANyX6zDK+sO50ayDePKApi46ZPK8I6QeyyTDD6LManMa7a3p3c9mLM4zi9QBP41pfhQ9p7Sg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-2.3.0.tgz", + "integrity": "sha512-h1gNEl9Oai1oijwyJ1WYqYSXTStHnOcv1KYljg/8WM4NAg3H1KBK3azIaKkQ1WQl+d7PoJpcBMscPfLXVKgCLQ==", "dev": true }, "read-config-file": { @@ -5004,13 +5034,13 @@ } }, "roarr": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", - "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", "dev": true, "optional": true, "requires": { - "boolean": "^3.0.0", + "boolean": "^3.0.1", "detect-node": "^2.0.4", "globalthis": "^1.0.1", "json-stringify-safe": "^5.0.1", @@ -5184,14 +5214,6 @@ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, - "speakeasy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/speakeasy/-/speakeasy-2.0.0.tgz", - "integrity": "sha1-hckaBxsJpcuGQlkNmDVmFl9XYTo=", - "requires": { - "base32.js": "0.0.1" - } - }, "sprintf-js": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", @@ -5890,9 +5912,9 @@ } }, "yargs-parser": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-19.0.1.tgz", - "integrity": "sha512-2UuJKZmPN9S9/0s3FSCG3aNUSyC/qz56oJsMZG0NV2B44QxTXaNySp4xXW10CizmUs0DXgPY0y114dOGLvtYHg==", + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true }, "yauzl": { diff --git a/package.json b/package.json index bf935d2e..e097911f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "authme", - "version": "2.1.0", + "version": "2.1.1", "description": "A simple 2FA app for desktop built with Electron and Node.js.", "main": "main.js", "scripts": { @@ -42,27 +42,28 @@ "author": "Levminer", "license": "MIT", "devDependencies": { - "electron": "^11.0.3", + "electron": "^11.1.0", "electron-builder": "^22.9.1", - "electron-packager": "^15.0.0", + "electron-packager": "^15.2.0", "eslint": "^7.15.0", "eslint-config-node": "^4.1.0", "eslint-config-prettier": "^7.0.0", "eslint-config-promise": "^2.0.2", "eslint-config-standard": "^16.0.2", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.2.0", + "eslint-plugin-prettier": "^3.3.0", "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-standard": "^5.0.0", "prettier": "^2.2.1" }, "dependencies": { + "@levminer/speakeasy": "^1.0.3", "bcryptjs": "^2.4.3", "create-desktop-shortcuts": "^1.2.0", "cryptr": "^6.0.2", "jimp": "^0.16.1", "node-fetch": "^2.6.1", "qrcode": "^1.4.4", - "qrcode-reader": "^1.0.4", - "speakeasy": "^2.0.0" + "qrcode-reader": "^1.0.4" } }