Welcome to Authme!
Choose how you want to use Authme. Your 2FA codes are encrypted either way.
-
+
Require password
You have to type in your password every time you launch Authme.
-
-
+
diff --git a/app/settings/src/css/index.css b/app/settings/index.css
similarity index 100%
rename from app/settings/src/css/index.css
rename to app/settings/index.css
diff --git a/app/settings/index.html b/app/settings/index.html
index cc2c40a2..56d7b25b 100644
--- a/app/settings/index.html
+++ b/app/settings/index.html
@@ -6,9 +6,9 @@
+
-
@@ -214,12 +214,6 @@
You can view the logs for debugging. You can view all the logs in t
Latest log
-
-
- Logs folder
-
Clear data
@@ -311,12 +305,6 @@ You can use these shortcuts everywhere, even outside the applicatio
-
- Shortcuts
- You can use these shortcuts inside the application only. Use english characters only, during editing shortcuts don't work.
-
-
-
diff --git a/app/settings/index.js b/app/settings/index.js
index 46e7dc6a..28a7196b 100644
--- a/app/settings/index.js
+++ b/app/settings/index.js
@@ -725,13 +725,6 @@ const latestLog = () => {
ipc.send("logs")
}
-/**
- * Open logs folder
- */
-const logsFolder = () => {
- shell.openPath(path.join(folder_path, "logs"))
-}
-
/* Experimental docs */
const githubIssues = () => {
shell.openExternal("https://github.com/Levminer/authme/issues")
@@ -916,59 +909,6 @@ const buildNumber = async () => {
buildNumber()
-/**
- * Create shortcuts
- */
-const createShortcuts = () => {
- const names = lang.menu
-
- delete names.file
- delete names.hide_app
- delete names.view
- delete names.tools
- delete names.help
- delete names.about
-
- let i = 0
-
- for (const name in names) {
- const element = `
-
-
-
${names[name]}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- `
- const div = document.createElement("div")
- div.innerHTML = element
- document.querySelector(".shortcutsDiv").appendChild(div)
-
- i++
- }
-}
-
-createShortcuts()
-
/**
* Create global shortcuts
*/
@@ -1026,40 +966,10 @@ let svg_name
let btn_name
let id
-const hk0 = document.querySelector("#hk0_input")
-const hk1 = document.querySelector("#hk1_input")
-const hk2 = document.querySelector("#hk2_input")
-const hk3 = document.querySelector("#hk3_input")
-const hk4 = document.querySelector("#hk4_input")
-const hk5 = document.querySelector("#hk5_input")
-const hk6 = document.querySelector("#hk6_input")
-const hk7 = document.querySelector("#hk7_input")
-const hk8 = document.querySelector("#hk8_input")
-const hk9 = document.querySelector("#hk9_input")
-const hk10 = document.querySelector("#hk10_input")
-const hk11 = document.querySelector("#hk11_input")
-const hk12 = document.querySelector("#hk12_input")
-const hk13 = document.querySelector("#hk13_input")
-const hk14 = document.querySelector("#hk14_input")
const hk100 = document.querySelector("#hk100_input")
const hk101 = document.querySelector("#hk101_input")
const hk102 = document.querySelector("#hk102_input")
-hk0.value = settings.shortcuts.show
-hk1.value = settings.shortcuts.settings
-hk2.value = settings.shortcuts.exit
-hk3.value = settings.shortcuts.zoom_reset
-hk4.value = settings.shortcuts.zoom_in
-hk5.value = settings.shortcuts.zoom_out
-hk6.value = settings.shortcuts.edit
-hk7.value = settings.shortcuts.import
-hk8.value = settings.shortcuts.export
-hk9.value = settings.shortcuts.docs
-hk10.value = settings.shortcuts.release
-hk11.value = settings.shortcuts.support
-hk12.value = settings.shortcuts.licenses
-hk13.value = settings.shortcuts.update
-hk14.value = settings.shortcuts.info
hk100.value = settings.global_shortcuts.show
hk101.value = settings.global_shortcuts.settings
hk102.value = settings.global_shortcuts.exit
@@ -1151,84 +1061,6 @@ const editShortcut = (value) => {
}
switch (id) {
- case 0:
- const hk0 = document.querySelector("#hk0_input").value
-
- settings.shortcuts.show = hk0
- break
- case 1:
- const hk1 = document.querySelector("#hk1_input").value
-
- settings.shortcuts.settings = hk1
- break
- case 2:
- const hk2 = document.querySelector("#hk2_input").value
-
- settings.shortcuts.exit = hk2
- break
- case 3:
- const hk3 = document.querySelector("#hk3_input").value
-
- settings.shortcuts.zoom_reset = hk3
- break
- case 4:
- const hk4 = document.querySelector("#hk4_input").value
-
- settings.shortcuts.zoom_in = hk4
- break
- case 5:
- const hk5 = document.querySelector("#hk5_input").value
-
- settings.shortcuts.zoom_out = hk5
- break
-
- case 6:
- const hk6 = document.querySelector("#hk6_input").value
-
- settings.shortcuts.edit = hk6
- break
- case 7:
- const hk7 = document.querySelector("#hk7_input").value
-
- settings.shortcuts.import = hk7
- break
- case 8:
- const hk8 = document.querySelector("#hk8_input").value
-
- settings.shortcuts.export = hk8
- break
- case 9:
- const hk9 = document.querySelector("#hk9_input").value
-
- settings.shortcuts.docs = hk9
- break
- case 10:
- const hk10 = document.querySelector("#hk10_input").value
-
- settings.shortcuts.release = hk10
- break
- case 11:
- const hk11 = document.querySelector("#hk11_input").value
-
- settings.shortcuts.support = hk11
- break
- case 12:
- const hk12 = document.querySelector("#hk12_input").value
-
- settings.shortcuts.licenses = hk12
- break
- case 13:
- const hk13 = document.querySelector("#hk13_input").value
-
- settings.shortcuts.update = hk13
- break
- case 14:
- const hk14 = document.querySelector("#hk14_input").value
-
- settings.shortcuts.info = hk14
- break
-
- // global shortcuts
case 100:
const hk100 = document.querySelector("#hk100_input").value
@@ -1280,84 +1112,6 @@ const deleteShortcut = (value) => {
}, 500)
switch (id) {
- case 0:
- const hk0 = document.querySelector("#hk0_input").value
-
- settings.shortcuts.show = hk0
- break
- case 1:
- const hk1 = document.querySelector("#hk1_input").value
-
- settings.shortcuts.settings = hk1
- break
- case 2:
- const hk2 = document.querySelector("#hk2_input").value
-
- settings.shortcuts.exit = hk2
- break
- case 3:
- const hk3 = document.querySelector("#hk3_input").value
-
- settings.shortcuts.zoom_reset = hk3
- break
- case 4:
- const hk4 = document.querySelector("#hk4_input").value
-
- settings.shortcuts.zoom_in = hk4
- break
- case 5:
- const hk5 = document.querySelector("#hk5_input").value
-
- settings.shortcuts.zoom_out = hk5
- break
-
- case 6:
- const hk6 = document.querySelector("#hk6_input").value
-
- settings.shortcuts.edit = hk6
- break
- case 7:
- const hk7 = document.querySelector("#hk7_input").value
-
- settings.shortcuts.import = hk7
- break
- case 8:
- const hk8 = document.querySelector("#hk8_input").value
-
- settings.shortcuts.export = hk8
- break
- case 9:
- const hk9 = document.querySelector("#hk9_input").value
-
- settings.shortcuts.docs = hk9
- break
- case 10:
- const hk10 = document.querySelector("#hk10_input").value
-
- settings.shortcuts.release = hk10
- break
- case 11:
- const hk11 = document.querySelector("#hk11_input").value
-
- settings.shortcuts.support = hk11
- break
- case 12:
- const hk12 = document.querySelector("#hk12_input").value
-
- settings.shortcuts.licenses = hk12
- break
- case 13:
- const hk13 = document.querySelector("#hk13_input").value
-
- settings.shortcuts.update = hk13
- break
- case 14:
- const hk14 = document.querySelector("#hk14_input").value
-
- settings.shortcuts.info = hk14
- break
-
- // global shortcuts
case 100:
const hk100 = document.querySelector("#hk100_input").value
@@ -1403,23 +1157,6 @@ const resetShortcut = (value) => {
}, 500)
const default_shortcuts = {
- shortcuts: {
- show: "CmdOrCtrl+q",
- settings: "CmdOrCtrl+s",
- exit: "CmdOrCtrl+w",
- zoom_reset: "CmdOrCtrl+0",
- zoom_in: "CmdOrCtrl+1",
- zoom_out: "CmdOrCtrl+2",
- edit: "CmdOrCtrl+t",
- import: "CmdOrCtrl+i",
- export: "CmdOrCtrl+e",
- release: "CmdOrCtrl+n",
- support: "CmdOrCtrl+p",
- docs: "CmdOrCtrl+d",
- licenses: "CmdOrCtrl+l",
- update: "CmdOrCtrl+u",
- info: "CmdOrCtrl+o",
- },
global_shortcuts: {
show: "CmdOrCtrl+Shift+a",
settings: "CmdOrCtrl+Shift+s",
@@ -1428,84 +1165,6 @@ const resetShortcut = (value) => {
}
switch (id) {
- case 0:
- document.querySelector("#hk0_input").value = default_shortcuts.shortcuts.show
-
- settings.shortcuts.show = default_shortcuts.shortcuts.show
- break
- case 1:
- document.querySelector("#hk1_input").value = default_shortcuts.shortcuts.settings
-
- settings.shortcuts.settings = default_shortcuts.shortcuts.settings
- break
- case 2:
- document.querySelector("#hk2_input").value = default_shortcuts.shortcuts.exit
-
- settings.shortcuts.exit = default_shortcuts.shortcuts.exit
- break
- case 3:
- document.querySelector("#hk3_input").value = default_shortcuts.shortcuts.zoom_reset
-
- settings.shortcuts.zoom_reset = default_shortcuts.shortcuts.zoom_reset
- break
- case 4:
- document.querySelector("#hk4_input").value = default_shortcuts.shortcuts.zoom_in
-
- settings.shortcuts.zoom_in = default_shortcuts.shortcuts.zoom_in
- break
- case 5:
- document.querySelector("#hk5_input").value = default_shortcuts.shortcuts.zoom_out
-
- settings.shortcuts.zoom_out = default_shortcuts.shortcuts.zoom_out
- break
-
- case 6:
- document.querySelector("#hk6_input").value = default_shortcuts.shortcuts.edit
-
- settings.shortcuts.edit = default_shortcuts.shortcuts.edit
- break
- case 7:
- document.querySelector("#hk7_input").value = default_shortcuts.shortcuts.import
-
- settings.shortcuts.import = default_shortcuts.shortcuts.import
- break
- case 8:
- document.querySelector("#hk8_input").value = default_shortcuts.shortcuts.export
-
- settings.shortcuts.export = default_shortcuts.shortcuts.export
- break
- case 9:
- document.querySelector("#hk9_input").value = default_shortcuts.shortcuts.docs
-
- settings.shortcuts.docs = default_shortcuts.shortcuts.docs
- break
- case 10:
- document.querySelector("#hk10_input").value = default_shortcuts.shortcuts.release
-
- settings.shortcuts.release = default_shortcuts.shortcuts.release
- break
- case 11:
- document.querySelector("#hk11_input").value = default_shortcuts.shortcuts.support
-
- settings.shortcuts.support = default_shortcuts.shortcuts.support
- break
- case 12:
- document.querySelector("#hk12_input").value = default_shortcuts.shortcuts.licenses
-
- settings.shortcuts.licenses = default_shortcuts.shortcuts.licenses
- break
- case 13:
- document.querySelector("#hk13_input").value = default_shortcuts.shortcuts.update
-
- settings.shortcuts.update = default_shortcuts.shortcuts.update
- break
- case 14:
- document.querySelector("#hk14_input").value = default_shortcuts.shortcuts.info
-
- settings.shortcuts.info = default_shortcuts.shortcuts.info
- break
-
- // global shortcuts
case 100:
document.querySelector("#hk100_input").value = default_shortcuts.global_shortcuts.show
diff --git a/crowdin.yml b/crowdin.yml
deleted file mode 100644
index 26bf5704..00000000
--- a/crowdin.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-files:
- - source: /languages/en.js
- translation: /languages/%two_letters_code%.js
diff --git a/img/traymenu.png b/img/traymenu.png
deleted file mode 100644
index 07ad38372baf20bd6538d26bf095af3361795468..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 461
zcmV;;0W$uHP)
Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T2qFVxmf-ljUJ&-BlR@Bq;pLo+;
zYx2XV@m&6M&(%MwM?RA>-^@?T7xTp2GiPNpZ%o6`8L;-k+%Se<&X_(^AD;|7>IxSY
zMt(T_RLb)_6^5Z23OS!LBE3$3-)TogL2#K*U91dwRnaF*)TuPJm
zdfnFqUP)MY!9Y*d)8vtncwS1M;QPKz634Nw)yy3uLOcyaADCo1o$6;yeiX8ecp8Qa
zd@$FHA!PfNxpW+ijh+9QPlb3QVcowoUfA)>2PyRngDw|7#eTh900000NkvXXu0mjf
DcIe1J
diff --git a/languages/en.js b/languages/en.js
index de214c8a..e40e2354 100644
--- a/languages/en.js
+++ b/languages/en.js
@@ -6,16 +6,16 @@ module.exports = {
},
"tray": {
- "show_app": "Show App",
- "hide_app": "Hide App",
+ "show_app": "Show Authme",
+ "hide_app": "Hide Authme",
"settings": "Settings",
- "exit_app": "Exit App",
+ "exit_app": "Exit Authme",
},
"menu": {
"file": "File",
- "show_app": "Show App",
- "hide_app": "Hide App",
+ "show_app": "Show Authme",
+ "hide_app": "Hide Authme",
"settings": "Settings",
"exit": "Exit",
"view": "View",
@@ -119,7 +119,7 @@ module.exports = {
"New Authme version available. Starting the update...",
"Restart",
"Release notes",
- "Enjoying Authme?",
+ "Enjoying Authme? Please give Authme a rating.",
"Rate on Microsoft Store",
"Star on GitHub",
"Provide feedback",
@@ -181,7 +181,6 @@ module.exports = {
"Logs",
"You can view the logs for debugging. You can view all the logs in the settings folder.",
"Latest log",
- "Logs folder",
"Clear data",
"Clear password, 2FA codes and all other settings. Be careful.",
"Clear data",
@@ -196,8 +195,6 @@ module.exports = {
"Reset the search bar after you copied a code. Useful if you copy and search for a lot of codes.",
"Global shortcuts",
"You can use these shortcuts everywhere, even outside the application. Use english characters only, during editing shortcuts don't work.",
- "Shortcuts",
- "You can use these shortcuts inside the application only. Use english characters only, during editing shortcuts don't work.",
],
"settings_dialog": {
diff --git a/languages/hu.js b/languages/hu.js
index 55f14bb4..f36664a8 100644
--- a/languages/hu.js
+++ b/languages/hu.js
@@ -119,7 +119,7 @@ module.exports = {
"Új Authme verzió elérhető. Frissítés kezdése...",
"Újraindítás",
"Újdonságok",
- "Tetszik az Authme?",
+ "Tetszik az Authme? Kérlek értékeld!",
"Értékelés a Microsoft Store-on",
"Csillagozás a GitHub-on",
"Visszajelzés",
@@ -181,7 +181,6 @@ module.exports = {
"Logok",
"Megnézheted a logokat ha hibákat tapasztalsz. Az összes logot a log mappába találod.",
"Legújabb log",
- "Log mappa",
"Adatok törlése",
"A jelszavak, a 2FA kódjaid, valamint a beállításaid törlődnek. Légy óvatos.",
"Adatok törlése",
@@ -196,8 +195,6 @@ module.exports = {
"A keresőmező törlése keresés után. Hasznos ha sok kódot másolsz.",
"Globális gyorsgombok",
"Ezeket a gyorsgombokat bárhol hasznáhatod, még az alkalmazáson kívűl is. Csak angol karaktereket használj, szerkesztés közben a gyorsgombok nem működnek.",
- "Gyorsgombok",
- "Ezeket a gyorsgombokat csak az alkalmazáson belül használhatod. Csak angol karaktereket használj, szerkesztés közben a gyorsgombok nem működnek.",
],
"settings_dialog": {
@@ -263,9 +260,9 @@ module.exports = {
"Megerősítés",
"Exportált kódok mentése",
"El tudod mententi a 2FA kódjaidat hogy máshol használd azokat, vagy egy biztonsági mentés mindig jó ötlet.",
- ".authme fájl",
+ "Export .authme fájl",
"Ideális ha az Authme-be vagy más Authme alkalmzásba akarsz importálni.",
- ".html fájl",
+ "Export .html fájl",
"Ideális ha be akarod olvasni a QR-kódokat vagy biztonsági mentésnek.",
],
diff --git a/lib/aes.js b/lib/aes.js
index e62dab68..814c6ccf 100644
--- a/lib/aes.js
+++ b/lib/aes.js
@@ -46,6 +46,7 @@ module.exports = {
encrypt: (text, key) => {
const iv = crypto.randomBytes(ALGORITHM.IV_BYTE_LEN)
const cipher = crypto.createCipheriv(ALGORITHM.BLOCK_CIPHER, key, iv, {
+ // @ts-ignore
authTagLength: ALGORITHM.AUTH_TAG_BYTE_LEN,
})
let encryptedMessage = cipher.update(text)
@@ -64,6 +65,7 @@ module.exports = {
const iv = text.slice(0, 12)
const encryptedMessage = text.slice(12, -16)
const decipher = crypto.createDecipheriv(ALGORITHM.BLOCK_CIPHER, key, iv, {
+ // @ts-ignore
authTagLength: ALGORITHM.AUTH_TAG_BYTE_LEN,
})
decipher.setAuthTag(authTag)
diff --git a/lib/logger/main/index.js b/lib/logger/main/index.js
index 45591db0..4c969901 100644
--- a/lib/logger/main/index.js
+++ b/lib/logger/main/index.js
@@ -1,3 +1,4 @@
+// @ts-nocheck
const fs = require("fs")
const path = require("path")
@@ -27,7 +28,6 @@ module.exports = logger = {
* Writes a log to the console
* @param {string} message
* @param {string|object} log
- * @return {string} log
*/
log: (message, log) => {
if (typeof log === "object") {
@@ -56,7 +56,6 @@ module.exports = logger = {
* @param {string} id
* @param {string} message
* @param {string|object} log
- * @return {string} log
*/
rendererLog: (id, message, log) => {
if (typeof log === "object") {
@@ -84,7 +83,6 @@ module.exports = logger = {
* Writes a warn to the console
* @param {string} message
* @param {string|object} warn
- * @return {string} warn
*/
warn: (message, warn) => {
if (typeof warn === "object") {
@@ -110,10 +108,9 @@ module.exports = logger = {
/**
* Writes a warn to the console
- * @param {string} id
+ * @param {string} id
* @param {string} message
* @param {string|object} warn
- * @return {string} warn
*/
rendererWarn: (id, message, warn) => {
if (typeof warn === "object") {
@@ -141,7 +138,6 @@ module.exports = logger = {
* Writes an error to the console
* @param {string} message
* @param {string|object} error
- * @return {string} error
*/
error: (message, error) => {
if (typeof error === "object") {
@@ -170,7 +166,6 @@ module.exports = logger = {
* @param {string} id
* @param {string} message
* @param {string|object} error
- * @return {string} error
*/
rendererError: (id, message, error) => {
if (typeof error === "object") {
@@ -206,13 +201,7 @@ module.exports = logger = {
fs.mkdirSync(path.join(file, "logs"))
}
- fs.writeFileSync(path.join(path.join(file, "logs"), `${name}-${time}.log`), "", (err) => {
- if (err) {
- return console.log(`error creating log ${err}`)
- } else {
- return console.log("log created")
- }
- })
+ fs.writeFileSync(path.join(path.join(file, "logs"), `${name}-${time}.log`), "")
file_name = `${name}-${time}.log`
file_path = path.join(file, "logs")
@@ -223,13 +212,7 @@ module.exports = logger = {
* @param {string} message
*/
writeFile: (message) => {
- fs.appendFileSync(path.join(file_path, file_name), message, (err) => {
- if (err) {
- return console.log(`error creating log ${err}`)
- } else {
- return console.log("log created")
- }
- })
+ fs.appendFileSync(path.join(file_path, file_name), message)
},
/**
diff --git a/lib/logger/renderer/index.js b/lib/logger/renderer/index.js
index 8cd94f71..5c939504 100644
--- a/lib/logger/renderer/index.js
+++ b/lib/logger/renderer/index.js
@@ -39,7 +39,6 @@ module.exports = {
/**
* Get window name
* @param {string} name
- * @return {string} window name
*/
getWindow: (name) => {
window = name
diff --git a/lib/types.d.ts b/lib/types.d.ts
index 9e064d16..f2dcc8f3 100644
--- a/lib/types.d.ts
+++ b/lib/types.d.ts
@@ -1,3 +1,95 @@
+/* Authme Import file structure */
+interface LibImportFile {
+ names: string[]
+ secrets: string[]
+ issuers: string[]
+ types?: string[]
+}
+
+interface LibAuthmeFile {
+ role: "codes" | "import" | "export"
+ encrypted: boolean
+ codes: string
+ date: string
+ version: 3
+}
+
+interface LibStorage {
+ require_password: boolean
+ password: string
+ key: string
+ issuers: string[]
+ settings_page: string
+}
+
+interface LibSettings {
+ info: {
+ version: string
+ build: string
+ date: string
+ }
+
+ settings: {
+ launch_on_startup: boolean
+ close_to_tray: boolean
+ codes_description: boolean
+ reset_after_copy: boolean
+ search_history: boolean
+ hardware_acceleration: boolean
+ analytics: boolean
+ language: null | string
+ sort: null | number
+ search_filter: {
+ name: boolean
+ description: boolean
+ }
+ }
+
+ security: {
+ require_password: null | boolean
+ password: null | string
+ key: null | string
+ }
+
+ statistics: {
+ opens: number
+ rated: null | boolean
+ feedback: null | boolean
+ }
+
+ search_history: {
+ latest: null | string
+ }
+
+ global_shortcuts: {
+ show: string
+ settings: string
+ exit: string
+ }
+
+ shortcuts: {
+ show: string
+ settings: string
+ exit: string
+ zoom_reset: string
+ zoom_in: string
+ zoom_out: string
+ edit: string
+ import: string
+ export: string
+ release: string
+ support: string
+ docs: string
+ licenses: string
+ update: string
+ info: string
+ }
+
+ window: Electron.Rectangle
+
+ experimental?: {}
+}
+
/** Query selector element types */
interface Element {
/** Element styles */
diff --git a/lib/types.js b/lib/types.js
deleted file mode 100644
index 231bee97..00000000
--- a/lib/types.js
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Settings structure
- * @typedef {object} LibSettings
- *
- * @property {object} info - Version
- * @property {string} info.version - Authme version number
- * @property {string} info.build - Authme build number
- * @property {string} info.date - Authme build date
- *
- * @property {object} settings - Settings
- * @property {boolean} settings.launch_on_startup - Launch On startup
- * @property {boolean} settings.close_to_tray - Close app to tray
- * @property {boolean} settings.codes_description - Show 2FA names
- * @property {boolean} settings.reset_after_copy - Reset searchbar after copy
- * @property {boolean} settings.search_history - Save search results
- * @property {boolean} settings.hardware_acceleration - Disable hardware acceleration
- * @property {object} settings.search_filter - Filter search results
- * @property {boolean} settings.search_filter.name - Filter for names
- * @property {boolean} settings.search_filter.description - Filter for description
- * @property {null|string} settings.language - Change language
- * @property {null|number} settings.sort - Sort codes
- * @property {boolean} settings.analytics - Optional analytics
- *
- * @property {object} [experimental] - Experimental
- *
- * @property {object} security - Security
- * @property {null|boolean} security.require_password - Requires password
- * @property {null|string} security.password - Password
- * @property {null|string} security.key - Encryption key
- *
- * @property {object} shortcuts - Shortcuts
- * @property {string} shortcuts.show - Show app
- * @property {string} shortcuts.settings- Show settings
- * @property {string} shortcuts.exit - Exit app
- * @property {string} shortcuts.zoom_reset - Reset zoom
- * @property {string} shortcuts.zoom_in - Zoom in
- * @property {string} shortcuts.zoom_out - Zoom out
- * @property {string} shortcuts.edit - Show edit
- * @property {string} shortcuts.import - Show import
- * @property {string} shortcuts.export - Show export
- * @property {string} shortcuts.release - Release notes
- * @property {string} shortcuts.support - Support Authme
- * @property {string} shortcuts.docs - Authme Docs
- * @property {string} shortcuts.licenses - Show licenses
- * @property {string} shortcuts.update - Update Authme
- * @property {string} shortcuts.info - About Authme
- *
- * @property {object} global_shortcuts - Global Shortcuts
- * @property {string} global_shortcuts.show - Show app
- * @property {string} global_shortcuts.settings - Show settings
- * @property {string} global_shortcuts.exit - Exit app
- *
- * @property {object} search_history - Search history
- * @property {null|string} search_history.latest - Exit app
- *
- * @property {object} statistics - Statistics
- * @property {null|number} statistics.opens - Number of opens
- * @property {null|boolean} statistics.rated - Rated Authme
- * @property {null|boolean} statistics.feedback - Sent feedback
- *
- * @property {import("electron").Rectangle} window - Windows bounds
- */
-
-/**
- * Storage structure
- * @typedef {object} LibStorage
- * @property {boolean} require_password - If password is required at start
- * @property {string} password - Saved password
- * @property {string} key - Encryption key used to encrypt codes
- * @property {string[]} issuers - List of issuers
- * @property {string} settings_page - Current settings page
- */
-
-/**
- * Authme import file structure
- * @typedef {object} LibImportFile
- * @property {string[]} names - Names array
- * @property {string[]} secrets - Secrets array
- * @property {string[]} issuers - Issuers array
- * @property {string[]} types - Types array
- */
-
-/**
- * .authme file structure
- * @typedef {object} LibAuthmeFile
- * @property {string} role - Role of the file (codes, import, export, rollback, backup)
- * @property {boolean} encrypted - Is the file encrypted
- * @property {string} codes - Base64 encoded string
- * @property {string} date - Date when the file created
- * @property {number} version - Indicates version (3)
- */
diff --git a/main.js b/main.js
index c396173d..c6ff4f9d 100644
--- a/main.js
+++ b/main.js
@@ -17,11 +17,11 @@ process.on("uncaughtException", async (error) => {
logger.error("Error on load", stack.clean(error.stack))
- if (app.isPackaged === false) {
+ if (app.isPackaged === true) {
dialog.showErrorBox("Authme", `Authme crashed while starting, crash report sent. \n\nPlease restart Authme, if you want report this open a GitHub Issue with a screenshot of this error (https://github.com/Levminer/authme/issues). \n\n${stack.clean(error.stack)}`)
try {
- await axios.post("https://api.levminer.com/api/v1/authme/analytics/post", {
+ await axios.post("https://analytics.levminer.com/api/v1/authme/analytics/post", {
type: "load_crash",
version: app.getVersion(),
build: number,
@@ -41,7 +41,7 @@ process.on("uncaughtException", async (error) => {
* Windows
*/
let /** @type{BrowserWindow} */ window_security
-let /** @type{BrowserWindow} */ window_application
+let /** @type{BrowserWindow} */ window_codes
let /** @type{BrowserWindow} */ window_settings
let /** @type{BrowserWindow} */ window_tools
@@ -50,7 +50,7 @@ let /** @type{BrowserWindow} */ window_tools
*/
let landing_shown = false
let confirm_shown = false
-let application_shown = false
+let codes_shown = false
let settings_shown = false
let tools_shown = false
@@ -61,9 +61,9 @@ let authenticated = false
let shortcuts = false
let update_seen = false
let manual_update = false
-let password_buffer = null
-let tray = null
-let menu = null
+let /** @type{Buffer} */ password_buffer = null
+let /** @type{Tray} */ tray = null
+let /** @type{Menu} */ menu = null
let lang = en
/**
@@ -177,8 +177,8 @@ if (dev === false) {
app.on("second-instance", () => {
logger.log("Already running, focusing window")
- window_application.maximize()
- window_application.show()
+ window_codes.maximize()
+ window_codes.show()
})
}
}
@@ -316,19 +316,19 @@ if (settings.settings.hardware_acceleration === false) {
*/
const showAppFromTray = () => {
const toggle = () => {
- if (application_shown === false) {
- window_application.maximize()
- window_application.show()
+ if (codes_shown === false) {
+ window_codes.maximize()
+ window_codes.show()
- application_shown = true
+ codes_shown = true
logger.log("App shown from tray")
} else {
- window_application.hide()
+ window_codes.hide()
window_settings.hide()
window_tools.hide()
- application_shown = false
+ codes_shown = false
settings_shown = false
tools_shown = false
@@ -346,12 +346,12 @@ const showAppFromTray = () => {
window_security.show()
confirm_shown = true
- application_shown = true
+ codes_shown = true
} else {
window_security.hide()
confirm_shown = false
- application_shown = false
+ codes_shown = false
}
}
@@ -416,7 +416,7 @@ const saveWindowPosition = () => {
const crashReport = async (crash_type, error) => {
if (dev === false) {
try {
- await axios.post("https://api.levminer.com/api/v1/authme/analytics/post", {
+ await axios.post("https://analytics.levminer.com/api/v1/authme/analytics/post", {
type: crash_type,
version: authme_version,
build: build_number,
@@ -474,7 +474,7 @@ const createWindows = () => {
* Set window bounds
*/
const positionWindow = () => {
- settings.window = window_application.getBounds()
+ settings.window = window_codes.getBounds()
window_settings.setBounds(settings.window)
window_tools.setBounds(settings.window)
@@ -485,6 +485,7 @@ const createWindows = () => {
*/
window_security = new BrowserWindow({
title: `Authme (${authme_version})`,
+ icon: path.join(__dirname, "img/icon.png"),
width: 1900,
height: 1000,
minWidth: 1000,
@@ -505,8 +506,9 @@ const createWindows = () => {
},
})
- window_application = new BrowserWindow({
+ window_codes = new BrowserWindow({
title: `Authme (${authme_version})`,
+ icon: path.join(__dirname, "img/icon.png"),
x: settings.window.x,
y: settings.window.y,
width: 1900,
@@ -531,6 +533,7 @@ const createWindows = () => {
window_settings = new BrowserWindow({
title: "Authme (Settings)",
+ icon: path.join(__dirname, "img/icon.png"),
x: settings.window.x,
y: settings.window.y,
width: 1900,
@@ -580,18 +583,18 @@ const createWindows = () => {
/**
* Window moved
*/
- window_application.on("move", () => {
+ window_codes.on("move", () => {
positionWindow()
})
// Enable remote module
remote.enable(window_security.webContents)
- remote.enable(window_application.webContents)
+ remote.enable(window_codes.webContents)
remote.enable(window_settings.webContents)
remote.enable(window_tools.webContents)
// Load window files
- window_application.loadFile("./app/application/index.html")
+ window_codes.loadFile("./app/codes/index.html")
window_settings.loadFile("./app/settings/index.html")
window_tools.loadFile("./app/import/index.html")
@@ -612,7 +615,7 @@ const createWindows = () => {
logger.log("Application exited from landing window")
})
- window_application.on("close", (event) => {
+ window_codes.on("close", (event) => {
saveWindowPosition()
if (dev === true) {
@@ -629,9 +632,9 @@ const createWindows = () => {
} else {
event.preventDefault()
- window_application.hide()
+ window_codes.hide()
- application_shown = false
+ codes_shown = false
createTray()
createMenu()
@@ -673,20 +676,20 @@ const createWindows = () => {
* Disables window capture by default
*/
window_security.setContentProtection(true)
- window_application.setContentProtection(true)
+ window_codes.setContentProtection(true)
window_settings.setContentProtection(true)
window_tools.setContentProtection(true)
/**
* Event when application window opens
*/
- window_application.on("show", () => {
+ window_codes.on("show", () => {
const api = () => {
axios
.get("https://api.levminer.com/api/v1/authme/releases")
.then((res) => {
if (res.data.tag_name > authme_version && res.data.tag_name != undefined && res.data.prerelease != true) {
- window_application.webContents.executeJavaScript("showUpdate()")
+ window_codes.webContents.executeJavaScript("showUpdate()")
logger.log("Manual update found!")
} else {
@@ -709,8 +712,8 @@ const createWindows = () => {
/**
* Show animations and focus searchbar on windows focus
*/
- window_application.on("focus", () => {
- window_application.webContents.executeJavaScript("focusSearch()")
+ window_codes.on("focus", () => {
+ window_codes.webContents.executeJavaScript("focusSearch()")
})
/**
@@ -740,7 +743,7 @@ const createWindows = () => {
autoUpdater.on("update-available", () => {
logger.log("Auto update available")
- window_application.webContents.executeJavaScript("updateAvailable()")
+ window_codes.webContents.executeJavaScript("updateAvailable()")
})
autoUpdater.on("update-not-available", () => {
@@ -764,21 +767,23 @@ const createWindows = () => {
autoUpdater.on("update-downloaded", () => {
logger.log("Update downloaded")
- window_application.webContents.executeJavaScript("updateDownloaded()")
+ window_codes.webContents.executeJavaScript("updateDownloaded()")
})
autoUpdater.on("error", (error) => {
logger.error("Error during auto update", error.stack)
- dialog.showMessageBox({
- title: "Authme",
- buttons: [lang.button.close],
- defaultId: 0,
- cancelId: 1,
- noLink: true,
- type: "error",
- message: `${lang.dialog.update_error} \n\n${error.stack}`,
- })
+ if (manual_update === true) {
+ dialog.showMessageBox({
+ title: "Authme",
+ buttons: [lang.button.close],
+ defaultId: 0,
+ cancelId: 1,
+ noLink: true,
+ type: "error",
+ message: `${lang.dialog.update_error} \n\n${error.stack}`,
+ })
+ }
})
autoUpdater.on("download-progress", (progress) => {
@@ -789,7 +794,7 @@ const createWindows = () => {
logger.log(`Downloading update: ${download_percent}% - ${download_speed}MB/s (${download_transferred}MB/${download_total}MB)`)
- window_application.webContents.send("updateInfo", {
+ window_codes.webContents.send("updateInfo", {
download_percent,
download_speed,
download_transferred,
@@ -836,21 +841,21 @@ const createWindows = () => {
saveSettings()
const openInfo = () => {
- window_application.on("show", () => {
- window_application.webContents.executeJavaScript("showInfo()")
+ window_codes.on("show", () => {
+ window_codes.webContents.executeJavaScript("showInfo()")
})
}
if (settings.statistics.rated === true && settings.statistics.feedback === true) {
- if (opens % 100 === 0) {
+ if (opens > 100) {
openInfo()
}
} else if (settings.statistics.rated === true || settings.statistics.feedback === true) {
- if (opens % 50 === 0) {
+ if (opens > 50) {
openInfo()
}
} else {
- if (opens % 15 === 0) {
+ if (opens > 15) {
openInfo()
}
}
@@ -928,23 +933,23 @@ app.whenReady()
}
if (settings.security.require_password === false) {
- window_application.on("ready-to-show", () => {
+ window_codes.on("ready-to-show", () => {
if (authenticated === false) {
settings = JSON.parse(fs.readFileSync(path.join(folder_path, "settings", "settings.json"), "utf-8"))
setTimeout(() => {
if (args[1] !== "--hidden") {
- window_application.maximize()
- window_application.show()
+ window_codes.maximize()
+ window_codes.show()
- application_shown = true
+ codes_shown = true
}
- }, 100)
- authenticated = true
+ authenticated = true
- createTray()
- createMenu()
+ createTray()
+ createMenu()
+ }, 100)
}
})
}
@@ -952,7 +957,7 @@ app.whenReady()
// Optional analytics
if (settings.settings.analytics === true && dev === false) {
try {
- axios.post("https://api.levminer.com/api/v1/authme/analytics/post", { version: authme_version, build: build_number, os: os_version, lang: app.getLocaleCountryCode(), date: new Date() })
+ axios.post("https://analytics.levminer.com/api/v1/authme/analytics/post", { version: authme_version, build: build_number, os: os_version, lang: app.getLocaleCountryCode(), date: new Date() })
} catch (error) {
logger.error("Failed to post analytics", error)
}
@@ -1056,8 +1061,8 @@ ipc.on("toApplicationFromConfirm", () => {
if (authenticated === false) {
settings = JSON.parse(fs.readFileSync(path.join(folder_path, "settings", "settings.json"), "utf-8"))
- window_application.maximize()
- window_application.show()
+ window_codes.maximize()
+ window_codes.show()
setTimeout(() => {
window_security.hide()
@@ -1077,8 +1082,8 @@ ipc.on("toApplicationFromLanding", () => {
if (authenticated === false) {
settings = JSON.parse(fs.readFileSync(path.join(folder_path, "settings", "settings.json"), "utf-8"))
- window_application.maximize()
- window_application.show()
+ window_codes.maximize()
+ window_codes.show()
setTimeout(() => {
window_security.hide()
@@ -1170,7 +1175,7 @@ ipc.on("disableWindowCapture", () => {
window_security.setContentProtection(true)
} catch (error) {}
- window_application.setContentProtection(true)
+ window_codes.setContentProtection(true)
window_settings.setContentProtection(true)
window_tools.setContentProtection(true)
@@ -1189,7 +1194,7 @@ ipc.on("enableWindowCapture", () => {
window_security.setContentProtection(false)
} catch (error) {}
- window_application.setContentProtection(false)
+ window_codes.setContentProtection(false)
window_settings.setContentProtection(false)
window_tools.setContentProtection(false)
@@ -1234,6 +1239,7 @@ ipc.on("support", () => {
ipc.on("rateAuthme", () => {
shell.openExternal("ms-windows-store://review/?ProductId=XP9M33RJSVD6JR")
+ settings.statistics.opens = 0
settings.statistics.rated = true
saveSettings()
@@ -1245,7 +1251,7 @@ ipc.on("rateAuthme", () => {
ipc.on("starAuthme", () => {
shell.openExternal("https://github.com/Levminer/authme/")
- settings.statistics.rated = true
+ settings.statistics.opens = 0
saveSettings()
})
@@ -1267,7 +1273,7 @@ ipc.on("provideFeedback", () => {
ipc.handle("sendPassword", (event, data) => {
password_buffer = Buffer.from(data)
- window_application.webContents.executeJavaScript("loadCodes()")
+ window_codes.webContents.executeJavaScript("loadCodes()")
})
/**
@@ -1281,10 +1287,10 @@ ipc.handle("requestPassword", () => {
* Reload application window
*/
ipc.on("reloadApplicationWindow", () => {
- window_application.reload()
+ window_codes.reload()
if (settings.security.require_password === true) {
- window_application.webContents.executeJavaScript("loadCodes()")
+ window_codes.webContents.executeJavaScript("loadCodes()")
}
})
@@ -1363,10 +1369,10 @@ ipc.handle("statistics", () => {
* Receive imported codes and send to application
*/
ipc.handle("importCodes", (event, codes) => {
- window_application.webContents.executeJavaScript("location.reload()")
+ window_codes.webContents.executeJavaScript("location.reload()")
setTimeout(() => {
- window_application.webContents.executeJavaScript(`importCodes("${codes}")`)
+ window_codes.webContents.executeJavaScript(`importCodes("${codes}")`)
}, 150)
})
@@ -1374,10 +1380,10 @@ ipc.handle("importCodes", (event, codes) => {
* Receive imported codes and send to application
*/
ipc.handle("importExistingCodes", (event, codes) => {
- window_application.webContents.executeJavaScript("location.reload()")
+ window_codes.webContents.executeJavaScript("location.reload()")
setTimeout(() => {
- window_application.webContents.executeJavaScript(`importExistingCodes("${codes}")`)
+ window_codes.webContents.executeJavaScript(`importExistingCodes("${codes}")`)
}, 150)
})
@@ -1449,7 +1455,7 @@ const releaseNotes = () => {
cancelId: 1,
noLink: true,
type: "info",
- message: markdown.convert(res.data.body).split("Changelog")[0],
+ message: markdown.convert(res.data.body).split("Other")[0],
})
.then((result) => {
if (result.response === 0) {
@@ -1513,11 +1519,11 @@ const feedback = () => {
*/
power.on("lock-screen", () => {
if (settings.security.require_password === true) {
- window_application.hide()
+ window_codes.hide()
window_settings.hide()
window_tools.hide()
- application_shown = false
+ codes_shown = false
settings_shown = false
tools_shown = false
@@ -1536,13 +1542,7 @@ power.on("lock-screen", () => {
const createTray = () => {
const contextmenu = Menu.buildFromTemplate([
{
- label: `Authme (${authme_version})`,
- enabled: false,
- icon: path.join(__dirname, "img/traymenu.png"),
- },
- { type: "separator" },
- {
- label: application_shown ? lang.tray.hide_app : lang.tray.show_app,
+ label: codes_shown ? lang.tray.hide_app : lang.tray.show_app,
accelerator: shortcuts ? "" : settings.global_shortcuts.show,
click: () => {
showAppFromTray()
@@ -1582,7 +1582,7 @@ const createMenu = () => {
label: lang.menu.file,
submenu: [
{
- label: application_shown ? lang.menu.hide_app : lang.menu.show_app,
+ label: codes_shown ? lang.menu.hide_app : lang.menu.show_app,
accelerator: shortcuts ? "" : settings.shortcuts.show,
click: () => {
showAppFromTray()
@@ -1615,7 +1615,7 @@ const createMenu = () => {
} else {
window_settings.hide()
- window_application.focus()
+ window_codes.focus()
settings_shown = false
@@ -1710,7 +1710,7 @@ const createMenu = () => {
logger.log("Edit restored")
} else {
window_tools.hide()
- window_application.focus()
+ window_codes.focus()
tools_shown = false
@@ -1760,7 +1760,7 @@ const createMenu = () => {
logger.log("Import restored")
} else {
window_tools.hide()
- window_application.focus()
+ window_codes.focus()
tools_shown = false
@@ -1810,7 +1810,7 @@ const createMenu = () => {
logger.log("Export restored")
} else {
window_tools.hide()
- window_application.focus()
+ window_codes.focus()
tools_shown = false
@@ -1971,12 +1971,12 @@ const createMenu = () => {
Menu.setApplicationMenu(menu)
// Reload menu
- if (window_application !== undefined && platform === "windows") {
+ if (window_codes !== undefined && platform === "windows") {
try {
window_security.webContents.send("refreshMenu")
} catch (error) {}
- window_application.webContents.send("refreshMenu")
+ window_codes.webContents.send("refreshMenu")
window_settings.webContents.send("refreshMenu")
window_tools.webContents.send("refreshMenu")
}
diff --git a/package-lock.json b/package-lock.json
index 40072986..3d372198 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "authme",
- "version": "3.3.0",
+ "version": "3.3.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "authme",
- "version": "3.3.0",
+ "version": "3.3.1",
"license": "GPL-3.0",
"dependencies": {
"@6c65726f79/custom-titlebar": "^0.9.1",
@@ -17,28 +17,28 @@
"auto-launch": "^5.0.5",
"axios": "^0.27.2",
"bcryptjs": "^2.4.3",
- "electron-context-menu": "^3.1.2",
+ "electron-context-menu": "^3.2.0",
"electron-debug": "^3.2.0",
- "electron-updater": "^5.0.3",
+ "electron-updater": "^5.0.1",
"protons": "^2.0.3",
- "qrcode-decoder": "^0.2.2",
+ "qrcode-decoder": "^0.3.1",
"qrcode-generator": "^1.4.4"
},
"devDependencies": {
- "@tailwindcss/forms": "^0.5.1",
- "concurrently": "^7.1.0",
- "electron": "^18.2.0",
- "electron-builder": "^23.0.8",
- "eslint": "^8.14.0",
+ "@playwright/test": "^1.22.2",
+ "@tailwindcss/forms": "^0.5.2",
+ "concurrently": "^7.2.1",
+ "electron": "^19.0.4",
+ "electron-builder": "^23.0.3",
+ "eslint": "^8.17.0",
"eslint-config-prettier": "^8.5.0",
"eslint-config-standard": "^17.0.0-1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-promise": "^6.0.0",
"prettier": "^2.6.2",
- "prettier-plugin-tailwindcss": "^0.1.10",
- "sass": "^1.51.0",
- "tailwindcss": "^3.0.24"
+ "prettier-plugin-tailwindcss": "^0.1.11",
+ "tailwindcss": "^3.1.2"
},
"engines": {
"node": ">=16.0.0",
@@ -86,9 +86,9 @@
}
},
"node_modules/@electron/get": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.0.tgz",
- "integrity": "sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz",
+ "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==",
"dependencies": {
"debug": "^4.1.1",
"env-paths": "^2.2.0",
@@ -102,7 +102,7 @@
"node": ">=8.6"
},
"optionalDependencies": {
- "global-agent": "^2.0.2",
+ "global-agent": "^3.0.0",
"global-tunnel-ng": "^2.7.1"
}
},
@@ -115,9 +115,9 @@
}
},
"node_modules/@electron/universal": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz",
- "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.0.tgz",
+ "integrity": "sha512-eu20BwNsrMPKoe2bZ3/l9c78LclDvxg3PlVXrQf3L50NaUuW5M59gbPytI+V4z7/QMrohUHetQaU0ou+p1UG9Q==",
"dev": true,
"dependencies": {
"@malept/cross-spawn-promise": "^1.1.0",
@@ -169,19 +169,19 @@
}
},
"node_modules/@eslint/eslintrc": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz",
- "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
+ "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.3.1",
- "globals": "^13.9.0",
+ "espree": "^9.3.2",
+ "globals": "^13.15.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"strip-json-comments": "^3.1.1"
},
"engines": {
@@ -329,6 +329,22 @@
"node": ">= 8"
}
},
+ "node_modules/@playwright/test": {
+ "version": "1.22.2",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.22.2.tgz",
+ "integrity": "sha512-cCl96BEBGPtptFz7C2FOSN3PrTnJ3rPpENe+gYCMx4GNNDlN4tmo2D89y13feGKTMMAIVrXfSQ/UmaQKLy1XLA==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "playwright-core": "1.22.2"
+ },
+ "bin": {
+ "playwright": "cli.js"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@sindresorhus/is": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
@@ -349,9 +365,9 @@
}
},
"node_modules/@tailwindcss/forms": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.1.tgz",
- "integrity": "sha512-QSwsFORnC2BAP0lRzQkz1pw+EzIiiPdk4e27vGQjyXkwJPeC7iLIRVndJzf9CJVbcrrIcirb/TfxF3gRTyFEVA==",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.2.tgz",
+ "integrity": "sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w==",
"dev": true,
"dependencies": {
"mini-svg-data-uri": "^1.2.3"
@@ -419,9 +435,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "17.0.26",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.26.tgz",
- "integrity": "sha512-z/FG/6DUO7pnze3AE3TBGIjGGKkvCcGcWINe1C7cADY8hKLJPDYpzsNE37uExQ4md5RFtTCvg+M8Mu1Enyeg2A==",
+ "version": "17.0.31",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz",
+ "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==",
"dev": true
},
"node_modules/@types/plist": {
@@ -555,35 +571,6 @@
"string-width": "^4.1.0"
}
},
- "node_modules/ansi-align/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/ansi-align/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-align/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
@@ -626,36 +613,35 @@
"dev": true
},
"node_modules/app-builder-lib": {
- "version": "23.0.8",
- "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.0.8.tgz",
- "integrity": "sha512-IObTdRc/0TQsfGn9IvaEXULE/QacgyFgpz3+vmlpZgHHjQ6V1c/T4pKlzNTsNHGjJBuEg2FvTvYi9ZVFfhyWow==",
+ "version": "23.0.3",
+ "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.0.3.tgz",
+ "integrity": "sha512-1qrtXYHXJfXhzJnMtVGjIva3067F1qYQubl2oBjI61gCBoCHvhghdYJ57XxXTQQ0VxnUhg1/Iaez87uXp8mD8w==",
"dev": true,
"dependencies": {
"@develar/schema-utils": "~2.6.5",
- "@electron/universal": "1.2.1",
+ "@electron/universal": "1.2.0",
"@malept/flatpak-bundler": "^0.4.0",
"7zip-bin": "~5.1.1",
"async-exit-hook": "^2.0.1",
"bluebird-lst": "^1.0.9",
- "builder-util": "23.0.8",
- "builder-util-runtime": "9.0.2",
+ "builder-util": "23.0.2",
+ "builder-util-runtime": "9.0.0",
"chromium-pickle-js": "^0.2.0",
- "debug": "^4.3.4",
- "ejs": "^3.1.7",
+ "debug": "^4.3.2",
+ "ejs": "^3.1.6",
"electron-osx-sign": "^0.6.0",
- "electron-publish": "23.0.8",
+ "electron-publish": "23.0.2",
"form-data": "^4.0.0",
- "fs-extra": "^10.1.0",
- "hosted-git-info": "^4.1.0",
+ "fs-extra": "^10.0.0",
+ "hosted-git-info": "^4.0.2",
"is-ci": "^3.0.0",
- "isbinaryfile": "^4.0.10",
+ "isbinaryfile": "^4.0.8",
"js-yaml": "^4.1.0",
"lazy-val": "^1.0.5",
- "minimatch": "^3.1.2",
+ "minimatch": "^3.0.4",
"read-config-file": "6.2.0",
"sanitize-filename": "^1.6.3",
- "semver": "^7.3.7",
- "tar": "^6.1.11",
+ "semver": "^7.3.5",
"temp-file": "^3.4.0"
},
"engines": {
@@ -790,7 +776,7 @@
"node_modules/assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"dev": true,
"optional": true,
"engines": {
@@ -914,9 +900,9 @@
}
},
"node_modules/boolean": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz",
- "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
+ "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==",
"optional": true
},
"node_modules/boxen": {
@@ -953,35 +939,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/boxen/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/boxen/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/boxen/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -1056,7 +1013,7 @@
"node_modules/buffer-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
- "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
+ "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==",
"dev": true,
"engines": {
"node": ">=0.4.0"
@@ -1065,7 +1022,7 @@
"node_modules/buffer-fill": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
"dev": true
},
"node_modules/buffer-from": {
@@ -1074,9 +1031,9 @@
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"node_modules/builder-util": {
- "version": "23.0.8",
- "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.0.8.tgz",
- "integrity": "sha512-xPpnoLLAEPx5oxxzRFINRnxmLNQDn+FddU7QRvCJDQi0jvUJ7UjdoGoM+UPy9yh+p9O82/nC7MHGuUptJkOXyQ==",
+ "version": "23.0.2",
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.0.2.tgz",
+ "integrity": "sha512-HaNHL3axNW/Ms8O1mDx3I07G+ZnZ/TKSWWvorOAPau128cdt9S+lNx5ocbx8deSaHHX4WFXSZVHh3mxlaKJNgg==",
"dev": true,
"dependencies": {
"@types/debug": "^4.1.6",
@@ -1084,10 +1041,10 @@
"7zip-bin": "~5.1.1",
"app-builder-bin": "4.0.0",
"bluebird-lst": "^1.0.9",
- "builder-util-runtime": "9.0.2",
+ "builder-util-runtime": "9.0.0",
"chalk": "^4.1.1",
"cross-spawn": "^7.0.3",
- "debug": "^4.3.4",
+ "debug": "^4.3.2",
"fs-extra": "^10.0.0",
"http-proxy-agent": "^5.0.0",
"https-proxy-agent": "^5.0.0",
@@ -1099,11 +1056,11 @@
}
},
"node_modules/builder-util-runtime": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.2.tgz",
- "integrity": "sha512-xF55W/8mgfT6+sMbX0TeiJkTusA5GMOzckM4rajN4KirFcUIuLTH8oEaTYmM86YwVCZaTwa/7GyFhauXaEICwA==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz",
+ "integrity": "sha512-SkpEtSmTkREDHRJnxKEv43aAYp8sYWY8fxYBhGLBLOBIRXeaIp6Kv3lBgSD7uR8jQtC7CA659sqJrpSV6zNvSA==",
"dependencies": {
- "debug": "^4.3.4",
+ "debug": "^4.3.2",
"sax": "^1.2.4"
},
"engines": {
@@ -1259,25 +1216,16 @@
"fsevents": "~2.3.2"
}
},
- "node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/chromium-pickle-js": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
- "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=",
+ "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==",
"dev": true
},
"node_modules/ci-info": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz",
- "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz",
+ "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==",
"dev": true
},
"node_modules/cli-boxes": {
@@ -1307,32 +1255,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/cli-truncate/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cli-truncate/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -1344,35 +1266,6 @@
"wrap-ansi": "^7.0.0"
}
},
- "node_modules/cliui/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/cliui/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/clone-response": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
@@ -1400,7 +1293,7 @@
"node_modules/colors": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
- "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
+ "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==",
"dev": true,
"engines": {
"node": ">=0.1.90"
@@ -1429,7 +1322,7 @@
"node_modules/compare-version": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
- "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=",
+ "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -1456,19 +1349,20 @@
}
},
"node_modules/concurrently": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.1.0.tgz",
- "integrity": "sha512-Bz0tMlYKZRUDqJlNiF/OImojMB9ruKUz6GCfmhFnSapXgPe+3xzY4byqoKG9tUZ7L2PGEUjfLPOLfIX3labnmw==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.2.1.tgz",
+ "integrity": "sha512-7cab/QyqipqghrVr9qZmoWbidu0nHsmxrpNqQ7r/67vfl1DWJElexehQnTH1p+87tDkihaAjM79xTZyBQh7HLw==",
"dev": true,
"dependencies": {
"chalk": "^4.1.0",
"date-fns": "^2.16.1",
"lodash": "^4.17.21",
"rxjs": "^6.6.3",
+ "shell-quote": "^1.7.3",
"spawn-command": "^0.0.2-1",
"supports-color": "^8.1.0",
"tree-kill": "^1.2.2",
- "yargs": "^16.2.0"
+ "yargs": "^17.3.1"
},
"bin": {
"concurrently": "dist/bin/concurrently.js"
@@ -1477,35 +1371,6 @@
"node": "^12.20.0 || ^14.13.0 || >=16.0.0"
}
},
- "node_modules/concurrently/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/concurrently/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/concurrently/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/concurrently/node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -1521,24 +1386,6 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/concurrently/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/config-chain": {
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
@@ -1566,17 +1413,6 @@
"node": ">=8"
}
},
- "node_modules/core-js": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.0.tgz",
- "integrity": "sha512-WJeQqq6jOYgVgg4NrXKL0KLQhi0CT4ZOCvFL+3CQ5o7I6J8HkT5wd53EadMfqTDp1so/MT1J+w2ujhWcCJtN7w==",
- "hasInstallScript": true,
- "optional": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
"node_modules/core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
@@ -1702,7 +1538,7 @@
"node_modules/defined": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
- "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+ "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==",
"dev": true
},
"node_modules/delayed-stream": {
@@ -1720,14 +1556,14 @@
"optional": true
},
"node_modules/detective": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
- "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
+ "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
"dev": true,
"dependencies": {
- "acorn-node": "^1.6.1",
+ "acorn-node": "^1.8.2",
"defined": "^1.0.0",
- "minimist": "^1.1.1"
+ "minimist": "^1.2.6"
},
"bin": {
"detective": "bin/detective.js"
@@ -1760,7 +1596,7 @@
"node_modules/dir-compare/node_modules/commander": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==",
"dev": true,
"dependencies": {
"graceful-readlink": ">= 1.0.0"
@@ -1788,20 +1624,20 @@
"dev": true
},
"node_modules/dmg-builder": {
- "version": "23.0.8",
- "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.0.8.tgz",
- "integrity": "sha512-dXguxjekxY70hzgAW+0NPCI7bagQ2ZrLDwYf1bvHSwlVfVizyJ/EC+e71U/NUgiWlXU5nogbWcGC3H74mFu0iw==",
+ "version": "23.0.3",
+ "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.0.3.tgz",
+ "integrity": "sha512-mBYrHHnSM5PC656TDE+xTGmXIuWHAGmmRfyM+dV0kP+AxtwPof4pAXNQ8COd0/exZQ4dqf72FiPS3B9G9aB5IA==",
"dev": true,
"dependencies": {
- "app-builder-lib": "23.0.8",
- "builder-util": "23.0.8",
- "builder-util-runtime": "9.0.2",
+ "app-builder-lib": "23.0.3",
+ "builder-util": "23.0.2",
+ "builder-util-runtime": "9.0.0",
"fs-extra": "^10.0.0",
"iconv-lite": "^0.6.2",
"js-yaml": "^4.1.0"
},
"optionalDependencies": {
- "dmg-license": "^1.0.11"
+ "dmg-license": "^1.0.9"
}
},
"node_modules/dmg-builder/node_modules/fs-extra": {
@@ -1911,9 +1747,9 @@
"integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
},
"node_modules/ejs": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz",
- "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
+ "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
"dev": true,
"dependencies": {
"jake": "^10.8.5"
@@ -1926,12 +1762,12 @@
}
},
"node_modules/electron": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/electron/-/electron-18.2.0.tgz",
- "integrity": "sha512-AN+CKalzA57beuvuI90PVgW/yj6zjw7rpb1h8FvIwBJ3toDC3x0Plfzbzh4Ondecbjci7pSg/NA5ngOk804WIQ==",
+ "version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-19.0.4.tgz",
+ "integrity": "sha512-roRYr1VNAWIhjD9n8qZdmhROtrzsFpuZEXrjWAw+GqPbZlrUInmvFCviRDC2Lt+VBsTNRpTfPpfzXSlLL4reEw==",
"hasInstallScript": true,
"dependencies": {
- "@electron/get": "^1.13.0",
+ "@electron/get": "^1.14.1",
"@types/node": "^16.11.26",
"extract-zip": "^1.0.3"
},
@@ -1943,17 +1779,17 @@
}
},
"node_modules/electron-builder": {
- "version": "23.0.8",
- "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.0.8.tgz",
- "integrity": "sha512-7WxdR4+l+VL4QN/K6NdqRQg7+cbIka4By1+4eN8odMPySSTI5d6nrV8R+SSRt9MXeWVdWlW8RCX5Pk6L0oaRug==",
+ "version": "23.0.3",
+ "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.0.3.tgz",
+ "integrity": "sha512-0lnTsljAgcOMuIiOjPcoFf+WxOOe/O04hZPgIvvUBXIbz3kolbNu0Xdch1f5WuQ40NdeZI7oqs8Eo395PcuGHQ==",
"dev": true,
"dependencies": {
"@types/yargs": "^17.0.1",
- "app-builder-lib": "23.0.8",
- "builder-util": "23.0.8",
- "builder-util-runtime": "9.0.2",
+ "app-builder-lib": "23.0.3",
+ "builder-util": "23.0.2",
+ "builder-util-runtime": "9.0.0",
"chalk": "^4.1.1",
- "dmg-builder": "23.0.8",
+ "dmg-builder": "23.0.3",
"fs-extra": "^10.0.0",
"is-ci": "^3.0.0",
"lazy-val": "^1.0.5",
@@ -2005,9 +1841,9 @@
}
},
"node_modules/electron-context-menu": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-3.1.2.tgz",
- "integrity": "sha512-nNzu4w14n7mOR+4cLjRC9cEFqGUsAY76seOm0sw3f4OxEfX/d75m7HYekyp5b+0m7Ixy2KN/Mrljw1zLmpyV2w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-3.2.0.tgz",
+ "integrity": "sha512-JX6t8JmnaB28h1D6XrpGK/OLxXLDWzkBXZ2shvegThkTDOH8NaSiQBBv/FkFI0rmOUfLezWhPQibnrc0Tm96yA==",
"dependencies": {
"cli-truncate": "^2.1.0",
"electron-dl": "^3.2.1",
@@ -2116,18 +1952,18 @@
"node_modules/electron-osx-sign/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
},
"node_modules/electron-publish": {
- "version": "23.0.8",
- "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.0.8.tgz",
- "integrity": "sha512-GnqJH7Wh8LnapN4npl1Xs2Er/486/qxE3dV42WxXHX2VeoKAJTOuCzOVWCxpajaR3Msji4SkS0p81R018uK6Mg==",
+ "version": "23.0.2",
+ "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.0.2.tgz",
+ "integrity": "sha512-8gMYgWqv96lc83FCm85wd+tEyxNTJQK7WKyPkNkO8GxModZqt1GO8S+/vAnFGxilS/7vsrVRXFfqiCDUCSuxEg==",
"dev": true,
"dependencies": {
"@types/fs-extra": "^9.0.11",
- "builder-util": "23.0.8",
- "builder-util-runtime": "9.0.2",
+ "builder-util": "23.0.2",
+ "builder-util-runtime": "9.0.0",
"chalk": "^4.1.1",
"fs-extra": "^10.0.0",
"lazy-val": "^1.0.5",
@@ -2170,12 +2006,12 @@
}
},
"node_modules/electron-updater": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.0.3.tgz",
- "integrity": "sha512-fA8cYsMAQk7O1MzcdkZmz8/vhUh1M81EKhUNDBvvIWvJ3eatQ1xSAtEVj/VLWcIMp0UFjbXe1gqsyP/WWIOVNw==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.0.1.tgz",
+ "integrity": "sha512-dNnXPCqYmergXy3jgg4UICuD50Orug9GQe/5xfHy+BE2Fy0icB0QE+y6iQWdCDf7yeONxwMBf4HgIkGG5pIaVg==",
"dependencies": {
"@types/semver": "^7.3.6",
- "builder-util-runtime": "9.0.2",
+ "builder-util-runtime": "9.0.0",
"fs-extra": "^10.0.0",
"js-yaml": "^4.1.0",
"lazy-val": "^1.0.5",
@@ -2235,6 +2071,11 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.28.tgz",
"integrity": "sha512-l/y1ZZpWqevemVQmk0Q1TPohlJTul7u9ysq3bw6xlRDO8z+98JBI6gp4JS0OK8YkWUdYxnJU35H4vOzuiOFIag=="
},
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
"node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -2349,12 +2190,12 @@
}
},
"node_modules/eslint": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz",
- "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==",
+ "version": "8.17.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz",
+ "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==",
"dev": true,
"dependencies": {
- "@eslint/eslintrc": "^1.2.2",
+ "@eslint/eslintrc": "^1.3.0",
"@humanwhocodes/config-array": "^0.9.2",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
@@ -2365,14 +2206,14 @@
"eslint-scope": "^7.1.1",
"eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.1",
+ "espree": "^9.3.2",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
"functional-red-black-tree": "^1.0.1",
"glob-parent": "^6.0.1",
- "globals": "^13.6.0",
+ "globals": "^13.15.0",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
@@ -2381,7 +2222,7 @@
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
"regexpp": "^3.2.0",
@@ -2808,13 +2649,13 @@
}
},
"node_modules/espree": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz",
- "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz",
+ "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==",
"dev": true,
"dependencies": {
- "acorn": "^8.7.0",
- "acorn-jsx": "^5.3.1",
+ "acorn": "^8.7.1",
+ "acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -2822,9 +2663,9 @@
}
},
"node_modules/espree/node_modules/acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -3014,9 +2855,9 @@
}
},
"node_modules/filelist": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz",
- "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
"dev": true,
"dependencies": {
"minimatch": "^5.0.1"
@@ -3032,9 +2873,9 @@
}
},
"node_modules/filelist/node_modules/minimatch": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
- "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
+ "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
@@ -3132,18 +2973,6 @@
"node": ">=6 <7 || >=8"
}
},
- "node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -3261,13 +3090,12 @@
}
},
"node_modules/global-agent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz",
- "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz",
+ "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==",
"optional": true,
"dependencies": {
"boolean": "^3.0.1",
- "core-js": "^3.6.5",
"es6-error": "^4.1.1",
"matcher": "^3.0.0",
"roarr": "^2.15.3",
@@ -3279,9 +3107,9 @@
}
},
"node_modules/global-agent/node_modules/semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"optional": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -3333,9 +3161,9 @@
}
},
"node_modules/globals": {
- "version": "13.13.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
- "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
@@ -3348,9 +3176,9 @@
}
},
"node_modules/globalthis": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz",
- "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
"optional": true,
"dependencies": {
"define-properties": "^1.1.3"
@@ -3391,7 +3219,7 @@
"node_modules/graceful-readlink": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==",
"dev": true
},
"node_modules/has": {
@@ -3566,12 +3394,6 @@
"node": ">= 4"
}
},
- "node_modules/immutable": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz",
- "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==",
- "dev": true
- },
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -3746,6 +3568,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -4265,31 +4095,6 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
- "node_modules/minipass": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
- "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/mkdirp": {
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
@@ -4320,9 +4125,9 @@
"integrity": "sha512-ngZRO82P7mPvw/3gu5NQ2QiUJGYTS0LAxvQnEAlWCJakvn7YpK2VAd9JWM5oosYUeqoVbkylH/FsqRc4fc2+ag=="
},
"node_modules/nanoid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz",
- "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
"dev": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
@@ -4598,6 +4403,18 @@
"node": ">=4"
}
},
+ "node_modules/playwright-core": {
+ "version": "1.22.2",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.22.2.tgz",
+ "integrity": "sha512-w/hc/Ld0RM4pmsNeE6aL/fPNWw8BWit2tg+TfqJ3+p59c6s3B6C8mXvXrIPmfQEobkcFDc+4KirNzOQ+uBSP1Q==",
+ "dev": true,
+ "bin": {
+ "playwright": "cli.js"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/plist": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz",
@@ -4621,9 +4438,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.12",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz",
- "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==",
+ "version": "8.4.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
+ "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"dev": true,
"funding": [
{
@@ -4636,7 +4453,7 @@
}
],
"dependencies": {
- "nanoid": "^3.3.1",
+ "nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
@@ -4644,6 +4461,23 @@
"node": "^10 || ^12 || >=14"
}
},
+ "node_modules/postcss-import": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
+ "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
+ "dev": true,
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
"node_modules/postcss-js": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz",
@@ -4775,9 +4609,9 @@
}
},
"node_modules/prettier-plugin-tailwindcss": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.10.tgz",
- "integrity": "sha512-ooDGNuXUjgCXfShliVYQ6+0iXqUFXn+zdNInPe0WZN9qINt9srbLGFGY5jeVL4MXtY20/4S8JaBcd8l6N6NfCQ==",
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.11.tgz",
+ "integrity": "sha512-a28+1jvpIZQdZ/W97wOXb6VqI762MKE/TxMMuibMEHhyYsSxQA8Ek30KObd5kJI2HF1ldtSYprFayXJXi3pz8Q==",
"dev": true,
"engines": {
"node": ">=12.17.0"
@@ -4851,9 +4685,9 @@
}
},
"node_modules/qrcode-decoder": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/qrcode-decoder/-/qrcode-decoder-0.2.2.tgz",
- "integrity": "sha512-gyysRyA/SHaMn7yDKhFJ8AGNkbTJfSVq/7vtNWtBdW5PdT3m8SLX+YbWY04HRkoS/H7RaI3UfAsOw+cVqsfWHg==",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/qrcode-decoder/-/qrcode-decoder-0.3.1.tgz",
+ "integrity": "sha512-G80L1PdMaTvrWpHymX2buL48NWRkBsbj/zsE2dS418Llpgl0+MbplDwxA3gmZHX7ERUN7Nre84kSG62631aWDA==",
"dependencies": {
"jsqr": "^1.4.0"
}
@@ -4919,6 +4753,24 @@
"node": ">=0.10.0"
}
},
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
+ "node_modules/read-cache/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/read-config-file": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz",
@@ -5142,23 +4994,6 @@
"truncate-utf8-bytes": "^1.0.0"
}
},
- "node_modules/sass": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz",
- "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==",
- "dev": true,
- "dependencies": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- },
- "bin": {
- "sass": "sass.js"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
"node_modules/sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
@@ -5238,6 +5073,12 @@
"node": ">=8"
}
},
+ "node_modules/shell-quote": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz",
+ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==",
+ "dev": true
+ },
"node_modules/side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@@ -5280,14 +5121,6 @@
"node": ">=8"
}
},
- "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/smart-buffer": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
@@ -5378,6 +5211,19 @@
"safe-buffer": "~5.1.0"
}
},
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/string.prototype.trimend": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
@@ -5475,15 +5321,15 @@
}
},
"node_modules/tailwindcss": {
- "version": "3.0.24",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz",
- "integrity": "sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.2.tgz",
+ "integrity": "sha512-yJ6L5s1U5AeS5g7HHy212zdQfjwD426FBfm59pet/JsyneuZuD4C2W7PpJEg4ppisiB21uLqtNagv8KXury3+Q==",
"dev": true,
"dependencies": {
"arg": "^5.0.1",
"chokidar": "^3.5.3",
"color-name": "^1.1.4",
- "detective": "^5.2.0",
+ "detective": "^5.2.1",
"didyoumean": "^1.2.2",
"dlv": "^1.1.3",
"fast-glob": "^3.2.11",
@@ -5493,7 +5339,8 @@
"normalize-path": "^3.0.0",
"object-hash": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.12",
+ "postcss": "^8.4.14",
+ "postcss-import": "^14.1.0",
"postcss-js": "^4.0.0",
"postcss-load-config": "^3.1.4",
"postcss-nested": "5.0.6",
@@ -5525,35 +5372,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/tar": {
- "version": "6.1.11",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
- "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
- "dev": true,
- "dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^3.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/tar/node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true,
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/temp-file": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz",
@@ -5969,35 +5787,6 @@
"node": ">=8"
}
},
- "node_modules/widest-line/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/widest-line/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/widest-line/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/winreg": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.4.tgz",
@@ -6029,35 +5818,6 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/wrap-ansi/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -6127,59 +5887,30 @@
}
},
"node_modules/yargs": {
- "version": "17.0.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz",
- "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==",
+ "version": "17.5.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
+ "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
"dev": true,
"dependencies": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
"get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
- "string-width": "^4.2.0",
+ "string-width": "^4.2.3",
"y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
+ "yargs-parser": "^21.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/yargs/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "version": "21.0.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
+ "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
"dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
"engines": {
- "node": ">=8"
+ "node": ">=12"
}
},
"node_modules/yauzl": {
@@ -6209,14 +5940,14 @@
}
},
"@electron/get": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.0.tgz",
- "integrity": "sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz",
+ "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==",
"requires": {
"debug": "^4.1.1",
"env-paths": "^2.2.0",
"fs-extra": "^8.1.0",
- "global-agent": "^2.0.2",
+ "global-agent": "^3.0.0",
"global-tunnel-ng": "^2.7.1",
"got": "^9.6.0",
"progress": "^2.0.3",
@@ -6231,9 +5962,9 @@
"requires": {}
},
"@electron/universal": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz",
- "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.0.tgz",
+ "integrity": "sha512-eu20BwNsrMPKoe2bZ3/l9c78LclDvxg3PlVXrQf3L50NaUuW5M59gbPytI+V4z7/QMrohUHetQaU0ou+p1UG9Q==",
"dev": true,
"requires": {
"@malept/cross-spawn-promise": "^1.1.0",
@@ -6276,19 +6007,19 @@
}
},
"@eslint/eslintrc": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz",
- "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
+ "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.3.1",
- "globals": "^13.9.0",
+ "espree": "^9.3.2",
+ "globals": "^13.15.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"strip-json-comments": "^3.1.1"
}
},
@@ -6397,6 +6128,16 @@
"fastq": "^1.6.0"
}
},
+ "@playwright/test": {
+ "version": "1.22.2",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.22.2.tgz",
+ "integrity": "sha512-cCl96BEBGPtptFz7C2FOSN3PrTnJ3rPpENe+gYCMx4GNNDlN4tmo2D89y13feGKTMMAIVrXfSQ/UmaQKLy1XLA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "playwright-core": "1.22.2"
+ }
+ },
"@sindresorhus/is": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
@@ -6411,9 +6152,9 @@
}
},
"@tailwindcss/forms": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.1.tgz",
- "integrity": "sha512-QSwsFORnC2BAP0lRzQkz1pw+EzIiiPdk4e27vGQjyXkwJPeC7iLIRVndJzf9CJVbcrrIcirb/TfxF3gRTyFEVA==",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.2.tgz",
+ "integrity": "sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w==",
"dev": true,
"requires": {
"mini-svg-data-uri": "^1.2.3"
@@ -6475,9 +6216,9 @@
"dev": true
},
"@types/node": {
- "version": "17.0.26",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.26.tgz",
- "integrity": "sha512-z/FG/6DUO7pnze3AE3TBGIjGGKkvCcGcWINe1C7cADY8hKLJPDYpzsNE37uExQ4md5RFtTCvg+M8Mu1Enyeg2A==",
+ "version": "17.0.31",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz",
+ "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==",
"dev": true
},
"@types/plist": {
@@ -6589,31 +6330,6 @@
"dev": true,
"requires": {
"string-width": "^4.1.0"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- }
}
},
"ansi-regex": {
@@ -6646,36 +6362,35 @@
"dev": true
},
"app-builder-lib": {
- "version": "23.0.8",
- "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.0.8.tgz",
- "integrity": "sha512-IObTdRc/0TQsfGn9IvaEXULE/QacgyFgpz3+vmlpZgHHjQ6V1c/T4pKlzNTsNHGjJBuEg2FvTvYi9ZVFfhyWow==",
+ "version": "23.0.3",
+ "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.0.3.tgz",
+ "integrity": "sha512-1qrtXYHXJfXhzJnMtVGjIva3067F1qYQubl2oBjI61gCBoCHvhghdYJ57XxXTQQ0VxnUhg1/Iaez87uXp8mD8w==",
"dev": true,
"requires": {
"@develar/schema-utils": "~2.6.5",
- "@electron/universal": "1.2.1",
+ "@electron/universal": "1.2.0",
"@malept/flatpak-bundler": "^0.4.0",
"7zip-bin": "~5.1.1",
"async-exit-hook": "^2.0.1",
"bluebird-lst": "^1.0.9",
- "builder-util": "23.0.8",
- "builder-util-runtime": "9.0.2",
+ "builder-util": "23.0.2",
+ "builder-util-runtime": "9.0.0",
"chromium-pickle-js": "^0.2.0",
- "debug": "^4.3.4",
- "ejs": "^3.1.7",
+ "debug": "^4.3.2",
+ "ejs": "^3.1.6",
"electron-osx-sign": "^0.6.0",
- "electron-publish": "23.0.8",
+ "electron-publish": "23.0.2",
"form-data": "^4.0.0",
- "fs-extra": "^10.1.0",
- "hosted-git-info": "^4.1.0",
+ "fs-extra": "^10.0.0",
+ "hosted-git-info": "^4.0.2",
"is-ci": "^3.0.0",
- "isbinaryfile": "^4.0.10",
+ "isbinaryfile": "^4.0.8",
"js-yaml": "^4.1.0",
"lazy-val": "^1.0.5",
- "minimatch": "^3.1.2",
+ "minimatch": "^3.0.4",
"read-config-file": "6.2.0",
"sanitize-filename": "^1.6.3",
- "semver": "^7.3.7",
- "tar": "^6.1.11",
+ "semver": "^7.3.5",
"temp-file": "^3.4.0"
},
"dependencies": {
@@ -6775,7 +6490,7 @@
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"dev": true,
"optional": true
},
@@ -6867,9 +6582,9 @@
}
},
"boolean": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz",
- "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
+ "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==",
"optional": true
},
"boxen": {
@@ -6893,29 +6608,6 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
"integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
"dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
}
}
},
@@ -6973,13 +6665,13 @@
"buffer-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
- "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
+ "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==",
"dev": true
},
"buffer-fill": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
"dev": true
},
"buffer-from": {
@@ -6988,9 +6680,9 @@
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"builder-util": {
- "version": "23.0.8",
- "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.0.8.tgz",
- "integrity": "sha512-xPpnoLLAEPx5oxxzRFINRnxmLNQDn+FddU7QRvCJDQi0jvUJ7UjdoGoM+UPy9yh+p9O82/nC7MHGuUptJkOXyQ==",
+ "version": "23.0.2",
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.0.2.tgz",
+ "integrity": "sha512-HaNHL3axNW/Ms8O1mDx3I07G+ZnZ/TKSWWvorOAPau128cdt9S+lNx5ocbx8deSaHHX4WFXSZVHh3mxlaKJNgg==",
"dev": true,
"requires": {
"@types/debug": "^4.1.6",
@@ -6998,10 +6690,10 @@
"7zip-bin": "~5.1.1",
"app-builder-bin": "4.0.0",
"bluebird-lst": "^1.0.9",
- "builder-util-runtime": "9.0.2",
+ "builder-util-runtime": "9.0.0",
"chalk": "^4.1.1",
"cross-spawn": "^7.0.3",
- "debug": "^4.3.4",
+ "debug": "^4.3.2",
"fs-extra": "^10.0.0",
"http-proxy-agent": "^5.0.0",
"https-proxy-agent": "^5.0.0",
@@ -7042,11 +6734,11 @@
}
},
"builder-util-runtime": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.2.tgz",
- "integrity": "sha512-xF55W/8mgfT6+sMbX0TeiJkTusA5GMOzckM4rajN4KirFcUIuLTH8oEaTYmM86YwVCZaTwa/7GyFhauXaEICwA==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz",
+ "integrity": "sha512-SkpEtSmTkREDHRJnxKEv43aAYp8sYWY8fxYBhGLBLOBIRXeaIp6Kv3lBgSD7uR8jQtC7CA659sqJrpSV6zNvSA==",
"requires": {
- "debug": "^4.3.4",
+ "debug": "^4.3.2",
"sax": "^1.2.4"
}
},
@@ -7128,22 +6820,16 @@
"readdirp": "~3.6.0"
}
},
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "dev": true
- },
"chromium-pickle-js": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
- "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=",
+ "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==",
"dev": true
},
"ci-info": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz",
- "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz",
+ "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==",
"dev": true
},
"cli-boxes": {
@@ -7159,28 +6845,6 @@
"requires": {
"slice-ansi": "^3.0.0",
"string-width": "^4.2.0"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- }
}
},
"cliui": {
@@ -7192,31 +6856,6 @@
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
"wrap-ansi": "^7.0.0"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- }
}
},
"clone-response": {
@@ -7243,7 +6882,7 @@
"colors": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
- "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
+ "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==",
"dev": true
},
"combined-stream": {
@@ -7263,7 +6902,7 @@
"compare-version": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
- "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=",
+ "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==",
"dev": true
},
"concat-map": {
@@ -7284,44 +6923,22 @@
}
},
"concurrently": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.1.0.tgz",
- "integrity": "sha512-Bz0tMlYKZRUDqJlNiF/OImojMB9ruKUz6GCfmhFnSapXgPe+3xzY4byqoKG9tUZ7L2PGEUjfLPOLfIX3labnmw==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.2.1.tgz",
+ "integrity": "sha512-7cab/QyqipqghrVr9qZmoWbidu0nHsmxrpNqQ7r/67vfl1DWJElexehQnTH1p+87tDkihaAjM79xTZyBQh7HLw==",
"dev": true,
"requires": {
"chalk": "^4.1.0",
"date-fns": "^2.16.1",
"lodash": "^4.17.21",
"rxjs": "^6.6.3",
+ "shell-quote": "^1.7.3",
"spawn-command": "^0.0.2-1",
"supports-color": "^8.1.0",
"tree-kill": "^1.2.2",
- "yargs": "^16.2.0"
+ "yargs": "^17.3.1"
},
"dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
"supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -7330,21 +6947,6 @@
"requires": {
"has-flag": "^4.0.0"
}
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- }
}
}
},
@@ -7372,12 +6974,6 @@
"xdg-basedir": "^4.0.0"
}
},
- "core-js": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.0.tgz",
- "integrity": "sha512-WJeQqq6jOYgVgg4NrXKL0KLQhi0CT4ZOCvFL+3CQ5o7I6J8HkT5wd53EadMfqTDp1so/MT1J+w2ujhWcCJtN7w==",
- "optional": true
- },
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
@@ -7467,7 +7063,7 @@
"defined": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
- "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+ "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==",
"dev": true
},
"delayed-stream": {
@@ -7482,14 +7078,14 @@
"optional": true
},
"detective": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
- "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
+ "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
"dev": true,
"requires": {
- "acorn-node": "^1.6.1",
+ "acorn-node": "^1.8.2",
"defined": "^1.0.0",
- "minimist": "^1.1.1"
+ "minimist": "^1.2.6"
}
},
"didyoumean": {
@@ -7513,7 +7109,7 @@
"commander": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==",
"dev": true,
"requires": {
"graceful-readlink": ">= 1.0.0"
@@ -7537,15 +7133,15 @@
"dev": true
},
"dmg-builder": {
- "version": "23.0.8",
- "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.0.8.tgz",
- "integrity": "sha512-dXguxjekxY70hzgAW+0NPCI7bagQ2ZrLDwYf1bvHSwlVfVizyJ/EC+e71U/NUgiWlXU5nogbWcGC3H74mFu0iw==",
+ "version": "23.0.3",
+ "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.0.3.tgz",
+ "integrity": "sha512-mBYrHHnSM5PC656TDE+xTGmXIuWHAGmmRfyM+dV0kP+AxtwPof4pAXNQ8COd0/exZQ4dqf72FiPS3B9G9aB5IA==",
"dev": true,
"requires": {
- "app-builder-lib": "23.0.8",
- "builder-util": "23.0.8",
- "builder-util-runtime": "9.0.2",
- "dmg-license": "^1.0.11",
+ "app-builder-lib": "23.0.3",
+ "builder-util": "23.0.2",
+ "builder-util-runtime": "9.0.0",
+ "dmg-license": "^1.0.9",
"fs-extra": "^10.0.0",
"iconv-lite": "^0.6.2",
"js-yaml": "^4.1.0"
@@ -7633,20 +7229,20 @@
"integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
},
"ejs": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz",
- "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
+ "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
"dev": true,
"requires": {
"jake": "^10.8.5"
}
},
"electron": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/electron/-/electron-18.2.0.tgz",
- "integrity": "sha512-AN+CKalzA57beuvuI90PVgW/yj6zjw7rpb1h8FvIwBJ3toDC3x0Plfzbzh4Ondecbjci7pSg/NA5ngOk804WIQ==",
+ "version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-19.0.4.tgz",
+ "integrity": "sha512-roRYr1VNAWIhjD9n8qZdmhROtrzsFpuZEXrjWAw+GqPbZlrUInmvFCviRDC2Lt+VBsTNRpTfPpfzXSlLL4reEw==",
"requires": {
- "@electron/get": "^1.13.0",
+ "@electron/get": "^1.14.1",
"@types/node": "^16.11.26",
"extract-zip": "^1.0.3"
},
@@ -7659,17 +7255,17 @@
}
},
"electron-builder": {
- "version": "23.0.8",
- "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.0.8.tgz",
- "integrity": "sha512-7WxdR4+l+VL4QN/K6NdqRQg7+cbIka4By1+4eN8odMPySSTI5d6nrV8R+SSRt9MXeWVdWlW8RCX5Pk6L0oaRug==",
+ "version": "23.0.3",
+ "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.0.3.tgz",
+ "integrity": "sha512-0lnTsljAgcOMuIiOjPcoFf+WxOOe/O04hZPgIvvUBXIbz3kolbNu0Xdch1f5WuQ40NdeZI7oqs8Eo395PcuGHQ==",
"dev": true,
"requires": {
"@types/yargs": "^17.0.1",
- "app-builder-lib": "23.0.8",
- "builder-util": "23.0.8",
- "builder-util-runtime": "9.0.2",
+ "app-builder-lib": "23.0.3",
+ "builder-util": "23.0.2",
+ "builder-util-runtime": "9.0.0",
"chalk": "^4.1.1",
- "dmg-builder": "23.0.8",
+ "dmg-builder": "23.0.3",
"fs-extra": "^10.0.0",
"is-ci": "^3.0.0",
"lazy-val": "^1.0.5",
@@ -7708,9 +7304,9 @@
}
},
"electron-context-menu": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-3.1.2.tgz",
- "integrity": "sha512-nNzu4w14n7mOR+4cLjRC9cEFqGUsAY76seOm0sw3f4OxEfX/d75m7HYekyp5b+0m7Ixy2KN/Mrljw1zLmpyV2w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-3.2.0.tgz",
+ "integrity": "sha512-JX6t8JmnaB28h1D6XrpGK/OLxXLDWzkBXZ2shvegThkTDOH8NaSiQBBv/FkFI0rmOUfLezWhPQibnrc0Tm96yA==",
"requires": {
"cli-truncate": "^2.1.0",
"electron-dl": "^3.2.1",
@@ -7799,20 +7395,20 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
}
}
},
"electron-publish": {
- "version": "23.0.8",
- "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.0.8.tgz",
- "integrity": "sha512-GnqJH7Wh8LnapN4npl1Xs2Er/486/qxE3dV42WxXHX2VeoKAJTOuCzOVWCxpajaR3Msji4SkS0p81R018uK6Mg==",
+ "version": "23.0.2",
+ "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.0.2.tgz",
+ "integrity": "sha512-8gMYgWqv96lc83FCm85wd+tEyxNTJQK7WKyPkNkO8GxModZqt1GO8S+/vAnFGxilS/7vsrVRXFfqiCDUCSuxEg==",
"dev": true,
"requires": {
"@types/fs-extra": "^9.0.11",
- "builder-util": "23.0.8",
- "builder-util-runtime": "9.0.2",
+ "builder-util": "23.0.2",
+ "builder-util-runtime": "9.0.0",
"chalk": "^4.1.1",
"fs-extra": "^10.0.0",
"lazy-val": "^1.0.5",
@@ -7849,12 +7445,12 @@
}
},
"electron-updater": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.0.3.tgz",
- "integrity": "sha512-fA8cYsMAQk7O1MzcdkZmz8/vhUh1M81EKhUNDBvvIWvJ3eatQ1xSAtEVj/VLWcIMp0UFjbXe1gqsyP/WWIOVNw==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.0.1.tgz",
+ "integrity": "sha512-dNnXPCqYmergXy3jgg4UICuD50Orug9GQe/5xfHy+BE2Fy0icB0QE+y6iQWdCDf7yeONxwMBf4HgIkGG5pIaVg==",
"requires": {
"@types/semver": "^7.3.6",
- "builder-util-runtime": "9.0.2",
+ "builder-util-runtime": "9.0.0",
"fs-extra": "^10.0.0",
"js-yaml": "^4.1.0",
"lazy-val": "^1.0.5",
@@ -7897,6 +7493,11 @@
}
}
},
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -7981,12 +7582,12 @@
"devOptional": true
},
"eslint": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz",
- "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==",
+ "version": "8.17.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz",
+ "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==",
"dev": true,
"requires": {
- "@eslint/eslintrc": "^1.2.2",
+ "@eslint/eslintrc": "^1.3.0",
"@humanwhocodes/config-array": "^0.9.2",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
@@ -7997,14 +7598,14 @@
"eslint-scope": "^7.1.1",
"eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.1",
+ "espree": "^9.3.2",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
"functional-red-black-tree": "^1.0.1",
"glob-parent": "^6.0.1",
- "globals": "^13.6.0",
+ "globals": "^13.15.0",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
@@ -8013,7 +7614,7 @@
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
"regexpp": "^3.2.0",
@@ -8307,20 +7908,20 @@
"dev": true
},
"espree": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz",
- "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz",
+ "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==",
"dev": true,
"requires": {
- "acorn": "^8.7.0",
- "acorn-jsx": "^5.3.1",
+ "acorn": "^8.7.1",
+ "acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.3.0"
},
"dependencies": {
"acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
"dev": true
}
}
@@ -8479,9 +8080,9 @@
}
},
"filelist": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz",
- "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
"dev": true,
"requires": {
"minimatch": "^5.0.1"
@@ -8497,9 +8098,9 @@
}
},
"minimatch": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
- "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
+ "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
"dev": true,
"requires": {
"brace-expansion": "^2.0.1"
@@ -8567,15 +8168,6 @@
"universalify": "^0.1.0"
}
},
- "fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -8662,13 +8254,12 @@
}
},
"global-agent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz",
- "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz",
+ "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==",
"optional": true,
"requires": {
"boolean": "^3.0.1",
- "core-js": "^3.6.5",
"es6-error": "^4.1.1",
"matcher": "^3.0.0",
"roarr": "^2.15.3",
@@ -8677,9 +8268,9 @@
},
"dependencies": {
"semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"optional": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -8717,18 +8308,18 @@
}
},
"globals": {
- "version": "13.13.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
- "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
}
},
"globalthis": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz",
- "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
"optional": true,
"requires": {
"define-properties": "^1.1.3"
@@ -8760,7 +8351,7 @@
"graceful-readlink": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==",
"dev": true
},
"has": {
@@ -8876,12 +8467,6 @@
"integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
"dev": true
},
- "immutable": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz",
- "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==",
- "dev": true
- },
"import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -9008,6 +8593,11 @@
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true
},
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
"is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -9388,25 +8978,6 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
- "minipass": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
- "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "dev": true,
- "requires": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- }
- },
"mkdirp": {
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
@@ -9431,9 +9002,9 @@
"integrity": "sha512-ngZRO82P7mPvw/3gu5NQ2QiUJGYTS0LAxvQnEAlWCJakvn7YpK2VAd9JWM5oosYUeqoVbkylH/FsqRc4fc2+ag=="
},
"nanoid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz",
- "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
"dev": true
},
"natural-compare": {
@@ -9634,6 +9205,12 @@
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"optional": true
},
+ "playwright-core": {
+ "version": "1.22.2",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.22.2.tgz",
+ "integrity": "sha512-w/hc/Ld0RM4pmsNeE6aL/fPNWw8BWit2tg+TfqJ3+p59c6s3B6C8mXvXrIPmfQEobkcFDc+4KirNzOQ+uBSP1Q==",
+ "dev": true
+ },
"plist": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz",
@@ -9653,16 +9230,27 @@
}
},
"postcss": {
- "version": "8.4.12",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz",
- "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==",
+ "version": "8.4.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
+ "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"dev": true,
"requires": {
- "nanoid": "^3.3.1",
+ "nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
}
},
+ "postcss-import": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
+ "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
+ "dev": true,
+ "requires": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ }
+ },
"postcss-js": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz",
@@ -9734,9 +9322,9 @@
}
},
"prettier-plugin-tailwindcss": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.10.tgz",
- "integrity": "sha512-ooDGNuXUjgCXfShliVYQ6+0iXqUFXn+zdNInPe0WZN9qINt9srbLGFGY5jeVL4MXtY20/4S8JaBcd8l6N6NfCQ==",
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.11.tgz",
+ "integrity": "sha512-a28+1jvpIZQdZ/W97wOXb6VqI762MKE/TxMMuibMEHhyYsSxQA8Ek30KObd5kJI2HF1ldtSYprFayXJXi3pz8Q==",
"dev": true,
"requires": {}
},
@@ -9796,9 +9384,9 @@
}
},
"qrcode-decoder": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/qrcode-decoder/-/qrcode-decoder-0.2.2.tgz",
- "integrity": "sha512-gyysRyA/SHaMn7yDKhFJ8AGNkbTJfSVq/7vtNWtBdW5PdT3m8SLX+YbWY04HRkoS/H7RaI3UfAsOw+cVqsfWHg==",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/qrcode-decoder/-/qrcode-decoder-0.3.1.tgz",
+ "integrity": "sha512-G80L1PdMaTvrWpHymX2buL48NWRkBsbj/zsE2dS418Llpgl0+MbplDwxA3gmZHX7ERUN7Nre84kSG62631aWDA==",
"requires": {
"jsqr": "^1.4.0"
}
@@ -9840,6 +9428,23 @@
}
}
},
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
+ "requires": {
+ "pify": "^2.3.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true
+ }
+ }
+ },
"read-config-file": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz",
@@ -10005,17 +9610,6 @@
"truncate-utf8-bytes": "^1.0.0"
}
},
- "sass": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz",
- "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==",
- "dev": true,
- "requires": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- }
- },
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
@@ -10073,6 +9667,12 @@
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true
},
+ "shell-quote": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz",
+ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==",
+ "dev": true
+ },
"side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@@ -10107,13 +9707,6 @@
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
"is-fullwidth-code-point": "^3.0.0"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- }
}
},
"smart-buffer": {
@@ -10187,6 +9780,16 @@
"safe-buffer": "~5.1.0"
}
},
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
"string.prototype.trimend": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
@@ -10254,15 +9857,15 @@
"dev": true
},
"tailwindcss": {
- "version": "3.0.24",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz",
- "integrity": "sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.2.tgz",
+ "integrity": "sha512-yJ6L5s1U5AeS5g7HHy212zdQfjwD426FBfm59pet/JsyneuZuD4C2W7PpJEg4ppisiB21uLqtNagv8KXury3+Q==",
"dev": true,
"requires": {
"arg": "^5.0.1",
"chokidar": "^3.5.3",
"color-name": "^1.1.4",
- "detective": "^5.2.0",
+ "detective": "^5.2.1",
"didyoumean": "^1.2.2",
"dlv": "^1.1.3",
"fast-glob": "^3.2.11",
@@ -10272,7 +9875,8 @@
"normalize-path": "^3.0.0",
"object-hash": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.12",
+ "postcss": "^8.4.14",
+ "postcss-import": "^14.1.0",
"postcss-js": "^4.0.0",
"postcss-load-config": "^3.1.4",
"postcss-nested": "5.0.6",
@@ -10293,28 +9897,6 @@
}
}
},
- "tar": {
- "version": "6.1.11",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
- "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
- "dev": true,
- "requires": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^3.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "dependencies": {
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true
- }
- }
- },
"temp-file": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz",
@@ -10651,31 +10233,6 @@
"dev": true,
"requires": {
"string-width": "^4.0.0"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- }
}
},
"winreg": {
@@ -10698,31 +10255,6 @@
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- }
}
},
"wrappy": {
@@ -10779,49 +10311,24 @@
"dev": true
},
"yargs": {
- "version": "17.0.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz",
- "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==",
+ "version": "17.5.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
+ "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
"dev": true,
"requires": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
"get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
- "string-width": "^4.2.0",
+ "string-width": "^4.2.3",
"y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- }
+ "yargs-parser": "^21.0.0"
}
},
"yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "version": "21.0.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
+ "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
"dev": true
},
"yauzl": {
diff --git a/package.json b/package.json
index 8719fc94..d1e32fd3 100644
--- a/package.json
+++ b/package.json
@@ -1,22 +1,19 @@
{
"name": "authme",
"productName": "Authme",
- "version": "3.3.0",
+ "version": "3.3.1",
"description": "Simple cross platform two-factor authentication app for desktop.",
"author": "Levminer",
"license": "GPL-3.0",
"scripts": {
- "dev": "npm run start",
"start": "node scripts/alpha-build.js && electron .",
"release": "node scripts/release-build.js && electron .",
- "build": "npm run build:release",
- "build:release": "node scripts/release-build.js && electron-builder --publish=never --x64",
+ "build": "node scripts/release-build.js && electron-builder --publish=never --x64",
"build:beta": "node scripts/beta-build.js && electron-builder --publish=never --x64",
"build:alpha": "node scripts/alpha-build.js && electron-builder --publish=never --x64",
"build:test": "node scripts/alpha-build.js && electron-builder --publish=never --x64 --dir -c scripts/test-build.json",
- "watch:styles": "concurrently 'npm:watch:tw' 'npm:watch:gb'",
- "watch:gb": "sass styles/global.scss styles/global.css --no-source-map --style compressed --watch",
- "watch:tw": "tailwindcss build -i styles/tailwind.scss -o styles/tailwind.css -c .tailwindrc.js --no-autoprefixer --minify --watch",
+ "watch": "tailwindcss build -i styles/index.css -o styles/tailwind.css -c .tailwindrc.js --no-autoprefixer --minify --watch",
+ "test": "npx playwright test",
"lint": "eslint --fix .",
"eslint": "eslint ."
},
@@ -51,7 +48,8 @@
"linux": {
"target": [
"appImage",
- "zip"
+ "zip",
+ "snap"
],
"maintainer": "levminer@levminer.com",
"icon": "img/icon.png",
@@ -65,6 +63,9 @@
"appImage": {
"artifactName": "authme-${version}-linux-x64-installer.appimage"
},
+ "snap": {
+ "artifactName": "authme-${version}-linux-x64-installer.snap"
+ },
"mac": {
"target": [
"dmg",
@@ -87,28 +88,28 @@
"auto-launch": "^5.0.5",
"axios": "^0.27.2",
"bcryptjs": "^2.4.3",
- "electron-context-menu": "^3.1.2",
+ "electron-context-menu": "^3.2.0",
"electron-debug": "^3.2.0",
- "electron-updater": "^5.0.3",
+ "electron-updater": "^5.0.1",
"protons": "^2.0.3",
- "qrcode-decoder": "^0.2.2",
+ "qrcode-decoder": "^0.3.1",
"qrcode-generator": "^1.4.4"
},
"devDependencies": {
- "@tailwindcss/forms": "^0.5.1",
- "concurrently": "^7.1.0",
- "electron": "^18.2.0",
- "electron-builder": "^23.0.8",
- "eslint": "^8.14.0",
+ "@playwright/test": "^1.22.2",
+ "@tailwindcss/forms": "^0.5.2",
+ "concurrently": "^7.2.1",
+ "electron": "^19.0.4",
+ "electron-builder": "^23.0.3",
+ "eslint": "^8.17.0",
"eslint-config-prettier": "^8.5.0",
"eslint-config-standard": "^17.0.0-1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-promise": "^6.0.0",
"prettier": "^2.6.2",
- "prettier-plugin-tailwindcss": "^0.1.10",
- "sass": "^1.51.0",
- "tailwindcss": "^3.0.24"
+ "prettier-plugin-tailwindcss": "^0.1.11",
+ "tailwindcss": "^3.1.2"
},
"engines": {
"node": ">=16.0.0",
diff --git a/screenshots/application.png b/screenshots/application.png
index 2694c6d13006e97b0e5980d71788ff0e8bb8192a..463824a8e3925539fac8dd12eff96ae14ac0578a 100644
GIT binary patch
literal 53232
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