From 4048f4a23001146e11c5d3781df2d67bcd5c9fb8 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 1 May 2024 15:04:29 +0800 Subject: [PATCH] recovery item opening logic. --- electron/main/commons/ipcEvent.ts | 3 +- electron/main/item/index.ts | 166 ++++------------ rust/lib.rs | 18 ++ rust/windows.rs | 89 ++++++++- yarn.lock | 303 +++++++++++++++++------------- 5 files changed, 311 insertions(+), 268 deletions(-) diff --git a/electron/main/commons/ipcEvent.ts b/electron/main/commons/ipcEvent.ts index 2552b2d..d0f35a3 100644 --- a/electron/main/commons/ipcEvent.ts +++ b/electron/main/commons/ipcEvent.ts @@ -11,7 +11,6 @@ import { } from "."; import { statSync } from "node:fs"; import { getWindow } from "../commons/index"; -import { execute } from "../item"; export default function () { // emit @@ -166,7 +165,7 @@ export default function () { }); // 运行 ipcMain.on("run", (event, args) => { - execute( + global.addon.shellExecute( args.operation, args.target, args.params ?? "", diff --git a/electron/main/item/index.ts b/electron/main/item/index.ts index 0dab8ef..21dff6d 100644 --- a/electron/main/item/index.ts +++ b/electron/main/item/index.ts @@ -1,5 +1,5 @@ import { BrowserWindow, shell, dialog, app } from "electron"; -import { join, dirname } from "node:path"; +import { join } from "node:path"; import { parsePath, getURLParams } from "../../commons/utils"; import { Item } from "../../../types/item"; import { @@ -11,7 +11,7 @@ import { updateData, updateOrder, } from "./data"; -import { writeFile, statSync, readFileSync } from "node:fs"; +import { writeFile, statSync, readFileSync, accessSync } from "node:fs"; import mime from "mime"; import { deleteExtname, @@ -27,7 +27,6 @@ import { sendToWebContent, } from "../commons/index"; import { fork } from "../../commons/utilityProcessUtils"; -import { exec } from "node:child_process"; // 窗口 let itemAddEditWindow: BrowserWindow | null = null; @@ -302,62 +301,6 @@ function updateOpenInfo(type: string, id: number) { } } -/** - * 运行 - * @param operation - * @param file - * @param params - * @param startLocation - */ -function execute( - operation: "open" | "runas", - file: string, - params: string | null, - startLocation: string | null = null -) { - // 工作目录 - let currentDir = startLocation; - if (!currentDir || currentDir.trim() === "") { - try { - let statRes = statSync(file); - if (statRes.isDirectory()) { - currentDir = file; - } else { - currentDir = dirname(file); - } - } catch (e) { - currentDir = app.getPath("home"); - } - } - // 组装命令 - let cmd: string; - if (operation === "open") { - cmd = 'start "" "' + file + '"'; - if (params && params.trim() !== "") { - let paramsList = analysisParams(params); - for (const param of paramsList) { - cmd += ' "' + param + '"'; - } - } - } else if (operation === "runas") { - cmd = "powershell Start-Process"; - cmd += " '\"" + file + "\"' "; - cmd += "-Verb RunAs"; - if (params && params.trim() !== "") { - cmd += " -ArgumentList "; - let paramsList = analysisParams(params); - for (let i = 0; i < paramsList.length; i++) { - if (i > 0) { - cmd += ", "; - } - cmd += "'\\\"" + paramsList[i] + "\\\"'"; - } - } - } - // 运行 - exec(cmd, { cwd: currentDir }); -} - /** * 运行项目 * @param type @@ -377,88 +320,50 @@ function run( // 网址 shell.openExternal(item.data.target); } else if (item.type === 3 || item.type === 4) { - if (item.data.target.indexOf("shell:") >= 0) { - // 带有shell: - exec("explorer " + item.data.target); - } else if (item.data.target === "static:TurnOffMonitor") { - // 关闭显示器 - global.addon.turnOffMonitor(); - } else { - if (item.type === 3) { - // 带路径的系统软件 - let path = global.addon.searchPath(item.data.target); - if (!path || path.trim() === "") { - path = item.data.target; - } - let cmd = 'start "" "' + path + '"'; - if (item.data.params && item.data.params.trim() !== "") { - let paramsList = analysisParams(item.data.params); - for (const param of paramsList) { - cmd += ' "' + param + '"'; - } - } - exec(cmd, { - cwd: app.getPath("home"), - }); - } else { - // appx - execute( - "open", - item.data.target, - item.data.params, - app.getPath("home") - ); - } - } + // 系统 或 appx + global.addon.systemItemExecute(item.data.target, item.data.params); } else { // 获取绝对路径 if (item.type === 0 || item.type === 1) { // 获取路径 item.data.target = parsePath(item.data.target); } - if (operation === "openFileLocation") { - // 打开文件所在位置 - global.addon.openFileLocation(item.data.target); - } else { - // 运行 - execute( - operation, - item.data.target, - item.data.params ?? "", - item.data.startLocation - ); + try { + // 判断文件或文件夹是否存在 + accessSync(item.data.target); + // 存在 + if (operation === "openFileLocation") { + // 打开文件所在位置 + global.addon.openFileLocation(item.data.target); + } else { + // 运行 + global.addon.shellExecute( + operation, + item.data.target, + item.data.params ?? "", + item.data.startLocation + ); + } + } catch (e) { + let message: string | null = null; + if (item.type === 0 && operation !== "openFileLocation") { + message = global.language.notFoundFile; + } else { + message = global.language.notFoundFolder; + } + message += '"' + item.data.target + '"'; + dialog.showMessageBox(global.mainWindow, { + title: "Dawn Launcher", + message: message, + buttons: [global.language.ok], + type: "error", + noLink: true, + }); } } } } -/** - * 解析参数 - * @param params - */ -function analysisParams(params: string) { - // res - let resParams = []; - // 尝试获取带有双引号的参数 - const values = params.trim().match(/"([^"]*)"/g); - // 添加到结果列表并替换掉原有字符串 - if (values) { - values.forEach((v) => { - resParams.push(v.replace(/"/g, "")); - params = params.replace(v, ""); - }); - } - // 按空格切分参数 - let split = params.trim().split(" "); - split.forEach((v) => { - if (v.trim() !== "") { - resParams.push(v); - } - }); - // 返回 - return resParams; -} - /** * 转换目标路径 * @param idList @@ -806,5 +711,4 @@ export { pasteIcon, checkInvalid, deleteQuickSearchHistory, - execute, }; diff --git a/rust/lib.rs b/rust/lib.rs index 581d6f0..18ed02e 100644 --- a/rust/lib.rs +++ b/rust/lib.rs @@ -183,3 +183,21 @@ fn get_cursor_point() -> [i32; 2] { pub fn turn_off_monitor() { windows::turn_off_monitor() } + +/** + * 运行 + */ +#[allow(dead_code)] +#[napi] +fn shell_execute(operation: String, file: String, params: String, start_location: Option) { + windows::shell_execute(operation, file, params, start_location) +} + +/** + * 运行系统项目 + */ +#[allow(dead_code)] +#[napi] +fn system_item_execute(target: String, params: Option) { + windows::system_item_execute(&target, params.as_deref()) +} diff --git a/rust/windows.rs b/rust/windows.rs index f5336b3..3e7a591 100644 --- a/rust/windows.rs +++ b/rust/windows.rs @@ -6,15 +6,17 @@ use napi::{ JsFunction, }; use serde::{Deserialize, Serialize}; +use std::thread; use std::{ collections::HashMap, io::Cursor, + path::Path, process::Command, sync::atomic::{AtomicBool, Ordering}, }; -use windows::Management::Deployment::PackageManager; use windows::{ core::{ComInterface, HSTRING, PCSTR, PCWSTR}, + w, Win32::{ Foundation::{HWND, LPARAM, LRESULT, MAX_PATH, POINT, RECT, SIZE, WPARAM}, Graphics::{ @@ -56,6 +58,13 @@ use windows::{ }, }, }; +use windows::{ + Management::Deployment::PackageManager, + Win32::{ + System::SystemInformation::GetSystemDirectoryW, + UI::{Shell::ShellExecuteW, WindowsAndMessaging::SW_SHOWDEFAULT}, + }, +}; // 获取图标并转为BASE64 pub fn get_file_icon(path: &str) -> Option { @@ -701,3 +710,81 @@ pub fn get_cursor_point() -> [i32; 2] { }; [point.x, point.y] } + +/** + * 运行 + */ +pub fn shell_execute( + operation: String, + file: String, + params: String, + start_location: Option, +) { + thread::spawn(move || { + // dir + let dir = start_location.unwrap_or_else(|| { + // 判断是否是文件夹 + let path = Path::new(&file); + if path.is_dir() { + // 文件夹 + file.clone() + } else { + // 文件 获取上一级目录 + path.parent().unwrap().display().to_string() + } + }); + // HSTRING + let operation = HSTRING::from(operation.as_str()); + let file = HSTRING::from(file.as_str()); + let params = HSTRING::from(params.as_str()); + let dir = HSTRING::from(dir.as_str()); + // PCWSTR + let operation = PCWSTR(operation.as_ptr()); + let file = PCWSTR(file.as_ptr()); + let params = PCWSTR(params.as_ptr()); + let dir = PCWSTR(dir.as_ptr()); + unsafe { + // execute + ShellExecuteW(None, operation, file, params, dir, SW_SHOWDEFAULT); + } + }); +} + +/** + * 运行命令 + */ +pub fn system_item_execute(target: &str, params: Option<&str>) { + if target == "static:TurnOffMonitor" { + // 关闭显示器 + turn_off_monitor() + } else { + let mut file = target.to_string(); + if !target.starts_with("shell:") { + // 如果不是shell开头,就查询路径 + file = search_path(target).unwrap_or(target.to_string()); + } + let file = HSTRING::from(file); + let params = match params { + Some(p) => HSTRING::from(p), + _ => HSTRING::new(), + }; + // 获取系统盘路径当作工作目录 + let mut buffer = [0u16; MAX_PATH as usize]; + unsafe { + GetSystemDirectoryW(Some(&mut buffer)); + } + let dir = u16_to_string(&buffer); + let dir = HSTRING::from(dir); + // execute + unsafe { + ShellExecuteW( + None, + w!("open"), + PCWSTR(file.as_ptr()), + PCWSTR(params.as_ptr()), + PCWSTR(dir.as_ptr()), + SW_SHOWDEFAULT, + ); + } + } +} diff --git a/yarn.lock b/yarn.lock index 4d526ba..9388450 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"7zip-bin@~5.1.1": - version "5.1.1" - resolved "https://registry.npmmirror.com/7zip-bin/-/7zip-bin-5.1.1.tgz#9274ec7460652f9c632c59addf24efb1684ef876" - integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== +"7zip-bin@~5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.2.0.tgz#7a03314684dd6572b7dfa89e68ce31d60286854d" + integrity sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A== "@alloc/quick-lru@^5.2.0": version "5.2.0" @@ -17,6 +17,11 @@ resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== +"@babel/parser@^7.24.4": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790" + integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== + "@babel/runtime@^7.21.0": version "7.23.2" resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" @@ -66,10 +71,10 @@ optionalDependencies: global-agent "^3.0.0" -"@electron/notarize@2.1.0": - version "2.1.0" - resolved "https://registry.npmmirror.com/@electron/notarize/-/notarize-2.1.0.tgz#76aaec10c8687225e8d0a427cc9df67611c46ff3" - integrity sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA== +"@electron/notarize@2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-2.2.1.tgz#d0aa6bc43cba830c41bfd840b85dbe0e273f59fe" + integrity sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg== dependencies: debug "^4.1.1" fs-extra "^9.0.1" @@ -87,10 +92,10 @@ minimist "^1.2.6" plist "^3.0.5" -"@electron/universal@1.4.1": - version "1.4.1" - resolved "https://registry.npmmirror.com/@electron/universal/-/universal-1.4.1.tgz#3fbda2a5ed9ff9f3304c8e8316b94c1e3a7b3785" - integrity sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ== +"@electron/universal@1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.5.1.tgz#f338bc5bcefef88573cf0ab1d5920fac10d06ee5" + integrity sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw== dependencies: "@electron/asar" "^3.2.1" "@malept/cross-spawn-promise" "^1.1.0" @@ -529,7 +534,26 @@ estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-dom@3.3.7", "@vue/compiler-dom@^3.3.0": +"@vue/compiler-core@3.4.26": + version "3.4.26" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.26.tgz#d507886520e83a6f8339ed55ed0b2b5d84b44b73" + integrity sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ== + dependencies: + "@babel/parser" "^7.24.4" + "@vue/shared" "3.4.26" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + +"@vue/compiler-dom@3.4.26": + version "3.4.26" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.26.tgz#acc7b788b48152d087d4bb9e655b795e3dbec554" + integrity sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA== + dependencies: + "@vue/compiler-core" "3.4.26" + "@vue/shared" "3.4.26" + +"@vue/compiler-dom@^3.3.0": version "3.3.7" resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.7.tgz#a245aa03f9bfcdb537a239bf02842072de0644c9" integrity sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw== @@ -537,29 +561,28 @@ "@vue/compiler-core" "3.3.7" "@vue/shared" "3.3.7" -"@vue/compiler-sfc@3.3.7": - version "3.3.7" - resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.7.tgz#219d04b3013c7b15fbc536e2279e07810b731cc2" - integrity sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw== +"@vue/compiler-sfc@3.4.26": + version "3.4.26" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.26.tgz#c679f206829954c3c078d8a9be76d0098b8377ae" + integrity sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw== dependencies: - "@babel/parser" "^7.23.0" - "@vue/compiler-core" "3.3.7" - "@vue/compiler-dom" "3.3.7" - "@vue/compiler-ssr" "3.3.7" - "@vue/reactivity-transform" "3.3.7" - "@vue/shared" "3.3.7" + "@babel/parser" "^7.24.4" + "@vue/compiler-core" "3.4.26" + "@vue/compiler-dom" "3.4.26" + "@vue/compiler-ssr" "3.4.26" + "@vue/shared" "3.4.26" estree-walker "^2.0.2" - magic-string "^0.30.5" - postcss "^8.4.31" - source-map-js "^1.0.2" + magic-string "^0.30.10" + postcss "^8.4.38" + source-map-js "^1.2.0" -"@vue/compiler-ssr@3.3.7": - version "3.3.7" - resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.7.tgz#eff4a70f7ceb800d60e68d208b96a030c0f1b636" - integrity sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg== +"@vue/compiler-ssr@3.4.26": + version "3.4.26" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.26.tgz#22842d8adfff972d87bb798b8d496111f7f814b5" + integrity sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ== dependencies: - "@vue/compiler-dom" "3.3.7" - "@vue/shared" "3.3.7" + "@vue/compiler-dom" "3.4.26" + "@vue/shared" "3.4.26" "@vue/devtools-api@^6.5.0": version "6.5.1" @@ -580,54 +603,48 @@ muggle-string "^0.3.1" vue-template-compiler "^2.7.14" -"@vue/reactivity-transform@3.3.7": - version "3.3.7" - resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.7.tgz#eb9f5110af5085079b851d162205394bc790d539" - integrity sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA== +"@vue/reactivity@3.4.26": + version "3.4.26" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.26.tgz#1191f543809d4c93e5b3e842ba83022350a3f205" + integrity sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ== dependencies: - "@babel/parser" "^7.23.0" - "@vue/compiler-core" "3.3.7" - "@vue/shared" "3.3.7" - estree-walker "^2.0.2" - magic-string "^0.30.5" + "@vue/shared" "3.4.26" -"@vue/reactivity@3.3.7": - version "3.3.7" - resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.7.tgz#48b6671a45ba33039da2c0eb25ae702f924486a9" - integrity sha512-cZNVjWiw00708WqT0zRpyAgduG79dScKEPYJXq2xj/aMtk3SKvL3FBt2QKUlh6EHBJ1m8RhBY+ikBUzwc7/khg== +"@vue/runtime-core@3.4.26": + version "3.4.26" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.26.tgz#51ee971cb700370a67e5a510c4a84eff7491d658" + integrity sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw== dependencies: - "@vue/shared" "3.3.7" + "@vue/reactivity" "3.4.26" + "@vue/shared" "3.4.26" -"@vue/runtime-core@3.3.7": - version "3.3.7" - resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.7.tgz#c1eece1c98f936dc69dd0667d11b464579b128fd" - integrity sha512-LHq9du3ubLZFdK/BP0Ysy3zhHqRfBn80Uc+T5Hz3maFJBGhci1MafccnL3rpd5/3wVfRHAe6c+PnlO2PAavPTQ== +"@vue/runtime-dom@3.4.26": + version "3.4.26" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.26.tgz#179aa7c8dc964112e6d096bc8ec5f361111009a1" + integrity sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw== dependencies: - "@vue/reactivity" "3.3.7" - "@vue/shared" "3.3.7" + "@vue/runtime-core" "3.4.26" + "@vue/shared" "3.4.26" + csstype "^3.1.3" -"@vue/runtime-dom@3.3.7": - version "3.3.7" - resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.7.tgz#e7cf88cc01591fdf6e3164825554fdadc3137ffc" - integrity sha512-PFQU1oeJxikdDmrfoNQay5nD4tcPNYixUBruZzVX/l0eyZvFKElZUjW4KctCcs52nnpMGO6UDK+jF5oV4GT5Lw== +"@vue/server-renderer@3.4.26": + version "3.4.26" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.26.tgz#6d0c6b0366bfe0232579aea00e3ff6784e5a1c60" + integrity sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw== dependencies: - "@vue/runtime-core" "3.3.7" - "@vue/shared" "3.3.7" - csstype "^3.1.2" - -"@vue/server-renderer@3.3.7": - version "3.3.7" - resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.7.tgz#0cc3dc6ad39a54693e6e8f853caa3c7bb43b0364" - integrity sha512-UlpKDInd1hIZiNuVVVvLgxpfnSouxKQOSE2bOfQpBuGwxRV/JqqTCyyjXUWiwtVMyeRaZhOYYqntxElk8FhBhw== - dependencies: - "@vue/compiler-ssr" "3.3.7" - "@vue/shared" "3.3.7" + "@vue/compiler-ssr" "3.4.26" + "@vue/shared" "3.4.26" "@vue/shared@3.3.7", "@vue/shared@^3.3.0": version "3.3.7" resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.7.tgz#0091852fe5cc4237c8440fe32f3ab6bc920ae6d9" integrity sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg== +"@vue/shared@3.4.26": + version "3.4.26" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.26.tgz#f17854fb1faf889854aed4b23b60e86a8cab6403" + integrity sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ== + "@xicons/utils@^0.1.4": version "0.1.4" resolved "https://registry.npmmirror.com/@xicons/utils/-/utils-0.1.4.tgz#cece50613b34d4b4c71e73bb0be92981067e11e1" @@ -709,26 +726,25 @@ app-builder-bin@4.0.0: resolved "https://registry.npmmirror.com/app-builder-bin/-/app-builder-bin-4.0.0.tgz#1df8e654bd1395e4a319d82545c98667d7eed2f0" integrity sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA== -app-builder-lib@24.6.4: - version "24.6.4" - resolved "https://registry.npmmirror.com/app-builder-lib/-/app-builder-lib-24.6.4.tgz#5bf77dd89d3ee557bc615b9ddfaf383f3e51577b" - integrity sha512-m9931WXb83teb32N0rKg+ulbn6+Hl8NV5SUpVDOVz9MWOXfhV6AQtTdftf51zJJvCQnQugGtSqoLvgw6mdF/Rg== +app-builder-lib@24.13.3: + version "24.13.3" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-24.13.3.tgz#36e47b65fecb8780bb73bff0fee4e0480c28274b" + integrity sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig== dependencies: - "7zip-bin" "~5.1.1" "@develar/schema-utils" "~2.6.5" - "@electron/notarize" "2.1.0" + "@electron/notarize" "2.2.1" "@electron/osx-sign" "1.0.5" - "@electron/universal" "1.4.1" + "@electron/universal" "1.5.1" "@malept/flatpak-bundler" "^0.4.0" "@types/fs-extra" "9.0.13" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "24.5.0" - builder-util-runtime "9.2.1" + builder-util "24.13.1" + builder-util-runtime "9.2.4" chromium-pickle-js "^0.2.0" debug "^4.3.4" ejs "^3.1.8" - electron-publish "24.5.0" + electron-publish "24.13.1" form-data "^4.0.0" fs-extra "^10.1.0" hosted-git-info "^4.1.0" @@ -839,10 +855,10 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -better-sqlite3-multiple-ciphers@^9.0.0: - version "9.0.0" - resolved "https://registry.npmmirror.com/better-sqlite3-multiple-ciphers/-/better-sqlite3-multiple-ciphers-9.0.0.tgz#ce6f10dd5950a508c2bd1596e2863fd5faa3b0bc" - integrity sha512-bM0gv20exF1X1Q8/Rz0PasxCYcgb8VIbQKOhYe3Js35uFAmrvnX8AUqW6c/eq+i8WRtAoRw4yAOBs5Nxx7qaXw== +better-sqlite3-multiple-ciphers@^9.4.1: + version "9.5.0" + resolved "https://registry.yarnpkg.com/better-sqlite3-multiple-ciphers/-/better-sqlite3-multiple-ciphers-9.5.0.tgz#15948374ee42cf5c7deeb56d7c4693faa33f2d2e" + integrity sha512-6A9xBRvssONJW07Lur6pmkaUwlCGz1bnjFmXrrAR3qXETUBk92OI4C/+LhMOatn5wQ8AQzLScFZC/CKUpxkTaw== dependencies: bindings "^1.5.0" prebuild-install "^7.1.1" @@ -945,24 +961,24 @@ buffer@^5.1.0, buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builder-util-runtime@9.2.1: - version "9.2.1" - resolved "https://registry.npmmirror.com/builder-util-runtime/-/builder-util-runtime-9.2.1.tgz#3184dcdf7ed6c47afb8df733813224ced4f624fd" - integrity sha512-2rLv/uQD2x+dJ0J3xtsmI12AlRyk7p45TEbE/6o/fbb633e/S3pPgm+ct+JHsoY7r39dKHnGEFk/AASRFdnXmA== +builder-util-runtime@9.2.4: + version "9.2.4" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz#13cd1763da621e53458739a1e63f7fcba673c42a" + integrity sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA== dependencies: debug "^4.3.4" sax "^1.2.4" -builder-util@24.5.0: - version "24.5.0" - resolved "https://registry.npmmirror.com/builder-util/-/builder-util-24.5.0.tgz#8683c9a7a1c5c9f9a4c4d2789ecca0e47dddd3f9" - integrity sha512-STnBmZN/M5vGcv01u/K8l+H+kplTaq4PAIn3yeuufUKSpcdro0DhJWxPI81k5XcNfC//bjM3+n9nr8F9uV4uAQ== +builder-util@24.13.1: + version "24.13.1" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-24.13.1.tgz#4a4c4f9466b016b85c6990a0ea15aa14edec6816" + integrity sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA== dependencies: - "7zip-bin" "~5.1.1" + "7zip-bin" "~5.2.0" "@types/debug" "^4.1.6" app-builder-bin "4.0.0" bluebird-lst "^1.0.9" - builder-util-runtime "9.2.1" + builder-util-runtime "9.2.4" chalk "^4.1.2" cross-spawn "^7.0.3" debug "^4.3.4" @@ -1239,10 +1255,10 @@ cssesc@^3.0.0: resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -csstype@^3.1.2: - version "3.1.2" - resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== +csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== csstype@~3.0.5: version "3.0.11" @@ -1362,14 +1378,14 @@ dlv@^1.1.3: resolved "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== -dmg-builder@24.6.4: - version "24.6.4" - resolved "https://registry.npmmirror.com/dmg-builder/-/dmg-builder-24.6.4.tgz#e19b8305f7e1ea0b4faaa30382c81b9d6de39863" - integrity sha512-BNcHRc9CWEuI9qt0E655bUBU/j/3wUCYBVKGu1kVpbN5lcUdEJJJeiO0NHK3dgKmra6LUUZlo+mWqc+OCbi0zw== +dmg-builder@24.13.3: + version "24.13.3" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-24.13.3.tgz#95d5b99c587c592f90d168a616d7ec55907c7e55" + integrity sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ== dependencies: - app-builder-lib "24.6.4" - builder-util "24.5.0" - builder-util-runtime "9.2.1" + app-builder-lib "24.13.3" + builder-util "24.13.1" + builder-util-runtime "9.2.4" fs-extra "^10.1.0" iconv-lite "^0.6.2" js-yaml "^4.1.0" @@ -1457,16 +1473,16 @@ ejs@^3.1.8: dependencies: jake "^10.8.5" -electron-builder@^24.6.4: - version "24.6.4" - resolved "https://registry.npmmirror.com/electron-builder/-/electron-builder-24.6.4.tgz#c51271e49b9a02c9a3ec444f866b6008c4d98a1d" - integrity sha512-uNWQoU7pE7qOaIQ6CJHpBi44RJFVG8OHRBIadUxrsDJVwLLo8Nma3K/EEtx5/UyWAQYdcK4nVPYKoRqBb20hbA== +electron-builder@^24.6.5: + version "24.13.3" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-24.13.3.tgz#c506dfebd36d9a50a83ee8aa32d803d83dbe4616" + integrity sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg== dependencies: - app-builder-lib "24.6.4" - builder-util "24.5.0" - builder-util-runtime "9.2.1" + app-builder-lib "24.13.3" + builder-util "24.13.1" + builder-util-runtime "9.2.4" chalk "^4.1.2" - dmg-builder "24.6.4" + dmg-builder "24.13.3" fs-extra "^10.1.0" is-ci "^3.0.0" lazy-val "^1.0.5" @@ -1479,14 +1495,14 @@ electron-log@^5.0.0: resolved "https://registry.npmmirror.com/electron-log/-/electron-log-5.0.0.tgz#b5fab83500fce1c61ec7493701f5e228b752d2e2" integrity sha512-vB3akupmQvA8jAyNL9rULZtf6WoP8vsabjXsRtiqXS6/D37SwN/4LEyj4JD+9Bv6xoTcx/LrVnsIKEEWdq5ClQ== -electron-publish@24.5.0: - version "24.5.0" - resolved "https://registry.npmmirror.com/electron-publish/-/electron-publish-24.5.0.tgz#492a4d7caa232e88ee3c18f5c3b4dc637e5e1b3a" - integrity sha512-zwo70suH15L15B4ZWNDoEg27HIYoPsGJUF7xevLJLSI7JUPC8l2yLBdLGwqueJ5XkDL7ucYyRZzxJVR8ElV9BA== +electron-publish@24.13.1: + version "24.13.1" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-24.13.1.tgz#57289b2f7af18737dc2ad134668cdd4a1b574a0c" + integrity sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A== dependencies: "@types/fs-extra" "^9.0.11" - builder-util "24.5.0" - builder-util-runtime "9.2.1" + builder-util "24.13.1" + builder-util-runtime "9.2.4" chalk "^4.1.2" fs-extra "^10.1.0" lazy-val "^1.0.5" @@ -1505,10 +1521,10 @@ electron-to-chromium@^1.4.535: resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.569.tgz#1298b67727187ffbaac005a7425490d157f3ad03" integrity sha512-LsrJjZ0IbVy12ApW3gpYpcmHS3iRxH4bkKOW98y1/D+3cvDUWGcbzbsFinfUS8knpcZk/PG/2p/RnkMCYN7PVg== -electron@^26.4.2: - version "26.4.2" - resolved "https://registry.npmmirror.com/electron/-/electron-26.4.2.tgz#2f976a3c30558f09ced3f5876862b4c21172c02c" - integrity sha512-BOfQUOIvsq5NnssWOMqcZnA5M0ull620wvQoJq3WhXN1wJAsWu+cdjHvREyxnHbArPkV+F+x3YAi5Dt+UKoqhw== +electron@^28.2.10: + version "28.3.1" + resolved "https://registry.yarnpkg.com/electron/-/electron-28.3.1.tgz#babb3ff8e246336e9cd1c1966f16a55ba723ea06" + integrity sha512-aF9fONuhVDJlctJS7YOw76ynxVAQdfIWmlhRMKits24tDcdSL0eMHUS0wWYiRfGWbQnUKB6V49Rf17o32f4/fg== dependencies: "@electron/get" "^2.0.0" "@types/node" "^18.11.18" @@ -1526,7 +1542,7 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -entities@^4.2.0, entities@^4.4.0: +entities@^4.2.0, entities@^4.4.0, entities@^4.5.0: version "4.5.0" resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== @@ -2296,10 +2312,10 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@^0.30.5: - version "0.30.5" - resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== +magic-string@^0.30.10: + version "0.30.10" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" + integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -2487,6 +2503,11 @@ nanoid@^3.3.6: resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + napi-build-utils@^1.0.1: version "1.0.2" resolved "https://registry.npmmirror.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" @@ -2760,6 +2781,15 @@ postcss@^8.4.23, postcss@^8.4.27, postcss@^8.4.31: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.38: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + prebuild-install@^7.1.1: version "7.1.1" resolved "https://registry.npmmirror.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" @@ -3115,6 +3145,11 @@ source-map-js@^1.0.2: resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + source-map-support@^0.5.19: version "0.5.21" resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -3506,16 +3541,16 @@ vue-tsc@^1.8.22: "@vue/language-core" "1.8.22" semver "^7.5.4" -vue@^3.3.7: - version "3.3.7" - resolved "https://registry.npmmirror.com/vue/-/vue-3.3.7.tgz#972a218682443a3819d121261b2bff914417f4f0" - integrity sha512-YEMDia1ZTv1TeBbnu6VybatmSteGOS3A3YgfINOfraCbf85wdKHzscD6HSS/vB4GAtI7sa1XPX7HcQaJ1l24zA== +vue@^3.4.13: + version "3.4.26" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.26.tgz#936c97e37672c737705d7bdfa62c31af18742269" + integrity sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg== dependencies: - "@vue/compiler-dom" "3.3.7" - "@vue/compiler-sfc" "3.3.7" - "@vue/runtime-dom" "3.3.7" - "@vue/server-renderer" "3.3.7" - "@vue/shared" "3.3.7" + "@vue/compiler-dom" "3.4.26" + "@vue/compiler-sfc" "3.4.26" + "@vue/runtime-dom" "3.4.26" + "@vue/server-renderer" "3.4.26" + "@vue/shared" "3.4.26" vueuc@^0.4.51: version "0.4.51"