From 2bed005399800edb78a79f8f202e71d60426b619 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Tue, 7 Nov 2023 13:23:43 +0100 Subject: [PATCH 01/86] Sort of a cleanup of src-main.rs --- src-tauri/src/main.rs | 72 ++++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 0bb0ac95..248ffcb4 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -6,17 +6,18 @@ extern crate core; use log::*; + +use std::env::current_exe; use std::str::FromStr; use std::time; -use tauri_plugin_log::fern::colors::{Color, ColoredLevelConfig}; use byte_unit::{Byte, ByteUnit}; -use std::env::current_exe; use tauri::{ CustomMenuItem, Manager, SystemTray, SystemTrayEvent, SystemTrayMenu, SystemTrayMenuItem, WindowEvent, }; +use tauri_plugin_log::fern::colors::{Color, ColoredLevelConfig}; use wooting_macro_backend::config::*; use wooting_macro_backend::*; @@ -57,6 +58,7 @@ async fn set_macros( } #[tauri::command] +/// Gets the monitor data to the frontend. Currently unused. async fn get_monitor_data() -> Result, ()> { #[cfg(any(target_os = "windows", target_os = "linux"))] return Ok(plugin::system_event::backend_load_monitors().await); @@ -72,7 +74,6 @@ async fn control_grabbing( frontend_bool: bool, ) -> Result<(), ()> { state.set_is_listening(frontend_bool); - // set_macro_listening(state, frontend_bool); Ok(()) } @@ -85,32 +86,33 @@ async fn main() { .and_then(|s| log::LevelFilter::from_str(s).ok()) .unwrap_or(log::LevelFilter::Info); - wooting_macro_backend::MacroBackend::generate_directories(); + MacroBackend::generate_directories(); let backend = MacroBackend::default(); - info!("Running the macro backend"); - #[cfg(any(target_os = "windows", target_os = "linux"))] + // The backend is run only on Windows and Linux, on macOS it won't work. + info!("Running the macro backend"); backend.init().await; + // Read the options from the config. let set_autolaunch: bool = backend.config.read().await.auto_start; let set_launch_minimized: bool = backend.config.read().await.minimize_at_launch; - // Begin the main event loop. This loop cannot run on another thread on MacOS. + // Set the window behaviors (add buttons to the right click tray menu). let quit = CustomMenuItem::new("quit".to_string(), "Quit"); let hide_show = CustomMenuItem::new("hide_show".to_string(), "Hide"); - let tray_menu = SystemTrayMenu::new() .add_item(hide_show) .add_native_item(SystemTrayMenuItem::Separator) .add_item(quit); - let system_tray = SystemTray::new().with_menu(tray_menu); + // Initialize the main application tauri::Builder::default() - // This is where you pass in your commands + // State management is initialized .manage(backend) + // This is where commands shared with frontend are passed .invoke_handler(tauri::generate_handler![ get_macros, set_macros, @@ -121,30 +123,32 @@ async fn main() { ]) .setup(move |app| { let app_name = &app.package_info().name; - let current_exe = current_exe().unwrap(); - - let auto_start = auto_launch::AutoLaunchBuilder::new() - .set_app_name(app_name) - .set_app_path(current_exe.as_path().to_str().unwrap()) - .set_use_launch_agent(true) - .build() - .unwrap(); + if let Ok(current_exe) = current_exe() { + let auto_start = auto_launch::AutoLaunchBuilder::new() + .set_app_name(app_name) + .set_app_path(current_exe.as_path().to_str().unwrap()) + .set_use_launch_agent(true) + .build() + .expect("App name is empty, or unsupported OS is used."); - match set_autolaunch { - true => auto_start.enable().unwrap(), - false => { - if let Err(e) = auto_start.disable() { - match e { - auto_launch::Error::Io(err) => match err.kind() { - std::io::ErrorKind::NotFound => { - info!("Autostart is already removed, finished checking.") - } - _ => error!("{}", err), - }, - _ => error!("{}", e), + match set_autolaunch { + true => auto_start.enable().expect("Registry key failed to write."), + false => { + if let Err(e) = auto_start.disable() { + match e { + auto_launch::Error::Io(err) => match err.kind() { + std::io::ErrorKind::NotFound => { + trace!("Autostart is already removed, finished checking.") + } + _ => error!("{}", err), + }, + _ => error!("{}", e), + } } } } + } else { + error!("Current EXE cannot be found, autostart cannot be enabled. "); } Ok(()) @@ -210,7 +214,7 @@ async fn main() { }) .on_window_event(move |event| { if let WindowEvent::CloseRequested { api, .. } = event.event() { - if wooting_macro_backend::config::ApplicationConfig::read_data().minimize_to_tray { + if ApplicationConfig::read_data().minimize_to_tray { event.window().hide().unwrap(); api.prevent_close(); } @@ -247,11 +251,9 @@ async fn main() { .debug(Color::Magenta) .trace(Color::White), ) - .max_file_size(Byte::from_unit(16f64, ByteUnit::KiB).unwrap().into()) + .max_file_size(Byte::from_unit(16_f64, ByteUnit::KiB).unwrap().into()) .targets([ - tauri_plugin_log::LogTarget::Folder( - wooting_macro_backend::config::LogDirPath::file_name(), - ), + tauri_plugin_log::LogTarget::Folder(LogDirPath::file_name()), tauri_plugin_log::LogTarget::Stdout, tauri_plugin_log::LogTarget::Webview, ]) From 85dd4bda7fa068893afbba4d2162065b14ea76ec Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Tue, 7 Nov 2023 15:27:20 +0100 Subject: [PATCH 02/86] Switch to Wooting managed rdev library --- src-tauri/Cargo.lock | 142 +++++++++++++++---------------- wooting-macro-backend/Cargo.lock | 142 +++++++++++++++---------------- wooting-macro-backend/Cargo.toml | 4 +- 3 files changed, 144 insertions(+), 144 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index d3b67dad..c70bd43d 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -636,31 +636,32 @@ dependencies = [ [[package]] name = "cocoa" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667fdc068627a2816b9ff831201dd9864249d6ee8d190b9532357f1fc0f61ea7" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" dependencies = [ "bitflags 1.3.2", "block", - "core-foundation 0.9.3", - "core-graphics 0.21.0", - "foreign-types", + "cocoa-foundation", + "core-foundation", + "core-graphics 0.22.3", + "foreign-types 0.3.2", "libc", "objc", ] [[package]] name = "cocoa" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" dependencies = [ "bitflags 1.3.2", "block", "cocoa-foundation", - "core-foundation 0.9.3", - "core-graphics 0.22.3", - "foreign-types", + "core-foundation", + "core-graphics 0.23.1", + "foreign-types 0.5.0", "libc", "objc", ] @@ -673,7 +674,7 @@ checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" dependencies = [ "bitflags 1.3.2", "block", - "core-foundation 0.9.3", + "core-foundation", "core-graphics-types", "libc", "objc", @@ -735,32 +736,16 @@ dependencies = [ "x11-clipboard", ] -[[package]] -name = "core-foundation" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" -dependencies = [ - "core-foundation-sys 0.7.0", - "libc", -] - [[package]] name = "core-foundation" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ - "core-foundation-sys 0.8.4", + "core-foundation-sys", "libc", ] -[[package]] -name = "core-foundation-sys" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" - [[package]] name = "core-foundation-sys" version = "0.8.4" @@ -769,38 +754,27 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "core-graphics" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.7.0", - "foreign-types", - "libc", -] - -[[package]] -name = "core-graphics" -version = "0.21.0" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a67c4378cf203eace8fb6567847eb641fd6ff933c1145a115c6ee820ebb978" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", - "foreign-types", + "core-foundation", + "core-graphics-types", + "foreign-types 0.3.2", "libc", ] [[package]] name = "core-graphics" -version = "0.22.3" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", + "core-foundation", "core-graphics-types", - "foreign-types", + "foreign-types 0.5.0", "libc", ] @@ -811,7 +785,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", + "core-foundation", "libc", ] @@ -822,7 +796,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" dependencies = [ "bitflags 1.3.2", - "core-foundation-sys 0.8.4", + "core-foundation-sys", "coreaudio-sys", ] @@ -842,7 +816,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d959d90e938c5493000514b446987c07aed46c668faaa7d34d6c7a67b1a578c" dependencies = [ "alsa", - "core-foundation-sys 0.8.4", + "core-foundation-sys", "coreaudio-rs", "dasp_sample", "jni 0.19.0", @@ -1284,9 +1258,9 @@ dependencies = [ [[package]] name = "evdev-rs" -version = "0.4.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b92abc30d5fd1e4f6440dee4d626abc68f4a9b5014dc1de575901e23c2e02321" +checksum = "9812d5790fb6fcce449333eb6713dad335e8c979225ed98755c84a3987e06dba" dependencies = [ "bitflags 1.3.2", "evdev-sys", @@ -1410,7 +1384,28 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "foreign-types-shared", + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", ] [[package]] @@ -1419,6 +1414,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + [[package]] name = "form_urlencoded" version = "1.2.0" @@ -2069,7 +2070,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", - "core-foundation-sys 0.8.4", + "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", @@ -2183,9 +2184,9 @@ dependencies = [ [[package]] name = "inotify" -version = "0.8.3" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46dd0a94b393c730779ccfd2a872b67b1eb67be3fc33082e733bdb38b5fde4d4" +checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" dependencies = [ "bitflags 1.3.2", "inotify-sys", @@ -3063,7 +3064,7 @@ checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33" dependencies = [ "bitflags 2.4.1", "cfg-if", - "foreign-types", + "foreign-types 0.3.2", "libc", "once_cell", "openssl-macros", @@ -3632,20 +3633,19 @@ dependencies = [ [[package]] name = "rdev" version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00552ca2dc2f93b84cd7b5581de49549411e4e41d89e1c691bcb93dc4be360c3" +source = "git+https://github.com/medzernik/rdev?branch=main#27ba2a0ad43842ce7012908e33b0eefa21b93b32" dependencies = [ - "cocoa 0.22.0", - "core-foundation 0.7.0", - "core-foundation-sys 0.7.0", - "core-graphics 0.19.2", + "cocoa 0.25.0", + "core-foundation", + "core-foundation-sys", + "core-graphics 0.23.1", "epoll", "evdev-rs", "inotify", "lazy_static", "libc", "serde", - "winapi", + "windows-sys 0.48.0", "x11", ] @@ -3908,8 +3908,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", - "core-foundation-sys 0.8.4", + "core-foundation", + "core-foundation-sys", "libc", "security-framework-sys", ] @@ -3920,7 +3920,7 @@ version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ - "core-foundation-sys 0.8.4", + "core-foundation-sys", "libc", ] @@ -4381,7 +4381,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", + "core-foundation", "system-configuration-sys", ] @@ -4391,7 +4391,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" dependencies = [ - "core-foundation-sys 0.8.4", + "core-foundation-sys", "libc", ] @@ -4431,7 +4431,7 @@ dependencies = [ "cairo-rs", "cc", "cocoa 0.24.1", - "core-foundation 0.9.3", + "core-foundation", "core-graphics 0.22.3", "crossbeam-channel", "dirs-next", diff --git a/wooting-macro-backend/Cargo.lock b/wooting-macro-backend/Cargo.lock index 35a3b470..4f2198d8 100644 --- a/wooting-macro-backend/Cargo.lock +++ b/wooting-macro-backend/Cargo.lock @@ -605,31 +605,32 @@ dependencies = [ [[package]] name = "cocoa" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667fdc068627a2816b9ff831201dd9864249d6ee8d190b9532357f1fc0f61ea7" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" dependencies = [ "bitflags 1.3.2", "block", - "core-foundation 0.9.3", - "core-graphics 0.21.0", - "foreign-types", + "cocoa-foundation", + "core-foundation", + "core-graphics 0.22.3", + "foreign-types 0.3.2", "libc", "objc", ] [[package]] name = "cocoa" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" dependencies = [ "bitflags 1.3.2", "block", "cocoa-foundation", - "core-foundation 0.9.3", - "core-graphics 0.22.3", - "foreign-types", + "core-foundation", + "core-graphics 0.23.1", + "foreign-types 0.5.0", "libc", "objc", ] @@ -642,7 +643,7 @@ checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" dependencies = [ "bitflags 1.3.2", "block", - "core-foundation 0.9.3", + "core-foundation", "core-graphics-types", "libc", "objc", @@ -693,32 +694,16 @@ dependencies = [ "x11-clipboard", ] -[[package]] -name = "core-foundation" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" -dependencies = [ - "core-foundation-sys 0.7.0", - "libc", -] - [[package]] name = "core-foundation" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ - "core-foundation-sys 0.8.4", + "core-foundation-sys", "libc", ] -[[package]] -name = "core-foundation-sys" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" - [[package]] name = "core-foundation-sys" version = "0.8.4" @@ -727,38 +712,27 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "core-graphics" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.7.0", - "foreign-types", - "libc", -] - -[[package]] -name = "core-graphics" -version = "0.21.0" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a67c4378cf203eace8fb6567847eb641fd6ff933c1145a115c6ee820ebb978" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", - "foreign-types", + "core-foundation", + "core-graphics-types", + "foreign-types 0.3.2", "libc", ] [[package]] name = "core-graphics" -version = "0.22.3" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", + "core-foundation", "core-graphics-types", - "foreign-types", + "foreign-types 0.5.0", "libc", ] @@ -769,7 +743,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", + "core-foundation", "libc", ] @@ -780,7 +754,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" dependencies = [ "bitflags 1.3.2", - "core-foundation-sys 0.8.4", + "core-foundation-sys", "coreaudio-sys", ] @@ -800,7 +774,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d959d90e938c5493000514b446987c07aed46c668faaa7d34d6c7a67b1a578c" dependencies = [ "alsa", - "core-foundation-sys 0.8.4", + "core-foundation-sys", "coreaudio-rs", "dasp_sample", "jni 0.19.0", @@ -1209,9 +1183,9 @@ dependencies = [ [[package]] name = "evdev-rs" -version = "0.4.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b92abc30d5fd1e4f6440dee4d626abc68f4a9b5014dc1de575901e23c2e02321" +checksum = "9812d5790fb6fcce449333eb6713dad335e8c979225ed98755c84a3987e06dba" dependencies = [ "bitflags 1.3.2", "evdev-sys", @@ -1325,7 +1299,28 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "foreign-types-shared", + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", ] [[package]] @@ -1334,6 +1329,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + [[package]] name = "form_urlencoded" version = "1.2.0" @@ -1984,7 +1985,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", - "core-foundation-sys 0.8.4", + "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", @@ -2098,9 +2099,9 @@ dependencies = [ [[package]] name = "inotify" -version = "0.8.3" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46dd0a94b393c730779ccfd2a872b67b1eb67be3fc33082e733bdb38b5fde4d4" +checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" dependencies = [ "bitflags 1.3.2", "inotify-sys", @@ -2960,7 +2961,7 @@ checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33" dependencies = [ "bitflags 2.4.1", "cfg-if", - "foreign-types", + "foreign-types 0.3.2", "libc", "once_cell", "openssl-macros", @@ -3529,20 +3530,19 @@ dependencies = [ [[package]] name = "rdev" version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00552ca2dc2f93b84cd7b5581de49549411e4e41d89e1c691bcb93dc4be360c3" +source = "git+https://github.com/medzernik/rdev?branch=main#27ba2a0ad43842ce7012908e33b0eefa21b93b32" dependencies = [ - "cocoa 0.22.0", - "core-foundation 0.7.0", - "core-foundation-sys 0.7.0", - "core-graphics 0.19.2", + "cocoa 0.25.0", + "core-foundation", + "core-foundation-sys", + "core-graphics 0.23.1", "epoll", "evdev-rs", "inotify", "lazy_static", "libc", "serde", - "winapi", + "windows-sys 0.48.0", "x11", ] @@ -3805,8 +3805,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", - "core-foundation-sys 0.8.4", + "core-foundation", + "core-foundation-sys", "libc", "security-framework-sys", ] @@ -3817,7 +3817,7 @@ version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ - "core-foundation-sys 0.8.4", + "core-foundation-sys", "libc", ] @@ -4278,7 +4278,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.3", + "core-foundation", "system-configuration-sys", ] @@ -4288,7 +4288,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" dependencies = [ - "core-foundation-sys 0.8.4", + "core-foundation-sys", "libc", ] @@ -4328,7 +4328,7 @@ dependencies = [ "cairo-rs", "cc", "cocoa 0.24.1", - "core-foundation 0.9.3", + "core-foundation", "core-graphics 0.22.3", "crossbeam-channel", "dirs-next", diff --git a/wooting-macro-backend/Cargo.toml b/wooting-macro-backend/Cargo.toml index 3cb3bbed..7968fae6 100644 --- a/wooting-macro-backend/Cargo.toml +++ b/wooting-macro-backend/Cargo.toml @@ -12,7 +12,7 @@ license = "GPL-3.0-only" serde_json = "1.0" serde = { version = "1.0", features = ["derive", "rc"] } tauri = { version = "1.5", features = ["api-all", "icon-png", "system-tray"] } -rdev = { version = "0.5", features = ["evdev-rs", "serialize", "serde", "epoll", "inotify", "unstable_grab"] } +rdev = { git = "https://github.com/medzernik/rdev", branch = "main", features = ["evdev-rs", "serialize", "serde", "epoll", "inotify", "unstable_grab"] } halfbrown = { version = "0.2", features = ["serde"] } lazy_static = "1.4" tokio = { version = "1.33", features = ["full"] } @@ -32,7 +32,7 @@ env_logger = "0.10" rayon = "1.8" [target.'cfg(any(target_os = "windows", target_os = "linux"))'.dependencies] -brightness = { version = "0.5"} +brightness = { version = "0.5" } futures = "0.3" [profile.release] From 2ce6ba796329fb6ebd7db0b5ecea042d834b047d Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Tue, 7 Nov 2023 16:55:53 +0100 Subject: [PATCH 03/86] Added M4 and M5 repr. Buttons now work as triggers --- src-tauri/Cargo.lock | 2 +- wooting-macro-backend/Cargo.lock | 2 +- wooting-macro-backend/src/hid_table.rs | 4 ++-- wooting-macro-backend/src/plugin/mouse.rs | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index c70bd43d..14534e55 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -3633,7 +3633,7 @@ dependencies = [ [[package]] name = "rdev" version = "0.5.3" -source = "git+https://github.com/medzernik/rdev?branch=main#27ba2a0ad43842ce7012908e33b0eefa21b93b32" +source = "git+https://github.com/medzernik/rdev?branch=main#c69be9cb17ea053a1c52e6f928a81da159036961" dependencies = [ "cocoa 0.25.0", "core-foundation", diff --git a/wooting-macro-backend/Cargo.lock b/wooting-macro-backend/Cargo.lock index 4f2198d8..819bf954 100644 --- a/wooting-macro-backend/Cargo.lock +++ b/wooting-macro-backend/Cargo.lock @@ -3530,7 +3530,7 @@ dependencies = [ [[package]] name = "rdev" version = "0.5.3" -source = "git+https://github.com/medzernik/rdev?branch=main#27ba2a0ad43842ce7012908e33b0eefa21b93b32" +source = "git+https://github.com/medzernik/rdev?branch=main#c69be9cb17ea053a1c52e6f928a81da159036961" dependencies = [ "cocoa 0.25.0", "core-foundation", diff --git a/wooting-macro-backend/src/hid_table.rs b/wooting-macro-backend/src/hid_table.rs index 6e1eac82..c90b55e3 100644 --- a/wooting-macro-backend/src/hid_table.rs +++ b/wooting-macro-backend/src/hid_table.rs @@ -11,8 +11,8 @@ pub static ref BUTTON_TO_HID: HashMap = { scancode.insert(Button::Left, 0x101); scancode.insert(Button::Right, 0x102); scancode.insert(Button::Middle, 0x103); - scancode.insert(Button::Unknown(4), 0x104); - scancode.insert(Button::Unknown(5), 0x105); + scancode.insert(Button::Forward, 0x104); + scancode.insert(Button::Backward, 0x105); scancode };} diff --git a/wooting-macro-backend/src/plugin/mouse.rs b/wooting-macro-backend/src/plugin/mouse.rs index 93e3e8ce..3c5b803c 100644 --- a/wooting-macro-backend/src/plugin/mouse.rs +++ b/wooting-macro-backend/src/plugin/mouse.rs @@ -37,8 +37,8 @@ impl From<&rdev::Button> for MouseButton { rdev::Button::Left => MouseButton::Left, rdev::Button::Right => MouseButton::Right, rdev::Button::Middle => MouseButton::Middle, - rdev::Button::Unknown(1) => MouseButton::Mouse4, - rdev::Button::Unknown(2) => MouseButton::Mouse5, + rdev::Button::Forward => MouseButton::Mouse4, + rdev::Button::Backward => MouseButton::Mouse5, rdev::Button::Unknown(_) => MouseButton::Left, } } @@ -50,8 +50,8 @@ impl From<&MouseButton> for rdev::Button { MouseButton::Left => rdev::Button::Left, MouseButton::Right => rdev::Button::Right, MouseButton::Middle => rdev::Button::Middle, - MouseButton::Mouse4 => rdev::Button::Unknown(1), - MouseButton::Mouse5 => rdev::Button::Unknown(2), + MouseButton::Mouse4 => rdev::Button::Forward, + MouseButton::Mouse5 => rdev::Button::Backward, } } } From 759324546976333a6bedeb6912653506739ce5e3 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Tue, 7 Nov 2023 17:22:25 +0100 Subject: [PATCH 04/86] Removed the entire unused ``brightness`` feature --- src-tauri/Cargo.lock | 46 +---- src-tauri/src/main.rs | 13 +- src/constants/SystemEventMap.ts | 30 --- wooting-macro-backend/Cargo.lock | 50 +---- wooting-macro-backend/Cargo.toml | 4 - wooting-macro-backend/src/lib.rs | 4 +- .../src/plugin/system_event.rs | 178 ------------------ 7 files changed, 6 insertions(+), 319 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 14534e55..3ca9229e 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -414,22 +414,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "brightness" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ccf3c64278486354c6c41b71293570a207684a34cceb53137975d781748d33f" -dependencies = [ - "async-trait", - "blocking", - "cfg-if", - "futures", - "itertools 0.10.5", - "thiserror", - "windows 0.39.0", - "zbus", -] - [[package]] name = "brotli" version = "3.4.0" @@ -1439,21 +1423,6 @@ dependencies = [ "new_debug_unreachable", ] -[[package]] -name = "futures" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - [[package]] name = "futures-channel" version = "0.3.29" @@ -1461,7 +1430,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", - "futures-sink", ] [[package]] @@ -1541,7 +1509,6 @@ version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ - "futures-channel", "futures-core", "futures-io", "futures-macro", @@ -2239,15 +2206,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.11.0" @@ -5901,14 +5859,12 @@ name = "wooting-macro-backend" version = "1.0.2" dependencies = [ "anyhow", - "brightness", "copypasta", "dirs 5.0.1", "env_logger", "fastrand 2.0.1", - "futures", "halfbrown", - "itertools 0.11.0", + "itertools", "lazy_static", "log", "obws", diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 248ffcb4..c86b3b9e 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -57,16 +57,6 @@ async fn set_macros( Ok(()) } -#[tauri::command] -/// Gets the monitor data to the frontend. Currently unused. -async fn get_monitor_data() -> Result, ()> { - #[cfg(any(target_os = "windows", target_os = "linux"))] - return Ok(plugin::system_event::backend_load_monitors().await); - - #[cfg(target_os = "macos")] - return Ok(vec![]); -} - #[tauri::command] /// Allows the frontend to disable the macro execution scanning completely. async fn control_grabbing( @@ -118,8 +108,7 @@ async fn main() { set_macros, get_config, set_config, - control_grabbing, - get_monitor_data + control_grabbing ]) .setup(move |app| { let app_name = &app.package_info().name; diff --git a/src/constants/SystemEventMap.ts b/src/constants/SystemEventMap.ts index 45095d92..78e82b21 100644 --- a/src/constants/SystemEventMap.ts +++ b/src/constants/SystemEventMap.ts @@ -88,33 +88,6 @@ export class SystemEvent { description: "Mutes or unmutes the system audio output." } } - // static get SetBrightness(): SystemEventInfo { - // return { - // type: 'Brightness', - // subtype: 'SetAll', - // displayString: 'Set Brightness', - // defaultData: { - // type: 'Brightness', - // action: { type: 'SetAll', level: 75, } - // } - // } - // } - // static get IncreaseBrightness(): SystemEventInfo { - // return { - // type: 'Brightness', - // subtype: 'Increase', - // displayString: 'Increase Brightness', - // defaultData: { type: 'Brightness', action: { type: 'Increase' } } - // } - // } - // static get DecreaseBrightness(): SystemEventInfo { - // return { - // type: 'Brightness', - // subtype: 'Decrease', - // displayString: 'Decrease Brightness', - // defaultData: { type: 'Brightness', action: { type: 'Decrease' } } - // } - // } static readonly all: SystemEventInfo[] = [ SystemEvent.OpenFile, @@ -125,9 +98,6 @@ export class SystemEvent { SystemEvent.IncreaseVolume, SystemEvent.DecreaseVolume, SystemEvent.ToggleMuteVolume, - // SystemEvent.SetBrightness, - // SystemEvent.IncreaseBrightness, - // SystemEvent.DecreaseBrightness ] } diff --git a/wooting-macro-backend/Cargo.lock b/wooting-macro-backend/Cargo.lock index 819bf954..fde4cc6c 100644 --- a/wooting-macro-backend/Cargo.lock +++ b/wooting-macro-backend/Cargo.lock @@ -403,22 +403,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "brightness" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ccf3c64278486354c6c41b71293570a207684a34cceb53137975d781748d33f" -dependencies = [ - "async-trait", - "blocking", - "cfg-if", - "futures", - "itertools 0.10.5", - "thiserror", - "windows 0.39.0", - "zbus", -] - [[package]] name = "brotli" version = "3.4.0" @@ -1354,21 +1338,6 @@ dependencies = [ "new_debug_unreachable", ] -[[package]] -name = "futures" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - [[package]] name = "futures-channel" version = "0.3.29" @@ -1376,7 +1345,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", - "futures-sink", ] [[package]] @@ -1456,7 +1424,6 @@ version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ - "futures-channel", "futures-core", "futures-io", "futures-macro", @@ -2154,15 +2121,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.11.0" @@ -3529,8 +3487,8 @@ dependencies = [ [[package]] name = "rdev" -version = "0.5.3" -source = "git+https://github.com/medzernik/rdev?branch=main#c69be9cb17ea053a1c52e6f928a81da159036961" +version = "0.6.0" +source = "git+https://github.com/medzernik/rdev?branch=main#7f96bd1afcbc4a32fe4461a3442f395ebb30bb7d" dependencies = [ "cocoa 0.25.0", "core-foundation", @@ -5673,14 +5631,12 @@ name = "wooting-macro-backend" version = "1.0.2" dependencies = [ "anyhow", - "brightness", "copypasta", "dirs", "env_logger", "fastrand 2.0.1", - "futures", "halfbrown", - "itertools 0.11.0", + "itertools", "lazy_static", "log", "obws", diff --git a/wooting-macro-backend/Cargo.toml b/wooting-macro-backend/Cargo.toml index 7968fae6..1beb71c3 100644 --- a/wooting-macro-backend/Cargo.toml +++ b/wooting-macro-backend/Cargo.toml @@ -31,9 +31,5 @@ log = "0.4" env_logger = "0.10" rayon = "1.8" -[target.'cfg(any(target_os = "windows", target_os = "linux"))'.dependencies] -brightness = { version = "0.5" } -futures = "0.3" - [profile.release] lto = true diff --git a/wooting-macro-backend/src/lib.rs b/wooting-macro-backend/src/lib.rs index 6bf5c654..340ac419 100644 --- a/wooting-macro-backend/src/lib.rs +++ b/wooting-macro-backend/src/lib.rs @@ -115,7 +115,7 @@ impl Macro { async fn execute(&self, send_channel: UnboundedSender) { for action in &self.sequence { match action { - ActionEventType::KeyPressEventAction { data } => match data.keytype { + ActionEventType::KeyPressEventAction { data } => match data.key_type { key_press::KeyType::Down => { send_channel .send(rdev::EventType::KeyPress(SCANCODE_TO_RDEV[&data.keypress])) @@ -177,7 +177,6 @@ pub struct MacroBackend { pub config: Arc>, pub triggers: Arc>, pub is_listening: Arc, - pub display_list: Arc>>, } ///MacroData is the main data structure that contains all macro data. @@ -569,7 +568,6 @@ impl Default for MacroBackend { config: Arc::new(RwLock::from(ApplicationConfig::read_data())), triggers: Arc::new(RwLock::from(triggers)), is_listening: Arc::new(AtomicBool::new(true)), - display_list: Arc::new(RwLock::from(vec![])), } } } diff --git a/wooting-macro-backend/src/plugin/system_event.rs b/wooting-macro-backend/src/plugin/system_event.rs index efec494a..d5f90f23 100644 --- a/wooting-macro-backend/src/plugin/system_event.rs +++ b/wooting-macro-backend/src/plugin/system_event.rs @@ -8,15 +8,6 @@ use tokio::sync::mpsc::UnboundedSender; use crate::hid_table::SCANCODE_TO_RDEV; -// The Brightness of monitors is not implemented for macOS, so we have to condition the code. -#[cfg(target_os = "windows")] -use brightness::{windows::BrightnessExt, Brightness, BrightnessDevice}; -#[cfg(target_os = "linux")] -use brightness::{Brightness, BrightnessDevice}; - -#[cfg(any(target_os = "windows", target_os = "linux"))] -use futures::{StreamExt, TryFutureExt}; - // Frequently used constants const COPY_HOTKEY: [rdev::Key; 2] = [rdev::Key::ControlLeft, rdev::Key::KeyC]; const PASTE_HOTKEY: [rdev::Key; 2] = [rdev::Key::ControlLeft, rdev::Key::KeyV]; @@ -35,7 +26,6 @@ pub enum DirectoryAction { pub enum SystemAction { Open { action: DirectoryAction }, Volume { action: VolumeAction }, - Brightness { action: MonitorBrightnessAction }, Clipboard { action: ClipboardAction }, } @@ -78,46 +68,6 @@ impl SystemAction { .await; } }, - - SystemAction::Brightness { action } => { - // This is split for windows/linux and macOS. - // macOS cannot implement this feature, so due to language limitations we have to make two separate matches. - #[cfg(any(target_os = "windows", target_os = "linux"))] - match action { - MonitorBrightnessAction::SetAll { level } => { - #[cfg(any(target_os = "windows", target_os = "linux"))] - brightness_set_all_device(*level).await; - #[cfg(target_os = "macos")] - error!("Not supported on macOS"); - } - MonitorBrightnessAction::SetSpecific { level, name } => { - #[cfg(any(target_os = "windows", target_os = "linux"))] - brightness_set_specific_device(*level, name).await; - #[cfg(target_os = "macos")] - error!("Not supported on macOS"); - } - MonitorBrightnessAction::ChangeSpecific { by_how_much, name } => { - #[cfg(any(target_os = "windows", target_os = "linux"))] - brightness_change_specific(*by_how_much, name).await; - #[cfg(target_os = "macos")] - error!("Not supported on macOS"); - } - MonitorBrightnessAction::ChangeAll { by_how_much } => { - #[cfg(any(target_os = "windows", target_os = "linux"))] - brightness_change_all(*by_how_much).await; - #[cfg(target_os = "macos")] - error!("Not supported on macOS"); - } - } - // Second match for macOS - #[cfg(target_os = "macos")] - match action { - _ => { - error!("Not supported on macOS"); - } - } - } - SystemAction::Clipboard { action } => match action { ClipboardAction::SetClipboard { data } => { ClipboardContext::new() @@ -161,122 +111,6 @@ impl SystemAction { } } -#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] -/// Monitor information. -pub struct Monitor { - pub device_id: String, - pub brightness: u32, - pub display_name: String, -} -#[cfg(any(target_os = "windows", target_os = "linux"))] -/// Loads the monitors and sends them to the frontend. -pub async fn backend_load_monitors() -> Vec { - let mut monitors = Vec::new(); - - if let Ok(i) = brightness::brightness_devices() - .into_future() - .await - .0 - .unwrap() - { - monitors.push(Monitor { - device_id: i.device_name().into_future().await.unwrap(), - brightness: i.get().into_future().await.unwrap(), - #[cfg(target_os = "windows")] - display_name: i.device_description().unwrap(), - #[cfg(target_os = "linux")] - display_name: "Not supported on Linux".to_string(), - }); - } - - monitors -} - -#[cfg(any(target_os = "windows", target_os = "linux"))] -/// Sets brightness of all monitors to the given level. -async fn brightness_set_all_device(percentage_level: u32) { - if let Ok(mut devices) = brightness::brightness_devices() - .into_future() - .await - .0 - .unwrap() - { - set_brightness(&mut devices, percentage_level) - .await - .unwrap(); - } -} - -#[cfg(any(target_os = "windows", target_os = "linux"))] -/// Sets brightness of a specific device (it's name) to the given level. -async fn brightness_set_specific_device(percentage_level: u32, name: &str) { - if let Ok(mut devices) = brightness::brightness_devices() - .into_future() - .await - .0 - .unwrap() - { - if devices.device_name().into_future().await.unwrap() == name { - set_brightness(&mut devices, percentage_level) - .await - .unwrap(); - } - } -} - -#[cfg(any(target_os = "windows", target_os = "linux"))] -/// Decreases brightness of specific devices by 2%. -async fn brightness_change_specific(by_how_much: i32, name: &str) { - if let Ok(mut devices) = brightness::brightness_devices() - .into_future() - .await - .0 - .unwrap() - { - if devices.device_name().into_future().await.unwrap() == name { - let current_brightness: i32 = devices.get().await.unwrap() as i32; - - set_brightness( - &mut devices, - (current_brightness.checked_add(by_how_much).unwrap_or(0)) as u32, - ) - .await - .unwrap(); - } - } -} - -#[cfg(any(target_os = "windows", target_os = "linux"))] -/// Decrements brightness of all devices by 2%. -async fn brightness_change_all(by_how_much: i32) { - if let Ok(mut devices) = brightness::brightness_devices() - .into_future() - .await - .0 - .unwrap() - { - let current_brightness: i32 = devices.get().await.unwrap() as i32; - - set_brightness( - &mut devices, - (current_brightness.checked_add(by_how_much).unwrap_or(0)) as u32, - ) - .await - .unwrap(); - } -} - -#[cfg(any(target_os = "windows", target_os = "linux"))] -/// Sets brightness for a device. -async fn set_brightness( - dev: &mut BrightnessDevice, - percentage_level: u32, -) -> Result<(), brightness::Error> { - info!("Display {}", dev.device_name().await.unwrap()); - dev.set(percentage_level).await.unwrap(); - Ok(()) -} - /// Transforms the text into a sarcastic version. fn transform_text(text: String) -> String { let mut transformed_text = String::new(); @@ -306,18 +140,6 @@ pub enum ClipboardAction { Sarcasm, } -#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Hash, Eq)] -#[serde(tag = "type")] -/// Monitor get, set brightness of any screen. -/// -/// ! **UNIMPLEMENTED** - The brightness is currently not implemented and tested on frontend. Backend needs testing. You are welcome to contribute. -pub enum MonitorBrightnessAction { - SetAll { level: u32 }, - SetSpecific { level: u32, name: String }, - ChangeSpecific { by_how_much: i32, name: String }, - ChangeAll { by_how_much: i32 }, -} - #[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Hash, Eq)] #[serde(tag = "type")] /// Key shortcut alias to mute/increase/decrease volume. From f046922d37d6b84b240cb01b1b8b71f83a13f8f4 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 8 Nov 2023 11:33:56 +0100 Subject: [PATCH 05/86] Added proper filetype and cleanup to SystemActions --- src-tauri/Cargo.lock | 254 +++++++++++------- src/contexts/applicationContext.tsx | 13 +- wooting-macro-backend/Cargo.lock | 248 ++++++++++------- wooting-macro-backend/Cargo.toml | 3 +- .../src/plugin/system_event.rs | 32 +-- 5 files changed, 325 insertions(+), 225 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 3ca9229e..6db43576 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -114,28 +114,26 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.1.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37875bd9915b7d67c2f117ea2c30a0989874d0b2cb694fe25403c85763c0c9e" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ "concurrent-queue", - "event-listener 3.0.1", - "event-listener-strategy", + "event-listener 2.5.3", "futures-core", - "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9936333f3d84275cb4010514544ae7fe0847760f4a242e8ce603b358615cad" +checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" dependencies = [ - "async-lock 3.0.0", + "async-lock 2.8.0", "async-task", "concurrent-queue", "fastrand 2.0.1", - "futures-lite 2.0.1", + "futures-lite 1.13.0", "slab", ] @@ -400,16 +398,16 @@ dependencies = [ [[package]] name = "blocking" -version = "1.5.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864b30e660d766b7e9b47347d9b6558a17f1cfa22274034fa6f55b274b3e4620" +checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" dependencies = [ "async-channel", - "async-lock 3.0.0", + "async-lock 2.8.0", "async-task", "fastrand 2.0.1", "futures-io", - "futures-lite 2.0.1", + "futures-lite 1.13.0", "piper", "tracing", ] @@ -507,6 +505,32 @@ dependencies = [ "system-deps 6.2.0", ] +[[package]] +name = "calloop" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b50b5a44d59a98c55a9eeb518f39bf7499ba19fd98ee7d22618687f3f10adbf" +dependencies = [ + "bitflags 2.4.1", + "log", + "polling 3.3.0", + "rustix 0.38.21", + "slab", + "thiserror", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" +dependencies = [ + "calloop", + "rustix 0.38.21", + "wayland-backend", + "wayland-client", +] + [[package]] name = "cargo_toml" version = "0.15.3" @@ -708,9 +732,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "copypasta" -version = "0.8.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "133fc8675ee3a4ec9aa513584deda9aa0faeda3586b87f7f0f2ba082c66fb172" +checksum = "6d35364349bf9e9e1c3a035ddcb00d188d23a3c40c50244c03c27a99fc6a65ae" dependencies = [ "clipboard-win", "objc", @@ -926,6 +950,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "cursor-icon" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" + [[package]] name = "darling" version = "0.20.3" @@ -1147,7 +1177,7 @@ checksum = "f54cc3e827ee1c3812239a9a41dede7b4d7d5d5464faa32d71bd7cba28ce2cb2" dependencies = [ "cc", "rustc_version", - "toml 0.8.6", + "toml 0.8.8", "vswhom", "winreg 0.51.0", ] @@ -1232,9 +1262,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" dependencies = [ "libc", "windows-sys 0.48.0", @@ -1640,9 +1670,9 @@ dependencies = [ [[package]] name = "gethostname" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177" dependencies = [ "libc", "winapi", @@ -1661,9 +1691,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", @@ -2446,9 +2476,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2572,22 +2602,13 @@ checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memmap2" -version = "0.5.10" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375" dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.7.1" @@ -2729,7 +2750,6 @@ dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", - "memoffset 0.6.5", ] [[package]] @@ -3541,7 +3561,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", ] [[package]] @@ -3590,8 +3610,8 @@ dependencies = [ [[package]] name = "rdev" -version = "0.5.3" -source = "git+https://github.com/medzernik/rdev?branch=main#c69be9cb17ea053a1c52e6f928a81da159036961" +version = "0.6.1" +source = "git+https://github.com/medzernik/rdev?branch=main#ed1aa7a233f39533b259559abb703032d9cfb271" dependencies = [ "cocoa 0.25.0", "core-foundation", @@ -3631,7 +3651,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", "libredox", "thiserror", ] @@ -3807,7 +3827,7 @@ dependencies = [ "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.10", + "linux-raw-sys 0.4.11", "windows-sys 0.48.0", ] @@ -3913,18 +3933,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.190" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.190" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", @@ -4120,30 +4140,38 @@ checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "smithay-client-toolkit" -version = "0.16.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9" +checksum = "60e3d9941fa3bacf7c2bf4b065304faa14164151254cd16ce1b1bc8fc381600f" dependencies = [ - "bitflags 1.3.2", - "dlib", - "lazy_static", + "bitflags 2.4.1", + "calloop", + "calloop-wayland-source", + "cursor-icon", + "libc", "log", "memmap2", - "nix 0.24.3", - "pkg-config", + "rustix 0.38.21", + "thiserror", + "wayland-backend", "wayland-client", + "wayland-csd-frame", "wayland-cursor", "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "xkeysym", ] [[package]] name = "smithay-clipboard" -version = "0.6.6" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8" +checksum = "0bb62b280ce5a5cba847669933a0948d00904cf83845c944eae96a4738cea1a6" dependencies = [ + "libc", "smithay-client-toolkit", - "wayland-client", + "wayland-backend", ] [[package]] @@ -4375,7 +4403,7 @@ dependencies = [ "cfg-expr 0.15.5", "heck 0.4.1", "pkg-config", - "toml 0.8.6", + "toml 0.8.8", "version-compare 0.1.1", ] @@ -4911,14 +4939,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.7", + "toml_edit 0.21.0", ] [[package]] @@ -4945,9 +4973,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ "indexmap 2.1.0", "serde", @@ -5130,7 +5158,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", ] [[package]] @@ -5306,75 +5334,98 @@ dependencies = [ ] [[package]] -name = "wayland-client" -version = "0.29.5" +name = "wayland-backend" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" +checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4" dependencies = [ - "bitflags 1.3.2", + "cc", "downcast-rs", - "libc", - "nix 0.24.3", + "nix 0.26.4", "scoped-tls", - "wayland-commons", - "wayland-scanner", + "smallvec", "wayland-sys", ] [[package]] -name = "wayland-commons" -version = "0.29.5" +name = "wayland-client" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" +checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3" dependencies = [ - "nix 0.24.3", - "once_cell", - "smallvec", - "wayland-sys", + "bitflags 2.4.1", + "nix 0.26.4", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-csd-frame" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" +dependencies = [ + "bitflags 2.4.1", + "cursor-icon", + "wayland-backend", ] [[package]] name = "wayland-cursor" -version = "0.29.5" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" +checksum = "a44aa20ae986659d6c77d64d808a046996a932aa763913864dc40c359ef7ad5b" dependencies = [ - "nix 0.24.3", + "nix 0.26.4", "wayland-client", "xcursor", ] [[package]] name = "wayland-protocols" -version = "0.29.5" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" +checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", + "wayland-backend", "wayland-client", - "wayland-commons", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +dependencies = [ + "bitflags 2.4.1", + "wayland-backend", + "wayland-client", + "wayland-protocols", "wayland-scanner", ] [[package]] name = "wayland-scanner" -version = "0.29.5" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" +checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c" dependencies = [ "proc-macro2", + "quick-xml 0.30.0", "quote", - "xml-rs", ] [[package]] name = "wayland-sys" -version = "0.29.5" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" +checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af" dependencies = [ "dlib", - "lazy_static", + "log", + "once_cell", "pkg-config", ] @@ -5878,6 +5929,7 @@ dependencies = [ "tauri", "tokio", "tokio-serde", + "url", ] [[package]] @@ -5948,9 +6000,9 @@ dependencies = [ [[package]] name = "x11-clipboard" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464" +checksum = "b41aca1115b1f195f21c541c5efb423470848d48143127d0f07f8b90c27440df" dependencies = [ "x11rb", ] @@ -5968,12 +6020,12 @@ dependencies = [ [[package]] name = "x11rb" -version = "0.10.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507" +checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a" dependencies = [ "gethostname", - "nix 0.24.3", + "nix 0.26.4", "winapi", "winapi-wsapoll", "x11rb-protocol", @@ -5981,11 +6033,11 @@ dependencies = [ [[package]] name = "x11rb-protocol" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67" +checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc" dependencies = [ - "nix 0.24.3", + "nix 0.26.4", ] [[package]] @@ -6017,10 +6069,10 @@ dependencies = [ ] [[package]] -name = "xml-rs" -version = "0.8.19" +name = "xkeysym" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" +checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621" [[package]] name = "zbus" diff --git a/src/contexts/applicationContext.tsx b/src/contexts/applicationContext.tsx index 32af12e3..db56572f 100644 --- a/src/contexts/applicationContext.tsx +++ b/src/contexts/applicationContext.tsx @@ -30,7 +30,7 @@ function useApplicationContext() { return context } -function ApplicationProvider({ children }: ApplicationProviderProps) { +function ApplicationProvider({children}: ApplicationProviderProps) { const [viewState, setViewState] = useState(ViewState.Overview) const [initComplete, setInitComplete] = useState(false) const [collections, setCollections] = useState([]) @@ -53,7 +53,7 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { description: 'Unable to load macros, please re-open the app. If that does not work, please contact us on Discord.', status: 'error', - duration: 2000, + duration: 10000, isClosable: true }) }) @@ -66,9 +66,10 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { toast({ title: 'Error updating macro data', description: - 'Unable to update macro data, please re-open the app. If that does not work, please contact us on Discord.', + `Unable to update macro data: ${e}. + Your system action filepath or website URL may be incorrect. Alternatively, please contact us on Discord.`, status: 'error', - duration: 2000, + duration: 10000, isClosable: true }) }) @@ -83,7 +84,7 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { const changeSelectedCollectionIndex = useCallback( (index: number) => { - setSelection({ collectionIndex: index, macroIndex: undefined }) + setSelection({collectionIndex: index, macroIndex: undefined}) }, [setSelection] ) @@ -111,7 +112,7 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { setCollections((collections) => { newIndex = collections.length if (itemToAdd.name === '') { - itemToAdd = { ...itemToAdd, name: `Collection ${newIndex + 1}` } + itemToAdd = {...itemToAdd, name: `Collection ${newIndex + 1}`} } return [...collections, itemToAdd] }) diff --git a/wooting-macro-backend/Cargo.lock b/wooting-macro-backend/Cargo.lock index fde4cc6c..fa539b80 100644 --- a/wooting-macro-backend/Cargo.lock +++ b/wooting-macro-backend/Cargo.lock @@ -114,28 +114,26 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.1.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37875bd9915b7d67c2f117ea2c30a0989874d0b2cb694fe25403c85763c0c9e" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ "concurrent-queue", - "event-listener 3.0.1", - "event-listener-strategy", + "event-listener 2.5.3", "futures-core", - "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9936333f3d84275cb4010514544ae7fe0847760f4a242e8ce603b358615cad" +checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" dependencies = [ - "async-lock 3.0.0", + "async-lock 2.8.0", "async-task", "concurrent-queue", "fastrand 2.0.1", - "futures-lite 2.0.1", + "futures-lite 1.13.0", "slab", ] @@ -389,16 +387,16 @@ dependencies = [ [[package]] name = "blocking" -version = "1.5.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864b30e660d766b7e9b47347d9b6558a17f1cfa22274034fa6f55b274b3e4620" +checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" dependencies = [ "async-channel", - "async-lock 3.0.0", + "async-lock 2.8.0", "async-task", "fastrand 2.0.1", "futures-io", - "futures-lite 2.0.1", + "futures-lite 1.13.0", "piper", "tracing", ] @@ -486,6 +484,32 @@ dependencies = [ "system-deps 6.2.0", ] +[[package]] +name = "calloop" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b50b5a44d59a98c55a9eeb518f39bf7499ba19fd98ee7d22618687f3f10adbf" +dependencies = [ + "bitflags 2.4.1", + "log", + "polling 3.3.0", + "rustix 0.38.21", + "slab", + "thiserror", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" +dependencies = [ + "calloop", + "rustix 0.38.21", + "wayland-backend", + "wayland-client", +] + [[package]] name = "cc" version = "1.0.83" @@ -666,9 +690,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "copypasta" -version = "0.8.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "133fc8675ee3a4ec9aa513584deda9aa0faeda3586b87f7f0f2ba082c66fb172" +checksum = "6d35364349bf9e9e1c3a035ddcb00d188d23a3c40c50244c03c27a99fc6a65ae" dependencies = [ "clipboard-win", "objc", @@ -884,6 +908,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "cursor-icon" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" + [[package]] name = "darling" version = "0.20.3" @@ -1157,9 +1187,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" dependencies = [ "libc", "windows-sys 0.48.0", @@ -1555,9 +1585,9 @@ dependencies = [ [[package]] name = "gethostname" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177" dependencies = [ "libc", "winapi", @@ -1576,9 +1606,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", @@ -2361,9 +2391,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2484,22 +2514,13 @@ checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memmap2" -version = "0.5.10" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375" dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.7.1" @@ -2635,7 +2656,6 @@ dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", - "memoffset 0.6.5", ] [[package]] @@ -3438,7 +3458,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", ] [[package]] @@ -3528,7 +3548,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", "libredox", "thiserror", ] @@ -3704,7 +3724,7 @@ dependencies = [ "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.10", + "linux-raw-sys 0.4.11", "windows-sys 0.48.0", ] @@ -3810,18 +3830,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.190" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.190" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", @@ -4017,30 +4037,38 @@ checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "smithay-client-toolkit" -version = "0.16.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9" +checksum = "60e3d9941fa3bacf7c2bf4b065304faa14164151254cd16ce1b1bc8fc381600f" dependencies = [ - "bitflags 1.3.2", - "dlib", - "lazy_static", + "bitflags 2.4.1", + "calloop", + "calloop-wayland-source", + "cursor-icon", + "libc", "log", "memmap2", - "nix 0.24.3", - "pkg-config", + "rustix 0.38.21", + "thiserror", + "wayland-backend", "wayland-client", + "wayland-csd-frame", "wayland-cursor", "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "xkeysym", ] [[package]] name = "smithay-clipboard" -version = "0.6.6" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8" +checksum = "0bb62b280ce5a5cba847669933a0948d00904cf83845c944eae96a4738cea1a6" dependencies = [ + "libc", "smithay-client-toolkit", - "wayland-client", + "wayland-backend", ] [[package]] @@ -4272,7 +4300,7 @@ dependencies = [ "cfg-expr 0.15.5", "heck 0.4.1", "pkg-config", - "toml 0.8.6", + "toml 0.8.8", "version-compare 0.1.1", ] @@ -4736,14 +4764,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.7", + "toml_edit 0.21.0", ] [[package]] @@ -4768,9 +4796,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ "indexmap 2.1.0", "serde", @@ -4947,7 +4975,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", ] [[package]] @@ -5097,75 +5125,98 @@ dependencies = [ ] [[package]] -name = "wayland-client" -version = "0.29.5" +name = "wayland-backend" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" +checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4" dependencies = [ - "bitflags 1.3.2", + "cc", "downcast-rs", - "libc", - "nix 0.24.3", + "nix 0.26.4", "scoped-tls", - "wayland-commons", - "wayland-scanner", + "smallvec", "wayland-sys", ] [[package]] -name = "wayland-commons" -version = "0.29.5" +name = "wayland-client" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" +checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3" dependencies = [ - "nix 0.24.3", - "once_cell", - "smallvec", - "wayland-sys", + "bitflags 2.4.1", + "nix 0.26.4", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-csd-frame" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" +dependencies = [ + "bitflags 2.4.1", + "cursor-icon", + "wayland-backend", ] [[package]] name = "wayland-cursor" -version = "0.29.5" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" +checksum = "a44aa20ae986659d6c77d64d808a046996a932aa763913864dc40c359ef7ad5b" dependencies = [ - "nix 0.24.3", + "nix 0.26.4", "wayland-client", "xcursor", ] [[package]] name = "wayland-protocols" -version = "0.29.5" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" +checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", + "wayland-backend", "wayland-client", - "wayland-commons", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +dependencies = [ + "bitflags 2.4.1", + "wayland-backend", + "wayland-client", + "wayland-protocols", "wayland-scanner", ] [[package]] name = "wayland-scanner" -version = "0.29.5" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" +checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c" dependencies = [ "proc-macro2", + "quick-xml 0.30.0", "quote", - "xml-rs", ] [[package]] name = "wayland-sys" -version = "0.29.5" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" +checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af" dependencies = [ "dlib", - "lazy_static", + "log", + "once_cell", "pkg-config", ] @@ -5650,6 +5701,7 @@ dependencies = [ "tauri", "tokio", "tokio-serde", + "url", ] [[package]] @@ -5702,9 +5754,9 @@ dependencies = [ [[package]] name = "x11-clipboard" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464" +checksum = "b41aca1115b1f195f21c541c5efb423470848d48143127d0f07f8b90c27440df" dependencies = [ "x11rb", ] @@ -5722,12 +5774,12 @@ dependencies = [ [[package]] name = "x11rb" -version = "0.10.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507" +checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a" dependencies = [ "gethostname", - "nix 0.24.3", + "nix 0.26.4", "winapi", "winapi-wsapoll", "x11rb-protocol", @@ -5735,11 +5787,11 @@ dependencies = [ [[package]] name = "x11rb-protocol" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67" +checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc" dependencies = [ - "nix 0.24.3", + "nix 0.26.4", ] [[package]] @@ -5771,10 +5823,10 @@ dependencies = [ ] [[package]] -name = "xml-rs" -version = "0.8.19" +name = "xkeysym" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" +checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621" [[package]] name = "zbus" diff --git a/wooting-macro-backend/Cargo.toml b/wooting-macro-backend/Cargo.toml index 1beb71c3..db170ba6 100644 --- a/wooting-macro-backend/Cargo.toml +++ b/wooting-macro-backend/Cargo.toml @@ -20,7 +20,7 @@ tokio-serde = { version = "0.8", features = ["json"] } opener = "0.6" obws = { version = "0.11" } rodio = "0.17" -copypasta = { version = "0.8", features = ["smithay-clipboard"] } +copypasta = { version = "0.10", features = ["smithay-clipboard"] } serde_repr = "0.1" fastrand = "2.0" @@ -30,6 +30,7 @@ anyhow = "1.0" log = "0.4" env_logger = "0.10" rayon = "1.8" +url = "2.4.1" [profile.release] lto = true diff --git a/wooting-macro-backend/src/plugin/system_event.rs b/wooting-macro-backend/src/plugin/system_event.rs index d5f90f23..b2f59990 100644 --- a/wooting-macro-backend/src/plugin/system_event.rs +++ b/wooting-macro-backend/src/plugin/system_event.rs @@ -3,21 +3,23 @@ use copypasta::{ClipboardContext, ClipboardProvider}; use fastrand; use log::*; use rdev; +use std::path::PathBuf; use std::vec; use tokio::sync::mpsc::UnboundedSender; +use url::Url; use crate::hid_table::SCANCODE_TO_RDEV; -// Frequently used constants +// Frequently used keys within the code. const COPY_HOTKEY: [rdev::Key; 2] = [rdev::Key::ControlLeft, rdev::Key::KeyC]; const PASTE_HOTKEY: [rdev::Key; 2] = [rdev::Key::ControlLeft, rdev::Key::KeyV]; #[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Hash, Eq)] #[serde(tag = "type")] pub enum DirectoryAction { - Directory { data: String }, - File { data: String }, - Website { data: String }, + File { data: PathBuf }, + Directory { data: PathBuf }, + Website { data: Url }, } #[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Hash, Eq)] @@ -35,20 +37,15 @@ impl SystemAction { pub async fn execute(&self, send_channel: UnboundedSender) { match &self { SystemAction::Open { action } => match action { - DirectoryAction::Directory { data } => { - match opener::open(std::path::Path::new(data)) { - Ok(x) => x, - Err(e) => error!("Error: {}", e), - }; - } - DirectoryAction::File { data } => { - match opener::open(std::path::Path::new(data)) { + DirectoryAction::Directory { data } | DirectoryAction::File { data } => { + match opener::open(data) { Ok(x) => x, Err(e) => error!("Error: {}", e), }; } DirectoryAction::Website { data } => { - match opener::open_browser(std::path::Path::new(data)) { + // The open_browser explicitly opens the path in a browser window. + match opener::open_browser(data.as_str()) { Ok(x) => x, Err(e) => error!("Error: {}", e), }; @@ -56,16 +53,13 @@ impl SystemAction { }, SystemAction::Volume { action } => match action { VolumeAction::ToggleMute => { - util::send_key(&send_channel, vec![*SCANCODE_TO_RDEV.get(&0x7f).unwrap()]) - .await; + util::send_key(&send_channel, vec![rdev::Key::VolumeMute]).await; } VolumeAction::LowerVolume => { - util::send_key(&send_channel, vec![*SCANCODE_TO_RDEV.get(&0x81).unwrap()]) - .await; + util::send_key(&send_channel, vec![rdev::Key::VolumeDown]).await; } VolumeAction::IncreaseVolume => { - util::send_key(&send_channel, vec![*SCANCODE_TO_RDEV.get(&0x80).unwrap()]) - .await; + util::send_key(&send_channel, vec![rdev::Key::VolumeUp]).await; } }, SystemAction::Clipboard { action } => match action { From c3cffba7115a76ea7eacafac2df19d58d42d6393 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 8 Nov 2023 16:03:37 +0100 Subject: [PATCH 06/86] Make mouse 1 always work, never grab it Refactor mouse impl to HidTable --- wooting-macro-backend/src/hid_table.rs | 38 +++++++++++++++++++++++ wooting-macro-backend/src/lib.rs | 9 +++--- wooting-macro-backend/src/plugin/mouse.rs | 37 ---------------------- 3 files changed, 43 insertions(+), 41 deletions(-) diff --git a/wooting-macro-backend/src/hid_table.rs b/wooting-macro-backend/src/hid_table.rs index c90b55e3..4fb845a9 100644 --- a/wooting-macro-backend/src/hid_table.rs +++ b/wooting-macro-backend/src/hid_table.rs @@ -1,6 +1,7 @@ use std::collections::HashMap; use std::hash::Hash; +use crate::plugin::mouse::MouseButton; use lazy_static::lazy_static; use rdev::{Button, Key}; @@ -16,6 +17,43 @@ pub static ref BUTTON_TO_HID: HashMap = { scancode };} +impl From<&Button> for MouseButton { + fn from(value: &Button) -> Self { + match *value { + Button::Left => MouseButton::Left, + Button::Right => MouseButton::Right, + Button::Middle => MouseButton::Middle, + Button::Forward => MouseButton::Mouse4, + Button::Backward => MouseButton::Mouse5, + Button::Unknown(_) => MouseButton::Left, + } + } +} + +impl From<&MouseButton> for Button { + fn from(item: &MouseButton) -> Self { + match *item { + MouseButton::Left => Button::Left, + MouseButton::Right => Button::Right, + MouseButton::Middle => Button::Middle, + MouseButton::Mouse4 => Button::Forward, + MouseButton::Mouse5 => Button::Backward, + } + } +} + +impl From<&MouseButton> for u32 { + fn from(value: &MouseButton) -> Self { + match *value { + MouseButton::Left => 0x101, + MouseButton::Right => 0x102, + MouseButton::Middle => 0x103, + MouseButton::Mouse4 => 0x104, + MouseButton::Mouse5 => 0x105, + } + } +} + lazy_static! { ///Conversion from HID codes to the library backend enums. #[derive(Debug, PartialEq, Hash, std::cmp::Eq)] diff --git a/wooting-macro-backend/src/lib.rs b/wooting-macro-backend/src/lib.rs index 340ac419..d8cec954 100644 --- a/wooting-macro-backend/src/lib.rs +++ b/wooting-macro-backend/src/lib.rs @@ -531,10 +531,11 @@ impl MacroBackend { channel_clone, ); - if should_grab { - None - } else { - Some(event) + // Left mouse button never gets consumed to allow users to control their PC. + match (should_grab, button) { + (true, rdev::Button::Left) => Some(event), + (true, _) => None, + (false, _) => Some(event), } } rdev::EventType::ButtonRelease(button) => { diff --git a/wooting-macro-backend/src/plugin/mouse.rs b/wooting-macro-backend/src/plugin/mouse.rs index 3c5b803c..5665e07c 100644 --- a/wooting-macro-backend/src/plugin/mouse.rs +++ b/wooting-macro-backend/src/plugin/mouse.rs @@ -31,43 +31,6 @@ pub enum MouseButton { Mouse5 = 0x105, } -impl From<&rdev::Button> for MouseButton { - fn from(value: &rdev::Button) -> Self { - match *value { - rdev::Button::Left => MouseButton::Left, - rdev::Button::Right => MouseButton::Right, - rdev::Button::Middle => MouseButton::Middle, - rdev::Button::Forward => MouseButton::Mouse4, - rdev::Button::Backward => MouseButton::Mouse5, - rdev::Button::Unknown(_) => MouseButton::Left, - } - } -} - -impl From<&MouseButton> for rdev::Button { - fn from(item: &MouseButton) -> Self { - match *item { - MouseButton::Left => rdev::Button::Left, - MouseButton::Right => rdev::Button::Right, - MouseButton::Middle => rdev::Button::Middle, - MouseButton::Mouse4 => rdev::Button::Forward, - MouseButton::Mouse5 => rdev::Button::Backward, - } - } -} - -impl From<&MouseButton> for u32 { - fn from(value: &MouseButton) -> Self { - match *value { - MouseButton::Left => 0x101, - MouseButton::Right => 0x102, - MouseButton::Middle => 0x103, - MouseButton::Mouse4 => 0x104, - MouseButton::Mouse5 => 0x105, - } - } -} - #[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Hash, Eq)] #[serde(tag = "type")] /// Mouse press action: Press presses a defined button. Release releases a defined button. From 1f8cfbb88a0f0dad21dd115a44f86b8bfb688e28 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 8 Nov 2023 14:31:04 +0100 Subject: [PATCH 07/86] Added proper error handling with anyhow Util cleanup Generic cleanup of the lib file --- src-tauri/Cargo.lock | 1 + src-tauri/Cargo.toml | 1 + src-tauri/src/main.rs | 33 ++- src/contexts/settingsContext.tsx | 28 +-- wooting-macro-backend/src/bin/main.rs | 8 +- wooting-macro-backend/src/config.rs | 163 ++++++++++----- wooting-macro-backend/src/lib.rs | 190 +++++++++++------- wooting-macro-backend/src/plugin/mouse.rs | 35 ++-- .../src/plugin/system_event.rs | 86 ++++---- wooting-macro-backend/src/plugin/util.rs | 47 ++--- 10 files changed, 355 insertions(+), 237 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 6db43576..9f29f8ba 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -5936,6 +5936,7 @@ dependencies = [ name = "wooting-macros" version = "1.0.2" dependencies = [ + "anyhow", "auto-launch", "byte-unit", "log", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 71b8f218..5c133d6b 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -23,6 +23,7 @@ auto-launch = "0.5" log = "0.4" tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev", features= ["colored"] } byte-unit = "4.0" +anyhow = "1.0.75" [features] # by default Tauri runs in production mode diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index c86b3b9e..40a4d0e6 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -22,6 +22,8 @@ use tauri_plugin_log::fern::colors::{Color, ColoredLevelConfig}; use wooting_macro_backend::config::*; use wooting_macro_backend::*; +use anyhow::Result; + #[tauri::command] /// Gets the application config from the current state and sends to frontend. /// The state gets it from the config file at bootup. @@ -35,9 +37,11 @@ async fn get_config(state: tauri::State<'_, MacroBackend>) -> Result, config: ApplicationConfig, -) -> Result<(), ()> { - state.set_config(config).await; - Ok(()) +) -> Result<(), String> { + state + .set_config(config) + .await + .map_err(|err| err.to_string()) } #[tauri::command] @@ -52,9 +56,11 @@ async fn get_macros(state: tauri::State<'_, MacroBackend>) -> Result, frontend_data: MacroData, -) -> Result<(), ()> { - state.set_macros(frontend_data).await; - Ok(()) +) -> Result<(), String> { + state + .set_macros(frontend_data) + .await + .map_err(|err| err.to_string()) } #[tauri::command] @@ -76,14 +82,16 @@ async fn main() { .and_then(|s| log::LevelFilter::from_str(s).ok()) .unwrap_or(log::LevelFilter::Info); - MacroBackend::generate_directories(); + MacroBackend::generate_directories().expect("unable to generate config directories"); let backend = MacroBackend::default(); #[cfg(any(target_os = "windows", target_os = "linux"))] // The backend is run only on Windows and Linux, on macOS it won't work. info!("Running the macro backend"); - backend.init().await; + if let Err(e) = backend.init().await { + eprintln!("Initialization error: {}", e); + }; // Read the options from the config. let set_autolaunch: bool = backend.config.read().await.auto_start; @@ -203,7 +211,10 @@ async fn main() { }) .on_window_event(move |event| { if let WindowEvent::CloseRequested { api, .. } = event.event() { - if ApplicationConfig::read_data().minimize_to_tray { + if ApplicationConfig::read_data() + .expect("Error reading config") + .minimize_to_tray + { event.window().hide().unwrap(); api.prevent_close(); } @@ -242,7 +253,9 @@ async fn main() { ) .max_file_size(Byte::from_unit(16_f64, ByteUnit::KiB).unwrap().into()) .targets([ - tauri_plugin_log::LogTarget::Folder(LogDirPath::file_name()), + tauri_plugin_log::LogTarget::Folder( + LogDirPath::file_name().expect("error getting log folder name"), + ), tauri_plugin_log::LogTarget::Stdout, tauri_plugin_log::LogTarget::Webview, ]) diff --git a/src/contexts/settingsContext.tsx b/src/contexts/settingsContext.tsx index f0483ea2..7dbe8ad7 100644 --- a/src/contexts/settingsContext.tsx +++ b/src/contexts/settingsContext.tsx @@ -11,7 +11,7 @@ import { } from 'react' import { ApplicationConfig, SettingsState } from '../types' import { updateSettings } from '../constants/utils' -import {error} from "tauri-plugin-log" +import { error } from "tauri-plugin-log" type SettingsProviderProps = { children: ReactNode } @@ -25,7 +25,7 @@ function useSettingsContext() { return context } -function SettingsProvider({ children }: SettingsProviderProps) { +function SettingsProvider({children}: SettingsProviderProps) { const [initComplete, setInitComplete] = useState(false) const [config, setConfig] = useState({ AutoStart: false, @@ -38,7 +38,7 @@ function SettingsProvider({ children }: SettingsProviderProps) { }) const toast = useToast() - const { setColorMode } = useColorMode() + const {setColorMode} = useColorMode() useEffect(() => { invoke('get_config') @@ -51,9 +51,9 @@ function SettingsProvider({ children }: SettingsProviderProps) { toast({ title: 'Error loading settings', description: - 'Unable to load settings, please re-open the app. If that does not work, please contact us on Discord.', + `Unable to load settings: ${e}. Please re-open the app. If that does not work, please contact us on Discord.`, status: 'error', - duration: 2000, + duration: 10000, isClosable: true }) }) @@ -66,9 +66,9 @@ function SettingsProvider({ children }: SettingsProviderProps) { toast({ title: 'Error updating settings', description: - 'Unable to update settings, please re-open the app. If that does not work, please contact us on Discord.', + `Unable to update settings: ${e}. Please re-open the app. If that does not work, please contact us on Discord.`, status: 'error', - duration: 2000, + duration: 10000, isClosable: true }) }) @@ -76,38 +76,38 @@ function SettingsProvider({ children }: SettingsProviderProps) { const updateLaunchOnStartup = useCallback((value: boolean) => { setConfig((config) => { - return { ...config, AutoStart: value } + return {...config, AutoStart: value} }) }, []) const updateMinimizeOnStartup = useCallback((value: boolean) => { setConfig((config) => { - return { ...config, MinimizeAtLaunch: value } + return {...config, MinimizeAtLaunch: value} }) }, []) const updateMinimizeOnClose = useCallback((value: boolean) => { setConfig((config) => { - return { ...config, MinimizeToTray: value } + return {...config, MinimizeToTray: value} }) }, []) const updateAutoAddDelay = useCallback((value: boolean) => { setConfig((config) => { - return { ...config, AutoAddDelay: value } + return {...config, AutoAddDelay: value} }) }, []) const updateDefaultDelayVal = useCallback((value: string) => { setConfig((config) => { - return { ...config, DefaultDelayValue: Number(value) } + return {...config, DefaultDelayValue: Number(value)} }) }, []) const updateAutoSelectElement = useCallback((value: boolean) => { setConfig((config) => { - return { ...config, AutoSelectElement: value } + return {...config, AutoSelectElement: value} }) }, []) const updateTheme = useCallback( (value: string) => { setConfig((config) => { - return { ...config, Theme: value } + return {...config, Theme: value} }) setColorMode(value) }, diff --git a/wooting-macro-backend/src/bin/main.rs b/wooting-macro-backend/src/bin/main.rs index 12bae667..19187c26 100644 --- a/wooting-macro-backend/src/bin/main.rs +++ b/wooting-macro-backend/src/bin/main.rs @@ -1,17 +1,17 @@ use env_logger::Env; -use wooting_macro_backend::MacroBackend; use log::*; +use wooting_macro_backend::MacroBackend; #[tokio::main(flavor = "multi_thread", worker_threads = 10)] /// This main function serves only for running the backend. Backend can be run without frontend parts as most things are separated. async fn main() { - env_logger::Builder::from_env(Env::default().default_filter_or("info")).init(); - info!("Running only backend"); let backend = MacroBackend::default(); - backend.init().await; + if let Err(e) = backend.init().await { + eprintln!("Initialization error: {}", e); + }; } diff --git a/wooting-macro-backend/src/config.rs b/wooting-macro-backend/src/config.rs index 00ef3ecd..ec08eb21 100644 --- a/wooting-macro-backend/src/config.rs +++ b/wooting-macro-backend/src/config.rs @@ -1,4 +1,5 @@ use crate::MacroData; +use anyhow::Result; use std::fs::File; use std::path::PathBuf; @@ -6,112 +7,176 @@ use log::*; /// Trait to get data or write out data from the state to file. pub trait ConfigFile: Default + serde::Serialize + for<'de> serde::Deserialize<'de> { - fn file_name() -> PathBuf; + fn file_name() -> Result; /// Reads the data from the file and returns it. /// /// If it errors out, it replaces and writes a default config. - fn read_data() -> Self { - let default = Self::default(); - - match File::open(Self::file_name().as_path()) { + fn read_data() -> Result { + match File::open(Self::file_name()?) { Ok(data) => { let data: Self = match serde_json::from_reader(&data) { Ok(x) => x, Err(error) => { - error!("Error reading config.json, using default data. {}", error); - default.write_to_file(); - default + error!("Error reading config.json, using default data and moving to backup. {}", error); + let file_name = Self::file_name(); + let mut file_name = file_name? + .to_str() + .expect("Cannot preserve invalid file, crashing to save custom config") + .to_string(); + + if PathBuf::from(format!("{}.bak", file_name)).exists() { + let mut i = 0; + while PathBuf::from(format!("{}-{}.bak", file_name, i)).exists() { + i += 1; + } + file_name = format!("{}-{}.bak", file_name, i); + } + warn!( + "Renaming {} to {}", + Self::file_name()?.to_str().unwrap(), + file_name + ); + + std::fs::rename(Self::file_name()?, file_name) + .expect("cannot rename the invalid config, aborting."); + Self::default() } }; - data + Ok(data) } - Err(err) => { - error!("Error opening file, using default config {}", err); - default.write_to_file(); - default - } + Err(err) => match err.kind() { + std::io::ErrorKind::NotFound => { + warn!("File not found, writing a default config {}", err); + Self::default().write_to_file()?; + Ok(Self::default()) + } + _ => { + panic!("Filesystem error, cannot proceed. {}", err); + } + }, } } /// Writes the config file to the config directory. /// /// If it fails, it uses only in-memory defaults and won't save anything to disk. - fn write_to_file(&self) { - match std::fs::write( - Self::file_name().as_path(), - serde_json::to_string_pretty(&self).unwrap(), - ) { - Ok(_) => { - info!("Success writing a new file"); - } - Err(err) => { - error!( - "Error writing a new file, using only read only defaults. {}", - err - ); - } - }; + fn write_to_file(&self) -> Result<()> { + let converted_json = serde_json::to_string_pretty(&self)?; + + std::fs::write(Self::file_name()?.as_path(), converted_json)?; + + Ok(()) } } impl ConfigFile for ApplicationConfig { - fn file_name() -> PathBuf { + fn file_name() -> Result { + let path: PathBuf; let dir = { #[cfg(debug_assertions)] - let x = PathBuf::from(".."); + { + path = PathBuf::from(".."); + } #[cfg(not(debug_assertions))] - let x = dirs::config_dir().unwrap().join(CONFIG_DIR); + { + path = { + let conf_dir: Result = match dirs::config_dir() { + Some(config_path) => Ok(config_path), + None => Err(anyhow::Error::msg( + "Cannot find config directory, cannot proceed.", + )), + }; + conf_dir?.join(CONFIG_DIR) + }; + } - x + path }; - dir.join(CONFIG_FILE) + Ok(dir.join(CONFIG_FILE)) } } impl ConfigFile for LogDirPath { - fn file_name() -> PathBuf { + fn file_name() -> Result { + let path: PathBuf; #[cfg(debug_assertions)] - let x = PathBuf::from(".."); + { + path = PathBuf::from(".."); + } #[cfg(not(debug_assertions))] - let x = dirs::config_dir().unwrap().join(CONFIG_DIR); + { + path = { + let conf_dir: Result = match dirs::config_dir() { + Some(config_path) => Ok(config_path), + None => Err(anyhow::Error::msg( + "Cannot find config directory, cannot proceed.", + )), + }; + conf_dir?.join(CONFIG_DIR) + }; + } - x + Ok(path) } } impl ConfigFile for LogFileName { - fn file_name() -> PathBuf { + fn file_name() -> Result { + let path: PathBuf; + let dir = { #[cfg(debug_assertions)] - let x = PathBuf::from(".."); + { + path = PathBuf::from(".."); + } #[cfg(not(debug_assertions))] - let x = dirs::config_dir().unwrap().join(CONFIG_DIR); - - x + { + let conf_dir: Result = match dirs::config_dir() { + Some(config_path) => Ok(config_path), + None => Err(anyhow::Error::msg( + "Cannot find config directory, cannot proceed.", + )), + }; + path = conf_dir?.join(CONFIG_DIR); + } + path }; - dir.join(LOG_FILE) + Ok(dir.join(LOG_FILE)) } } impl ConfigFile for MacroData { - fn file_name() -> PathBuf { + fn file_name() -> Result { + let path: PathBuf; let dir = { #[cfg(debug_assertions)] - let x = PathBuf::from(".."); + { + path = PathBuf::from(".."); + } #[cfg(not(debug_assertions))] - let x = dirs::config_dir().unwrap().join(CONFIG_DIR); + { + path = { + let conf_dir: Result = match dirs::config_dir() { + Some(config_path) => Ok(config_path), + None => Err(anyhow::Error::msg( + "Cannot find config directory, cannot proceed.", + )), + }; + conf_dir?.join(CONFIG_DIR) + }; + } - x + path }; - dir.join(DATA_FILE) + Ok(dir.join(DATA_FILE)) } } diff --git a/wooting-macro-backend/src/lib.rs b/wooting-macro-backend/src/lib.rs index d8cec954..39a77dca 100644 --- a/wooting-macro-backend/src/lib.rs +++ b/wooting-macro-backend/src/lib.rs @@ -21,6 +21,12 @@ use halfbrown::HashMap; use config::{ApplicationConfig, ConfigFile}; #[cfg(not(debug_assertions))] use dirs; +#[cfg(not(debug_assertions))] +use std::path::PathBuf; + +use rdev::simulate; + +use anyhow::{Error, Result}; // This has to be imported for release build #[allow(unused_imports)] @@ -112,34 +118,33 @@ impl Macro { /// This function is used to execute a macro. It is called by the macro checker. /// It spawns async tasks to execute said events specifically. /// Make sure to expand this if you implement new action types. - async fn execute(&self, send_channel: UnboundedSender) { + async fn execute(&self, send_channel: UnboundedSender) -> Result<()> { for action in &self.sequence { match action { ActionEventType::KeyPressEventAction { data } => match data.key_type { key_press::KeyType::Down => { + // One key press down send_channel - .send(rdev::EventType::KeyPress(SCANCODE_TO_RDEV[&data.keypress])) - .unwrap(); + .send(rdev::EventType::KeyPress(SCANCODE_TO_RDEV[&data.keypress]))?; } key_press::KeyType::Up => { - send_channel - .send(rdev::EventType::KeyRelease( - SCANCODE_TO_RDEV[&data.keypress], - )) - .unwrap(); + // One key lift up + send_channel.send(rdev::EventType::KeyRelease( + SCANCODE_TO_RDEV[&data.keypress], + ))?; } key_press::KeyType::DownUp => { + // Key press send_channel - .send(rdev::EventType::KeyPress(SCANCODE_TO_RDEV[&data.keypress])) - .unwrap(); + .send(rdev::EventType::KeyPress(SCANCODE_TO_RDEV[&data.keypress]))?; + // Wait the set delay by user tokio::time::sleep(time::Duration::from_millis(data.press_duration)).await; - send_channel - .send(rdev::EventType::KeyRelease( - SCANCODE_TO_RDEV[&data.keypress], - )) - .unwrap(); + // Lift the key + send_channel.send(rdev::EventType::KeyRelease( + SCANCODE_TO_RDEV[&data.keypress], + ))?; } }, ActionEventType::PhillipsHueEventAction { .. } => {} @@ -161,6 +166,7 @@ impl Macro { } } } + Ok(()) } } @@ -200,7 +206,7 @@ impl Default for MacroData { impl MacroData { /// Extracts the first trigger data from the macros. - pub fn extract_triggers(&self) -> MacroTriggerLookup { + pub fn extract_triggers(&self) -> Result { let mut output_hashmap = MacroTriggerLookup::new(); for collections in &self.data { @@ -211,18 +217,29 @@ impl MacroData { TriggerEventType::KeyPressEvent { data, .. } => { //TODO: optimize using references match data.len() { - 0 => error!("A trigger key can't be zero...: {:#?}", data), - 1 => output_hashmap - .entry(*data.first().unwrap()) - .or_default() - .push(macros.clone()), + 0 => { + return Err(Error::msg(format!("A trigger key can't be zero, aborting trigger generation: {:#?}", data).to_string())); + } + 1 => { + let first_data = match data.first() { + Some(data) => *data, + None => { + return Err(Error::msg( + "Error getting first element in macro trigger", + )); + } + }; + output_hashmap + .entry(first_data) + .or_default() + .push(macros.clone()) + } _ => data[..data.len() - 1].iter().for_each(|x| { output_hashmap.entry(*x).or_default().push(macros.clone()); }), } } TriggerEventType::MouseEvent { data } => { - // let data: u32 = *<&mouse::MouseButton as Into<&u32>>::into(data); let data: u32 = data.into(); match output_hashmap.get_mut(&data) { @@ -238,7 +255,7 @@ impl MacroData { } } - output_hashmap + Ok(output_hashmap) } } @@ -262,7 +279,10 @@ async fn execute_macro(macros: Macro, channel: UnboundedSender) let cloned_channel = channel; task::spawn(async move { - macros.execute(cloned_channel).await; + macros + .execute(cloned_channel) + .await + .unwrap_or_else(|err| error!("Error executing macro: {}", err)); }); } MacroType::Toggle => { @@ -280,13 +300,21 @@ async fn execute_macro(macros: Macro, channel: UnboundedSender) /// Puts a mandatory 0-20 ms delay between each macro execution (depending on the platform). fn keypress_executor_sender(mut rchan_execute: UnboundedReceiver) { loop { - plugin::util::send(&rchan_execute.blocking_recv().unwrap()); + let received_event = match &rchan_execute.blocking_recv() { + Some(event) => *event, + None => { + error!("Failed to receive an event!"); + continue; + } + }; + plugin::util::direct_send_event(&received_event) + .unwrap_or_else(|err| error!("Error directly sending an event to keyboard: {}", err)); - //Windows requires a delay between each macro execution. + //MacOS requires some strange delays so putting it here just in case. #[cfg(any(target_os = "macos", target_os = "linux"))] thread::sleep(time::Duration::from_millis(10)); - //MacOS requires some strange delays so putting it here just in case. + //Windows requires a delay between each macro execution. #[cfg(target_os = "windows")] thread::sleep(time::Duration::from_millis(1)); } @@ -378,14 +406,37 @@ fn check_macro_execution_efficiently( output } +#[derive(Debug, Clone, Default)] +struct KeysPressed(Arc>>); + +impl Drop for KeysPressed { + fn drop(&mut self) { + self.0.blocking_read().iter().for_each(|key| { + match simulate(&rdev::EventType::KeyRelease(*key)) { + Ok(()) => info!("Releasing pressed button {:?}", key), + Err(err) => error!("We could not send a drop key release.\n{}", err), + } + }); + } +} + impl MacroBackend { /// Creates the data directory if not present in %appdata% (only in release build). - pub fn generate_directories() { + pub fn generate_directories() -> Result<()> { #[cfg(not(debug_assertions))] - match std::fs::create_dir_all(dirs::config_dir().unwrap().join(CONFIG_DIR).as_path()) { - Ok(x) => x, - Err(error) => error!("Directory creation failed, OS error: {}", error), - }; + { + let conf_dir: Result = match dirs::config_dir() { + Some(config_path) => Ok(config_path), + None => Err(anyhow::Error::msg( + "Cannot find config directory, cannot proceed.", + )), + }; + + let conf_dir = conf_dir?.join(CONFIG_DIR); + + std::fs::create_dir_all(conf_dir.as_path())?; + } + Ok(()) } /// Sets whether the backend should process keys that it listens to. Disabling disables the processing logic, but the app still grabs the keys. @@ -393,20 +444,22 @@ impl MacroBackend { self.is_listening.store(is_listening, Ordering::Relaxed); } /// Sets the macros from the frontend to the files. This function is here to completely split the frontend off. - pub async fn set_macros(&self, macros: MacroData) { - macros.write_to_file(); - *self.triggers.write().await = macros.extract_triggers(); + pub async fn set_macros(&self, macros: MacroData) -> Result<()> { + macros.write_to_file()?; + *self.triggers.write().await = macros.extract_triggers()?; *self.data.write().await = macros; + Ok(()) } /// Sets the config from the frontend to the files. This function is here to completely split the frontend off. - pub async fn set_config(&self, config: ApplicationConfig) { - config.write_to_file(); + pub async fn set_config(&self, config: ApplicationConfig) -> Result<()> { + config.write_to_file()?; *self.config.write().await = config; + Ok(()) } /// Initializes the entire backend and gets the whole grabbing system running. - pub async fn init(&self) { + pub async fn init(&self) -> Result<()> { //? : io-uring async read files and write files //TODO: implement drop when the application ends to clean up the downed keys @@ -418,13 +471,13 @@ impl MacroBackend { // Spawn the channels let (schan_execute, rchan_execute) = tokio::sync::mpsc::unbounded_channel(); - //Create the executor + // Create the executor thread::spawn(move || { keypress_executor_sender(rchan_execute); }); let _grabber = task::spawn_blocking(move || { - let keys_pressed: Arc>> = Arc::new(RwLock::new(vec![])); + let keys_pressed: KeysPressed = KeysPressed::default(); rdev::grab(move |event: rdev::Event| { if inner_is_listening.load(Ordering::Relaxed) { @@ -433,11 +486,8 @@ impl MacroBackend { debug!("Key Pressed RAW: {:?}", key); let key_to_push = key; - // https://doc.rust-lang.org/std/collections/struct.HashSet.html - // benchmark - let pressed_keys_copy_converted: Vec = { - let mut keys_pressed = keys_pressed.blocking_write(); + let mut keys_pressed = keys_pressed.0.blocking_write(); keys_pressed.push(key_to_push); @@ -463,21 +513,20 @@ impl MacroBackend { .collect::>() ); - let first_key: u32 = match pressed_keys_copy_converted.first() { - None => 0, - Some(data_first) => *data_first, - }; + let first_key: u32 = pressed_keys_copy_converted + .first() + .copied() + .unwrap_or_default(); let trigger_list = inner_triggers.blocking_read().clone(); - let check_these_macros = match trigger_list.get(&first_key) { - None => { - vec![] - } - Some(data_found) => data_found.to_vec(), - }; + let check_these_macros = trigger_list + .get(&first_key) + .cloned() + .unwrap_or_default() + .to_vec(); - // ? up the pressed keys here immidiately? + // ? up the pressed keys here right away? let should_grab = { if !check_these_macros.is_empty() { @@ -500,9 +549,9 @@ impl MacroBackend { } rdev::EventType::KeyRelease(key) => { - keys_pressed.blocking_write().retain(|x| *x != key); + keys_pressed.0.blocking_write().retain(|x| *x != key); - debug!("Key state: {:?}", keys_pressed.blocking_read()); + debug!("Key state: {:?}", keys_pressed.0.blocking_read()); Some(event) } @@ -547,37 +596,30 @@ impl MacroBackend { rdev::EventType::Wheel { .. } => Some(event), } } else { - debug!( - "Passing event through... macro recording disabled: {:?}", - event - ); - Some(event) } }) }); + Err(anyhow::Error::msg("Error in grabbing thread!")) } } impl Default for MacroBackend { /// Generates a new state. fn default() -> Self { - let macro_data = MacroData::read_data(); - let triggers = macro_data.extract_triggers(); + let macro_data = + MacroData::read_data().unwrap_or_else(|err| panic!("Cannot get macro data! {}", err)); + + let triggers = macro_data + .extract_triggers() + .expect("error extracting triggers"); MacroBackend { data: Arc::new(RwLock::from(macro_data)), - config: Arc::new(RwLock::from(ApplicationConfig::read_data())), + config: Arc::new(RwLock::from( + ApplicationConfig::read_data().expect("error reading config"), + )), triggers: Arc::new(RwLock::from(triggers)), is_listening: Arc::new(AtomicBool::new(true)), } } } - -#[cfg(test)] -mod tests { - #[test] - fn it_works() { - let result = 2 + 2; - assert_eq!(result, 4); - } -} diff --git a/wooting-macro-backend/src/plugin/mouse.rs b/wooting-macro-backend/src/plugin/mouse.rs index 5665e07c..c19a237a 100644 --- a/wooting-macro-backend/src/plugin/mouse.rs +++ b/wooting-macro-backend/src/plugin/mouse.rs @@ -1,5 +1,5 @@ +use anyhow::Result; use log::*; -use rdev::EventType; use serde_repr; use tokio::sync::mpsc::UnboundedSender; @@ -43,43 +43,36 @@ pub enum MousePressAction { impl MouseAction { /// Creates a new MouseAction from a rdev event and sends it to the channel for async execution. - pub async fn execute(&self, send_channel: UnboundedSender) { + pub async fn execute(&self, send_channel: UnboundedSender) -> Result<()> { match &self { MouseAction::Press { data } => match data { MousePressAction::Down { button } => { - send_channel - .send(rdev::EventType::ButtonPress(button.into())) - .unwrap(); + send_channel.send(rdev::EventType::ButtonPress(button.into()))?; } MousePressAction::Up { button } => { - send_channel - .send(rdev::EventType::ButtonRelease(button.into())) - .unwrap(); + send_channel.send(rdev::EventType::ButtonRelease(button.into()))?; } MousePressAction::DownUp { button, duration } => { - send_channel - .send(rdev::EventType::ButtonPress(button.into())) - .unwrap(); + send_channel.send(rdev::EventType::ButtonPress(button.into()))?; tokio::time::sleep(time::Duration::from_millis(*duration as u64)).await; - send_channel - .send(rdev::EventType::ButtonRelease(button.into())) - .unwrap(); + send_channel.send(rdev::EventType::ButtonRelease(button.into()))?; } }, MouseAction::Move { x, y } => { - let display_size = rdev::display_size().unwrap(); + let display_size = rdev::display_size().map_err(|err| { + anyhow::Error::msg(format!("Error getting displays: {:?}", err)) + })?; info!("Display size: {:?}", display_size); - send_channel - .send(rdev::EventType::MouseMove { - x: *x as f64, - y: *y as f64, - }) - .unwrap(); + send_channel.send(rdev::EventType::MouseMove { + x: *x as f64, + y: *y as f64, + })?; } } + Ok(()) } } diff --git a/wooting-macro-backend/src/plugin/system_event.rs b/wooting-macro-backend/src/plugin/system_event.rs index b2f59990..aa01ab3d 100644 --- a/wooting-macro-backend/src/plugin/system_event.rs +++ b/wooting-macro-backend/src/plugin/system_event.rs @@ -1,15 +1,13 @@ use super::util; +use anyhow::Result; use copypasta::{ClipboardContext, ClipboardProvider}; use fastrand; -use log::*; use rdev; use std::path::PathBuf; use std::vec; use tokio::sync::mpsc::UnboundedSender; use url::Url; -use crate::hid_table::SCANCODE_TO_RDEV; - // Frequently used keys within the code. const COPY_HOTKEY: [rdev::Key; 2] = [rdev::Key::ControlLeft, rdev::Key::KeyC]; const PASTE_HOTKEY: [rdev::Key; 2] = [rdev::Key::ControlLeft, rdev::Key::KeyV]; @@ -33,93 +31,97 @@ pub enum SystemAction { impl SystemAction { /// Execute the keys themselves. - - pub async fn execute(&self, send_channel: UnboundedSender) { + pub async fn execute(&self, send_channel: UnboundedSender) -> Result<()> { match &self { SystemAction::Open { action } => match action { DirectoryAction::Directory { data } | DirectoryAction::File { data } => { - match opener::open(data) { - Ok(x) => x, - Err(e) => error!("Error: {}", e), - }; + opener::open(data)?; } DirectoryAction::Website { data } => { // The open_browser explicitly opens the path in a browser window. - match opener::open_browser(data.as_str()) { - Ok(x) => x, - Err(e) => error!("Error: {}", e), - }; + opener::open_browser(data.as_str())?; } }, SystemAction::Volume { action } => match action { VolumeAction::ToggleMute => { - util::send_key(&send_channel, vec![rdev::Key::VolumeMute]).await; + util::direct_send_key(&send_channel, vec![rdev::Key::VolumeMute]).await?; } VolumeAction::LowerVolume => { - util::send_key(&send_channel, vec![rdev::Key::VolumeDown]).await; + util::direct_send_key(&send_channel, vec![rdev::Key::VolumeDown]).await?; } VolumeAction::IncreaseVolume => { - util::send_key(&send_channel, vec![rdev::Key::VolumeUp]).await; + util::direct_send_key(&send_channel, vec![rdev::Key::VolumeUp]).await?; } }, SystemAction::Clipboard { action } => match action { ClipboardAction::SetClipboard { data } => { ClipboardContext::new() - .unwrap() + .map_err(|err| anyhow::Error::msg(err.to_string()))? .set_contents(data.to_owned()) - .unwrap(); + .map_err(|err| anyhow::Error::msg(err.to_string()))?; } ClipboardAction::Copy => { - util::send_hotkey(&send_channel, COPY_HOTKEY.to_vec()).await; + util::direct_send_hotkey(&send_channel, COPY_HOTKEY.to_vec()).await?; } ClipboardAction::GetClipboard => { - ClipboardContext::new().unwrap().get_contents().unwrap(); + ClipboardContext::new() + .map_err(|err| anyhow::Error::msg(err.to_string()))? + .get_contents() + .map_err(|err| anyhow::Error::msg(err.to_string()))?; } ClipboardAction::Paste => { - util::send_hotkey(&send_channel, PASTE_HOTKEY.to_vec()).await; + util::direct_send_hotkey(&send_channel, PASTE_HOTKEY.to_vec()).await?; } ClipboardAction::PasteUserDefinedString { data } => { ClipboardContext::new() - .unwrap() + .map_err(|err| anyhow::Error::msg(err.to_string()))? .set_contents(data.to_owned()) - .unwrap(); + .map_err(|err| anyhow::Error::msg(err.to_string()))?; - util::send_hotkey(&send_channel, PASTE_HOTKEY.to_vec()).await; + util::direct_send_hotkey(&send_channel, PASTE_HOTKEY.to_vec()).await?; } ClipboardAction::Sarcasm => { - let mut ctx = ClipboardContext::new().unwrap(); + let mut ctx = ClipboardContext::new() + .map_err(|err| anyhow::Error::msg(err.to_string()))?; + + // Copy the text + util::direct_send_hotkey(&send_channel, COPY_HOTKEY.to_vec()).await?; - util::send_hotkey(&send_channel, COPY_HOTKEY.to_vec()).await; + // Transform the text + let content = transform_text( + ctx.get_contents() + .map_err(|err| anyhow::Error::msg(err.to_string()))?, + ); - //Transform the text - let content = transform_text(ctx.get_contents().unwrap()); - ctx.set_contents(content).unwrap(); + ctx.set_contents(content) + .map_err(|err| anyhow::Error::msg(err.to_string()))?; - //Paste the text again - util::send_hotkey(&send_channel, PASTE_HOTKEY.to_vec()).await; + // Paste the text again + util::direct_send_hotkey(&send_channel, PASTE_HOTKEY.to_vec()).await?; } }, } + Ok(()) } } /// Transforms the text into a sarcastic version. fn transform_text(text: String) -> String { - let mut transformed_text = String::new(); - for c in text.chars() { - if c.is_ascii_alphabetic() && fastrand::bool() { - if c.is_ascii_lowercase() { - transformed_text.push(c.to_ascii_uppercase()); + text.chars() + .map(|c| { + if c.is_ascii_alphabetic() && fastrand::bool() { + if c.is_ascii_lowercase() { + c.to_ascii_uppercase() + } else { + c.to_ascii_lowercase() + } } else { - transformed_text.push(c.to_ascii_lowercase()); + c } - } else { - transformed_text.push(c); - } - } - transformed_text + }) + .collect() } #[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Hash, Eq)] diff --git a/wooting-macro-backend/src/plugin/util.rs b/wooting-macro-backend/src/plugin/util.rs index f78a0b94..9e365d2f 100644 --- a/wooting-macro-backend/src/plugin/util.rs +++ b/wooting-macro-backend/src/plugin/util.rs @@ -1,40 +1,41 @@ +use anyhow::Result; use log::*; use rdev; use tokio::sync::mpsc::UnboundedSender; /// Sends an event to the library to Execute on an OS level. This makes it easier to implement keypresses in custom code. -pub fn send(event_type: &rdev::EventType) { - debug!("Sending event: {:?}", event_type); - match rdev::simulate(event_type) { - Ok(()) => (), - Err(_) => { - error!("We could not send {:?}", event_type); - } - } +pub fn direct_send_event(event_type: &rdev::EventType) -> Result<()> { + trace!("Sending event: {:?}", event_type); + rdev::simulate(event_type)?; + Ok(()) } /// Sends a vector of keys to get processed -pub async fn send_key(send_channel: &UnboundedSender, key: Vec) { - for press in key { - send_channel.send(rdev::EventType::KeyPress(press)).unwrap(); - send_channel - .send(rdev::EventType::KeyRelease(press)) - .unwrap(); +pub async fn direct_send_key( + send_channel: &UnboundedSender, + key: Vec, +) -> Result<()> { + for press in key.iter() { + send_channel.send(rdev::EventType::KeyPress(*press))?; + + send_channel.send(rdev::EventType::KeyRelease(*press))?; } + Ok(()) } /// Sends a vector of hotkeys to get processed -pub async fn send_hotkey(send_channel: &UnboundedSender, key: Vec) { - for press in &key { - send_channel - .send(rdev::EventType::KeyPress(*press)) - .unwrap(); +pub async fn direct_send_hotkey( + send_channel: &UnboundedSender, + key: Vec, +) -> Result<()> { + for press in key.iter() { + send_channel.send(rdev::EventType::KeyPress(*press))?; } - for press in &key.into_iter().rev().collect::>() { - send_channel - .send(rdev::EventType::KeyRelease(*press)) - .unwrap(); + for press in key.iter().rev() { + send_channel.send(rdev::EventType::KeyRelease(*press))?; } + + Ok(()) } // Disabled until a better fix is done From 00fbea4f1c46800a62dbc876934a96c27c9c2c66 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Mon, 18 Dec 2023 14:17:36 +0100 Subject: [PATCH 08/86] Modifier key should be released properly now (#173) * Modifier key should be released properly now * Added error handling and clippy --- wooting-macro-backend/src/hid_table.rs | 13 ++++++++++ wooting-macro-backend/src/lib.rs | 7 +++--- wooting-macro-backend/src/plugin/util.rs | 30 +++++++++++++++++------- 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/wooting-macro-backend/src/hid_table.rs b/wooting-macro-backend/src/hid_table.rs index 4fb845a9..bf8c4aa3 100644 --- a/wooting-macro-backend/src/hid_table.rs +++ b/wooting-macro-backend/src/hid_table.rs @@ -54,6 +54,19 @@ impl From<&MouseButton> for u32 { } } +lazy_static! { + pub static ref RDEV_MODIFIER_KEYS: [rdev::Key; 8] = [ + Key::Alt, + Key::AltGr, + Key::ControlLeft, + Key::ControlRight, + Key::ShiftLeft, + Key::ShiftRight, + Key::MetaLeft, + Key::MetaRight + ]; +} + lazy_static! { ///Conversion from HID codes to the library backend enums. #[derive(Debug, PartialEq, Hash, std::cmp::Eq)] diff --git a/wooting-macro-backend/src/lib.rs b/wooting-macro-backend/src/lib.rs index 39a77dca..2c68d720 100644 --- a/wooting-macro-backend/src/lib.rs +++ b/wooting-macro-backend/src/lib.rs @@ -349,7 +349,7 @@ fn check_macro_execution_efficiently( let channel_clone_execute = channel_sender.clone(); let macro_clone_execute = macros.clone(); - // Disabled until a better fix is done + // We don't need this here as there can't be a single key that's a modifier // plugin::util::lift_keys(data, &channel_clone_execute); task::spawn(async move { @@ -370,8 +370,9 @@ fn check_macro_execution_efficiently( let channel_clone_execute = channel_sender.clone(); let macro_clone_execute = macros.clone(); - // Disabled until a better fix is done - // plugin::util::lift_keys(data, &channel_clone_execute); + // This releases any trigger keys that have been held to make macros more reliable when used with modifier hotkeys. + plugin::util::lift_keys(data, &channel_clone_execute) + .unwrap_or_else(|err| error!("Error lifting keys: {}", err)); task::spawn(async move { execute_macro(macro_clone_execute, channel_clone_execute).await; diff --git a/wooting-macro-backend/src/plugin/util.rs b/wooting-macro-backend/src/plugin/util.rs index 9e365d2f..a7360ffd 100644 --- a/wooting-macro-backend/src/plugin/util.rs +++ b/wooting-macro-backend/src/plugin/util.rs @@ -1,3 +1,4 @@ +use crate::hid_table::RDEV_MODIFIER_KEYS; use anyhow::Result; use log::*; use rdev; @@ -40,12 +41,23 @@ pub async fn direct_send_hotkey( // Disabled until a better fix is done // /// Lifts the keys pressed -// pub fn lift_keys(pressed_events: &Vec, channel_sender: &UnboundedSender) { -// for x in pressed_events { -// channel_sender -// .send(rdev::EventType::KeyRelease( -// super::super::SCANCODE_TO_RDEV[x], -// )) -// .unwrap(); -// } -// } +pub fn lift_keys( + pressed_events: &[u32], + channel_sender: &UnboundedSender, +) -> Result<()> { + let mut pressed_events_local = pressed_events.to_owned(); + + pressed_events_local.retain(|id_key| { + RDEV_MODIFIER_KEYS + .iter() + .any(|rdev_key| super::super::SCANCODE_TO_RDEV[id_key] == *rdev_key) + }); + + for key in pressed_events_local.iter() { + channel_sender.send(rdev::EventType::KeyRelease( + super::super::SCANCODE_TO_RDEV[key], + ))?; + } + + Ok(()) +} From bbe70b546c0a471e041c3657699c92e69e26a044 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 8 Nov 2023 12:43:19 +0100 Subject: [PATCH 09/86] Library/update (#181) Library/update (#181) * Updated frontend yarn libraries * updated libraries for tauri backend * Updated libraries for wootomation backend * Update libraries for backend * Backend updates * Yarn updates * Major version yarn upgrade * Updated typescript frontend libraries * updated backend libraries * Removed unneeded path rewriting --- package.json | 50 +- src-tauri/Cargo.lock | 953 +++++++----- src-tauri/Cargo.toml | 8 +- src-tauri/src/main.rs | 4 +- .../rightPanel/editForms/OpenEventForm.tsx | 6 +- src/components/overview/LeftPanel.tsx | 25 +- src/components/settings/SettingsLeftPanel.tsx | 24 +- src/constants/externalLinks.ts | 6 +- src/constants/utils.ts | 2 +- src/contexts/applicationContext.tsx | 20 +- src/hooks/useRecordingSequence.ts | 20 +- src/hooks/useRecordingTrigger.ts | 4 +- tsconfig.json | 2 +- wooting-macro-backend/Cargo.lock | 699 +++++---- wooting-macro-backend/Cargo.toml | 6 +- wooting-macro-backend/src/hid_table.rs | 152 +- yarn.lock | 1271 ++++++++++------- 17 files changed, 1881 insertions(+), 1371 deletions(-) diff --git a/package.json b/package.json index 6362490e..e5aa9afa 100644 --- a/package.json +++ b/package.json @@ -12,44 +12,44 @@ }, "dependencies": { "@chakra-ui/icons": "^2.1.1", - "@chakra-ui/react": "^2.8.1", - "@chakra-ui/system": "^2.6.1", - "@dnd-kit/core": "^6.0.8", - "@dnd-kit/modifiers": "^6.0.1", - "@dnd-kit/sortable": "^7.0.2", - "@dnd-kit/utilities": "^3.2.1", + "@chakra-ui/react": "^2.8.2", + "@chakra-ui/system": "^2.6.2", + "@dnd-kit/core": "^6.1.0", + "@dnd-kit/modifiers": "^7.0.0", + "@dnd-kit/sortable": "^8.0.0", + "@dnd-kit/utilities": "^3.2.2", "@emoji-mart/data": "1.1.2", "@emoji-mart/react": "1.1.1", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@fontsource/montserrat": "^5.0.15", - "@formkit/auto-animate": "0.8.0", - "@tauri-apps/api": "^1.5.1", + "@fontsource/montserrat": "^5.0.16", + "@formkit/auto-animate": "0.8.1", + "@tauri-apps/api": "^1.5.2", "emoji-mart": "^5.5.2", - "framer-motion": "^10.16.4", + "framer-motion": "^10.16.16", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-icons": "^4.11.0", + "react-icons": "^4.12.0", "tauri-plugin-log": "https://github.com/tauri-apps/tauri-plugin-log.git#commit=1a369766cf90f3aed9c2b7c68b70bf39081538b3", - "yarn": "^1.22.19" + "yarn": "^1.22.21" }, "devDependencies": { - "@tauri-apps/cli": "^1.5.6", - "@types/eslint": "^8.44.6", - "@types/node": "^20.8.10", + "@tauri-apps/cli": "^1.5.8", + "@types/eslint": "^8.44.9", + "@types/node": "^20.10.5", "@types/prettier": "^3.0.0", - "@types/react": "^18.2.36", - "@types/react-dom": "^18.2.14", - "@typescript-eslint/eslint-plugin": "^6.9.1", - "@typescript-eslint/parser": "^6.9.1", - "@vitejs/plugin-react": "^4.1.1", - "eslint": "^8.53.0", - "eslint-config-prettier": "^9.0.0", + "@types/react": "^18.2.45", + "@types/react-dom": "^18.2.18", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/parser": "^6.14.0", + "@vitejs/plugin-react": "^4.2.1", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "prettier": "^3.0.3", - "typescript": "^5.2.2", - "vite": "^4.5.0" + "prettier": "^3.1.1", + "typescript": "^5.3.3", + "vite": "^5.0.10" }, "packageManager": "yarn@3.3.1" } diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 9f29f8ba..2d6fcc86 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -17,6 +17,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "ahash" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +dependencies = [ + "getrandom 0.2.11", + "once_cell", + "version_check", +] + [[package]] name = "ahash" version = "0.8.6" @@ -114,26 +125,28 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.9.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" dependencies = [ "concurrent-queue", - "event-listener 2.5.3", + "event-listener 4.0.0", + "event-listener-strategy", "futures-core", + "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" +checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" dependencies = [ - "async-lock 2.8.0", + "async-lock 3.2.0", "async-task", "concurrent-queue", "fastrand 2.0.1", - "futures-lite 1.13.0", + "futures-lite 2.1.0", "slab", ] @@ -171,22 +184,21 @@ dependencies = [ [[package]] name = "async-io" -version = "2.2.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997" +checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" dependencies = [ - "async-lock 3.0.0", + "async-lock 3.2.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.0.1", + "futures-lite 2.1.0", "parking", - "polling 3.3.0", - "rustix 0.38.21", + "polling 3.3.1", + "rustix 0.38.28", "slab", "tracing", - "waker-fn", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -200,11 +212,11 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.0.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed" +checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ - "event-listener 3.0.1", + "event-listener 4.0.0", "event-listener-strategy", "pin-project-lite", ] @@ -220,9 +232,9 @@ dependencies = [ "async-signal", "blocking", "cfg-if", - "event-listener 3.0.1", + "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.21", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -234,7 +246,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -243,13 +255,13 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.2.0", + "async-io 2.2.2", "async-lock 2.8.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.21", + "rustix 0.38.28", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -257,9 +269,9 @@ dependencies = [ [[package]] name = "async-task" -version = "4.5.0" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" +checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" [[package]] name = "async-trait" @@ -269,7 +281,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -348,9 +360,9 @@ checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "bindgen" -version = "0.68.1" +version = "0.69.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" +checksum = "9ffcebc3849946a7170a05992aac39da343a90676ab392c51a4280981d6379c2" dependencies = [ "bitflags 2.4.1", "cexpr", @@ -363,7 +375,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -381,6 +393,18 @@ dependencies = [ "serde", ] +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "block" version = "0.1.6" @@ -398,20 +422,44 @@ dependencies = [ [[package]] name = "blocking" -version = "1.4.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ "async-channel", - "async-lock 2.8.0", + "async-lock 3.2.0", "async-task", "fastrand 2.0.1", "futures-io", - "futures-lite 1.13.0", + "futures-lite 2.1.0", "piper", "tracing", ] +[[package]] +name = "borsh" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d4d6dafc1a3bb54687538972158f07b2c948bc57d5890df22c0739098b3028" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4918709cc4dd777ad2b6303ed03cb37f3ca0ccede8c1b0d28ac6db8f4710e0" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.0", + "proc-macro2", + "quote", + "syn 2.0.41", + "syn_derive", +] + [[package]] name = "brotli" version = "3.4.0" @@ -435,9 +483,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" dependencies = [ "memchr", "regex-automata 0.4.3", @@ -460,6 +508,39 @@ dependencies = [ "utf8-width", ] +[[package]] +name = "byte-unit" +version = "5.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d405b41420a161b4e1dd5a52e3349f41b4dae9a39be02aff1d67fe53256430ac" +dependencies = [ + "rust_decimal", + "serde", + "utf8-width", +] + +[[package]] +name = "bytecheck" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "bytemuck" version = "1.14.0" @@ -513,8 +594,8 @@ checksum = "7b50b5a44d59a98c55a9eeb518f39bf7499ba19fd98ee7d22618687f3f10adbf" dependencies = [ "bitflags 2.4.1", "log", - "polling 3.3.0", - "rustix 0.38.21", + "polling 3.3.1", + "rustix 0.38.28", "slab", "thiserror", ] @@ -526,7 +607,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" dependencies = [ "calloop", - "rustix 0.38.21", + "rustix 0.38.28", "wayland-backend", "wayland-client", ] @@ -602,6 +683,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.31" @@ -717,9 +804,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ "crossbeam-utils", ] @@ -746,9 +833,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -756,9 +843,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core-graphics" @@ -788,9 +875,9 @@ dependencies = [ [[package]] name = "core-graphics-types" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -810,9 +897,9 @@ dependencies = [ [[package]] name = "coreaudio-sys" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8478e5bdad14dce236b9898ea002eabfa87cbe14f0aa538dbe3b6a4bec4332d" +checksum = "f3120ebb80a9de008e638ad833d4127d50ea3d3a960ea23ea69bc66d9358a028" dependencies = [ "bindgen", ] @@ -862,9 +949,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" dependencies = [ "cfg-if", "crossbeam-utils", @@ -872,9 +959,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -883,22 +970,21 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", "memoffset 0.9.0", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" dependencies = [ "cfg-if", ] @@ -937,17 +1023,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] name = "ctor" -version = "0.1.26" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" dependencies = [ "quote", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] @@ -977,7 +1063,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -988,7 +1074,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -999,15 +1085,15 @@ checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" [[package]] name = "data-encoding" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" dependencies = [ "powerfmt", "serde", @@ -1207,7 +1293,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1228,14 +1314,14 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] name = "env_logger" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" dependencies = [ "humantime", "is-terminal", @@ -1262,12 +1348,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1301,9 +1387,20 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "3.0.1" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1" +checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" dependencies = [ "concurrent-queue", "parking", @@ -1312,11 +1409,11 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 3.0.1", + "event-listener 4.0.0", "pin-project-lite", ] @@ -1366,14 +1463,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.22" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", - "windows-sys 0.48.0", + "redox_syscall", + "windows-sys 0.52.0", ] [[package]] @@ -1419,7 +1516,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1436,13 +1533,19 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futf" version = "0.1.5" @@ -1502,11 +1605,14 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb" +checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" dependencies = [ + "fastrand 2.0.1", "futures-core", + "futures-io", + "parking", "pin-project-lite", ] @@ -1518,7 +1624,7 @@ checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1702,9 +1808,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "gio" @@ -1764,7 +1870,7 @@ checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" dependencies = [ "anyhow", "heck 0.4.1", - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", @@ -1789,15 +1895,15 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" dependencies = [ "aho-corasick", "bstr", - "fnv", "log", - "regex", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", ] [[package]] @@ -1859,7 +1965,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" dependencies = [ "anyhow", - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", @@ -1868,9 +1974,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" dependencies = [ "bytes", "fnv", @@ -1878,7 +1984,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 1.9.3", + "indexmap 2.1.0", "slab", "tokio", "tokio-util", @@ -1900,6 +2006,9 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.7", +] [[package]] name = "hashbrown" @@ -1907,14 +2016,14 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash", + "ahash 0.8.6", ] [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "heck" @@ -1949,20 +2058,6 @@ version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f" -[[package]] -name = "html5ever" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" -dependencies = [ - "log", - "mac", - "markup5ever 0.10.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "html5ever" version = "0.26.0" @@ -1971,7 +2066,7 @@ checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" dependencies = [ "log", "mac", - "markup5ever 0.11.0", + "markup5ever", "proc-macro2", "quote", "syn 1.0.109", @@ -1979,20 +2074,20 @@ dependencies = [ [[package]] name = "http" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", - "itoa 1.0.9", + "itoa 1.0.10", ] [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -2025,9 +2120,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", @@ -2038,9 +2133,9 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.9", + "itoa 1.0.10", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.5", "tokio", "tower-service", "tracing", @@ -2101,9 +2196,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -2111,17 +2206,16 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" +checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060" dependencies = [ + "crossbeam-deque", "globset", - "lazy_static", "log", "memchr", - "regex", + "regex-automata 0.4.3", "same-file", - "thread_local", "walkdir", "winapi-util", ] @@ -2157,7 +2251,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.2", + "hashbrown 0.14.3", "serde", ] @@ -2172,9 +2266,9 @@ dependencies = [ [[package]] name = "infer" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3" +checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc" dependencies = [ "cfb", ] @@ -2232,15 +2326,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.21", + "rustix 0.38.28", "windows-sys 0.48.0", ] [[package]] name = "itertools" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" dependencies = [ "either", ] @@ -2253,9 +2347,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "javascriptcore-rs" @@ -2325,9 +2419,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -2344,18 +2438,6 @@ dependencies = [ "treediff", ] -[[package]] -name = "kuchiki" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" -dependencies = [ - "cssparser", - "html5ever 0.25.2", - "matches", - "selectors", -] - [[package]] name = "kuchikiki" version = "0.8.2" @@ -2363,7 +2445,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" dependencies = [ "cssparser", - "html5ever 0.26.0", + "html5ever", "indexmap 1.9.3", "matches", "selectors", @@ -2424,9 +2506,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.150" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libloading" @@ -2456,7 +2538,7 @@ checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" dependencies = [ "bitflags 2.4.1", "libc", - "redox_syscall 0.4.1", + "redox_syscall", ] [[package]] @@ -2476,9 +2558,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" @@ -2551,20 +2633,6 @@ dependencies = [ "libc", ] -[[package]] -name = "markup5ever" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" -dependencies = [ - "log", - "phf 0.8.0", - "phf_codegen 0.8.0", - "string_cache", - "string_cache_codegen", - "tendril", -] - [[package]] name = "markup5ever" version = "0.11.0" @@ -2602,9 +2670,9 @@ checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memmap2" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375" +checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" dependencies = [ "libc", ] @@ -2657,9 +2725,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -2791,9 +2859,9 @@ dependencies = [ [[package]] name = "notify-rust" -version = "4.9.0" +version = "4.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7b75c8958cb2eab3451538b32db8a7b74006abc33eb2e6a9a56d21e4775c2b" +checksum = "827c5edfa80235ded4ab3fe8e9dc619b4f866ef16fe9b1c6b8a7f8692c0f2226" dependencies = [ "log", "mac-notification-sys", @@ -2889,7 +2957,7 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", @@ -3009,9 +3077,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "open" @@ -3036,9 +3104,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.59" +version = "0.10.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33" +checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -3057,7 +3125,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3068,9 +3136,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.95" +version = "0.9.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9" +checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" dependencies = [ "cc", "libc", @@ -3170,7 +3238,7 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall", "smallvec", "windows-targets 0.48.5", ] @@ -3189,9 +3257,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "phf" @@ -3210,9 +3278,17 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" dependencies = [ - "phf_macros 0.10.0", "phf_shared 0.10.0", - "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros 0.11.2", + "phf_shared 0.11.2", ] [[package]] @@ -3255,6 +3331,16 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + [[package]] name = "phf_macros" version = "0.8.0" @@ -3271,16 +3357,15 @@ dependencies = [ [[package]] name = "phf_macros" -version = "0.10.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", + "phf_generator 0.11.2", + "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] @@ -3301,6 +3386,15 @@ dependencies = [ "siphasher", ] +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.3" @@ -3318,7 +3412,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3395,16 +3489,16 @@ dependencies = [ [[package]] name = "polling" -version = "3.3.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531" +checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.21", + "rustix 0.38.28", "tracing", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3435,6 +3529,15 @@ dependencies = [ "toml_edit 0.19.15", ] +[[package]] +name = "proc-macro-crate" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +dependencies = [ + "toml_edit 0.20.7", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -3467,13 +3570,33 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "quick-xml" version = "0.30.0" @@ -3501,6 +3624,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.7.3" @@ -3610,8 +3739,8 @@ dependencies = [ [[package]] name = "rdev" -version = "0.6.1" -source = "git+https://github.com/medzernik/rdev?branch=main#ed1aa7a233f39533b259559abb703032d9cfb271" +version = "0.6.2" +source = "git+https://github.com/medzernik/rdev?branch=main#61408560d84649e5d1dd0862d4311007c3d90013" dependencies = [ "cocoa 0.25.0", "core-foundation", @@ -3627,15 +3756,6 @@ dependencies = [ "x11", ] -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.4.1" @@ -3700,11 +3820,20 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +[[package]] +name = "rend" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd" +dependencies = [ + "bytecheck", +] + [[package]] name = "reqwest" -version = "0.11.22" +version = "0.11.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" dependencies = [ "base64 0.21.5", "bytes", @@ -3770,6 +3899,35 @@ version = "0.8.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8" +[[package]] +name = "rkyv" +version = "0.7.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "rodio" version = "0.17.3" @@ -3783,6 +3941,22 @@ dependencies = [ "symphonia", ] +[[package]] +name = "rust_decimal" +version = "1.33.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4" +dependencies = [ + "arrayvec", + "borsh", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -3820,15 +3994,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.11", - "windows-sys 0.48.0", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", ] [[package]] @@ -3839,9 +4013,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "safemem" @@ -3879,6 +4053,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "security-framework" version = "2.9.2" @@ -3933,22 +4113,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.192" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.192" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3957,7 +4137,7 @@ version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ - "itoa 1.0.9", + "itoa 1.0.10", "ryu", "serde", ] @@ -3970,7 +4150,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3989,7 +4169,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.9", + "itoa 1.0.10", "ryu", "serde", ] @@ -4020,7 +4200,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4117,6 +4297,12 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "siphasher" version = "0.3.11" @@ -4134,9 +4320,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "smithay-client-toolkit" @@ -4151,7 +4337,7 @@ dependencies = [ "libc", "log", "memmap2", - "rustix 0.38.21", + "rustix 0.38.28", "thiserror", "wayland-backend", "wayland-client", @@ -4338,15 +4524,27 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.41", +] + [[package]] name = "sys-locale" version = "0.2.4" @@ -4467,6 +4665,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tar" version = "0.4.40" @@ -4486,9 +4690,9 @@ checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" [[package]] name = "tauri" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bfe673cf125ef364d6f56b15e8ce7537d9ca7e4dae1cf6fbbdeed2e024db3d9" +checksum = "32d563b672acde8d0cc4c1b1f5b855976923f67e8d6fe1eba51df0211e197be2" dependencies = [ "anyhow", "base64 0.21.5", @@ -4592,9 +4796,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613740228de92d9196b795ac455091d3a5fbdac2654abb8bb07d010b62ab43af" +checksum = "acea6445eececebd72ed7720cfcca46eee3b5bad8eb408be8f7ef2e3f7411500" dependencies = [ "heck 0.4.1", "proc-macro2", @@ -4609,7 +4813,7 @@ name = "tauri-plugin-log" version = "0.0.0" source = "git+https://github.com/tauri-apps/plugins-workspace?branch=dev#dce0f02bc571128308c30278cde3233f341e6a50" dependencies = [ - "byte-unit", + "byte-unit 4.0.19", "fern", "log", "serde", @@ -4652,9 +4856,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8141d72b6b65f2008911e9ef5b98a68d1e3413b7a1464e8f85eb3673bb19a895" +checksum = "803a01101bc611ba03e13329951a1bde44287a54234189b9024b78619c1bc206" dependencies = [ "cocoa 0.24.1", "gtk", @@ -4672,22 +4876,22 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d55e185904a84a419308d523c2c6891d5e2dbcee740c4997eb42e75a7b0f46" +checksum = "a52165bb340e6f6a75f1f5eeeab1bb49f861c12abe3a176067d53642b5454986" dependencies = [ "brotli", "ctor", "dunce", "glob", "heck 0.4.1", - "html5ever 0.26.0", - "infer 0.12.0", + "html5ever", + "infer 0.13.0", "json-patch", "kuchikiki", "log", "memchr", - "phf 0.10.1", + "phf 0.11.2", "proc-macro2", "quote", "semver", @@ -4697,7 +4901,7 @@ dependencies = [ "thiserror", "url", "walkdir", - "windows 0.39.0", + "windows-version", ] [[package]] @@ -4728,8 +4932,8 @@ checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand 2.0.1", - "redox_syscall 0.4.1", - "rustix 0.38.21", + "redox_syscall", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -4746,9 +4950,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" dependencies = [ "winapi-util", ] @@ -4761,22 +4965,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4791,12 +4995,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" dependencies = [ "deranged", - "itoa 1.0.9", + "itoa 1.0.10", "libc", "num_threads", "powerfmt", @@ -4813,9 +5017,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" dependencies = [ "time-core", ] @@ -4837,9 +5041,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.33.0" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" dependencies = [ "backtrace", "bytes", @@ -4856,13 +5060,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4971,6 +5175,17 @@ dependencies = [ "winnow", ] +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + [[package]] name = "toml_edit" version = "0.21.0" @@ -5009,7 +5224,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -5024,9 +5239,9 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", "once_cell", @@ -5035,9 +5250,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", "nu-ansi-term", @@ -5062,9 +5277,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" @@ -5093,19 +5308,20 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "uds_windows" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ + "memoffset 0.9.0", "tempfile", "winapi", ] [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" @@ -5130,9 +5346,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -5148,15 +5364,15 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "utf8-width" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" [[package]] name = "uuid" -version = "1.5.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" dependencies = [ "getrandom 0.2.11", ] @@ -5256,9 +5472,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -5266,24 +5482,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" dependencies = [ "cfg-if", "js-sys", @@ -5293,9 +5509,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5303,22 +5519,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "wasm-streams" @@ -5431,9 +5647,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", @@ -5687,6 +5903,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -5717,12 +5942,36 @@ dependencies = [ "windows_x86_64_msvc 0.48.5", ] +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + [[package]] name = "windows-tokens" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" +[[package]] +name = "windows-version" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -5735,6 +5984,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.37.0" @@ -5759,6 +6014,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.37.0" @@ -5783,6 +6044,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.37.0" @@ -5807,6 +6074,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.37.0" @@ -5831,6 +6104,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -5843,6 +6122,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.37.0" @@ -5867,11 +6152,17 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" -version = "0.5.19" +version = "0.5.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" dependencies = [ "memchr", ] @@ -5938,7 +6229,7 @@ version = "1.0.2" dependencies = [ "anyhow", "auto-launch", - "byte-unit", + "byte-unit 5.1.2", "log", "serde", "serde_json", @@ -5953,9 +6244,9 @@ dependencies = [ [[package]] name = "wry" -version = "0.24.4" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ef04bdad49eba2e01f06e53688c8413bd6a87b0bc14b72284465cf96e3578e" +checksum = "6ad85d0e067359e409fcb88903c3eac817c392e5d638258abfb3da5ad8ba6fc4" dependencies = [ "base64 0.13.1", "block", @@ -5967,9 +6258,9 @@ dependencies = [ "gio", "glib", "gtk", - "html5ever 0.25.2", + "html5ever", "http", - "kuchiki", + "kuchikiki", "libc", "log", "objc", @@ -5989,6 +6280,15 @@ dependencies = [ "windows-implement", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "x11" version = "2.21.0" @@ -6043,21 +6343,20 @@ dependencies = [ [[package]] name = "xattr" -version = "1.0.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" +checksum = "a7dae5072fe1f8db8f8d29059189ac175196e410e40ba42d5d4684ae2f750995" dependencies = [ "libc", + "linux-raw-sys 0.4.12", + "rustix 0.38.28", ] [[package]] name = "xcursor" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7" -dependencies = [ - "nom", -] +checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" [[package]] name = "xdg-home" @@ -6122,7 +6421,7 @@ version = "3.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "regex", @@ -6143,22 +6442,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.25" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd369a67c0edfef15010f980c3cbe45d7f651deac2cd67ce097cd801de16557" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.25" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -6192,7 +6491,7 @@ version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 5c133d6b..0fad02b7 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -16,20 +16,20 @@ tauri-build = { version = "1.5", features = [] } serde_json = "1.0" serde = { version = "1.0", features = ["derive", "rc"] } tauri = { version = "1.5", features = ["app-hide", "app-show", "clipboard-read-text", "clipboard-write-text", "dialog-open", "icon-png", "os-all", "shell-open", "system-tray", "updater"] } -tokio = { version = "1.33", features = ["full"] } +tokio = { version = "1.35", features = ["full"] } tokio-serde = { version = "0.8", features = ["json"] } wooting-macro-backend = { path = "../wooting-macro-backend" } auto-launch = "0.5" log = "0.4" tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev", features= ["colored"] } -byte-unit = "4.0" -anyhow = "1.0.75" +byte-unit = "5.1" +anyhow = "1.0" [features] # by default Tauri runs in production mode # when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL default = ["custom-protocol"] -# this feature is used used for production builds where `devPath` points to the filesystem +# this feature is used for production builds where `devPath` points to the filesystem # DO NOT remove this custom-protocol = ["tauri/custom-protocol"] diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 40a4d0e6..a6856c8e 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -11,7 +11,7 @@ use std::env::current_exe; use std::str::FromStr; use std::time; -use byte_unit::{Byte, ByteUnit}; +use byte_unit::{Byte, Unit}; use tauri::{ CustomMenuItem, Manager, SystemTray, SystemTrayEvent, SystemTrayMenu, SystemTrayMenuItem, @@ -251,7 +251,7 @@ async fn main() { .debug(Color::Magenta) .trace(Color::White), ) - .max_file_size(Byte::from_unit(16_f64, ByteUnit::KiB).unwrap().into()) + .max_file_size(Byte::from_f64_with_unit(16_f64, Unit::KiB).unwrap().into()) .targets([ tauri_plugin_log::LogTarget::Folder( LogDirPath::file_name().expect("error getting log folder name"), diff --git a/src/components/macroview/rightPanel/editForms/OpenEventForm.tsx b/src/components/macroview/rightPanel/editForms/OpenEventForm.tsx index b0f420c7..37cf579e 100644 --- a/src/components/macroview/rightPanel/editForms/OpenEventForm.tsx +++ b/src/components/macroview/rightPanel/editForms/OpenEventForm.tsx @@ -1,7 +1,7 @@ import { Button, Divider, Text, Textarea, VStack } from '@chakra-ui/react' import { useCallback, useEffect, useState } from 'react' import { useMacroContext } from '../../../../contexts/macroContext' -import { open } from '@tauri-apps/api/dialog' +import { dialog } from '@tauri-apps/api' import { sysEventLookup } from '../../../../constants/SystemEventMap' import { SystemEventAction } from '../../../../types' @@ -67,7 +67,7 @@ export default function OpenEventForm({ const onButtonPress = useCallback( async (isDirectory: boolean) => { if (isDirectory) { - const dir = await open({ + const dir = await dialog.open({ directory: true, multiple: false, title: 'Select a directory to open' @@ -85,7 +85,7 @@ export default function OpenEventForm({ } updateElement(temp, selectedElementId) } else { - const file = await open({ + const file = await dialog.open({ multiple: false, title: 'Select a file to open' }) diff --git a/src/components/overview/LeftPanel.tsx b/src/components/overview/LeftPanel.tsx index 694c8de4..5e335128 100644 --- a/src/components/overview/LeftPanel.tsx +++ b/src/components/overview/LeftPanel.tsx @@ -39,21 +39,22 @@ export default function LeftPanel({ onOpenSettingsModal }: Props) { const [isMacroOutputEnabled, setIsMacroOutputEnabled] = useState(true) const onNewCollectionButtonPress = useCallback(() => { - const randomCategory = - data.categories[ - Math.floor(Math.random() * (data.categories.length - 3) + 1) // The plus 1 is to avoid selecting the frequent category. The - 3 is to avoid selecting the flags and symbols categories - ] - let randomEmoji = - randomCategory.emojis[ - Math.floor(Math.random() * randomCategory.emojis.length) - ] - if (randomEmoji.includes('flag') || randomEmoji.includes('symbols')) { - randomEmoji = 'smile' - } + // const randomCategory = + // data.categories[ + // Math.floor(Math.random() * (data.categories.length - 3) + 1) // The plus 1 is to avoid selecting the frequent category. The - 3 is to avoid selecting the flags and symbols categories + // ] + // let randomEmoji = + // randomCategory.emojis[ + // Math.floor(Math.random() * randomCategory.emojis.length) + // ] + // if (randomEmoji.includes('flag') || randomEmoji.includes('symbols')) { + // randomEmoji = 'smile' + // } onCollectionAdd({ active: true, - icon: `:${randomEmoji}:`, + icon: '📁', + // icon: `:${randomEmoji}:`, macros: [], name: `Collection ${collections.length + 1}` }) diff --git a/src/components/settings/SettingsLeftPanel.tsx b/src/components/settings/SettingsLeftPanel.tsx index 173092da..54eeb228 100644 --- a/src/components/settings/SettingsLeftPanel.tsx +++ b/src/components/settings/SettingsLeftPanel.tsx @@ -10,13 +10,12 @@ import { openDiscordLink, openGithubLink } from '../../constants/externalLinks' import { SettingsCategory } from '../../constants/enums' import { SettingsGroup } from '../../constants/SettingsMap' import SettingsButton from './SettingsButton' -import { type, version } from '@tauri-apps/api/os' -import { getVersion } from '@tauri-apps/api/app' -import { useEffect, useState } from 'react' +import { SetStateAction, useEffect, useState } from 'react' import { DiscordIcon, GithubIcon } from '../icons' import useScrollbarStyles from '../../hooks/useScrollbarStyles' import useBorderColour from '../../hooks/useBorderColour' -import {error} from "tauri-plugin-log" +import { error } from 'tauri-plugin-log' +import { app, os } from '@tauri-apps/api' interface Props { pageIndex: number @@ -42,14 +41,14 @@ export default function SettingsLeftPanel({ useEffect(() => { const getOSType = async () => { - const os = await type() - const osVersion = await version() - switch (os) { + const opersys = await os.type() + const osVersion = await os.version() + switch (opersys) { case 'Linux': - setOsText(`${os} (${osVersion})`) + setOsText(`${opersys} (${osVersion})`) break case 'Darwin': - setOsText(`${os} (${osVersion})`) + setOsText(`${opersys} (${osVersion})`) break case 'Windows_NT': setOsText(`Windows (${osVersion})`) @@ -60,8 +59,11 @@ export default function SettingsLeftPanel({ } } - getVersion() - .then((version) => setVersionText(version)) + app + .getVersion() + .then((version: SetStateAction) => + setVersionText(version) + ) .catch(error) getOSType().catch((err) => error(err)) diff --git a/src/constants/externalLinks.ts b/src/constants/externalLinks.ts index 5ea27b32..0c1ceb87 100644 --- a/src/constants/externalLinks.ts +++ b/src/constants/externalLinks.ts @@ -1,8 +1,8 @@ -import { open } from '@tauri-apps/api/shell' +import { shell } from '@tauri-apps/api' export const openDiscordLink = () => { - open('https://discord.gg/wooting') + shell.open('https://discord.gg/wooting') } export const openGithubLink = () => { - open('https://github.com/WootingKb/wooting-macros') + shell.open('https://github.com/WootingKb/wooting-macros') } diff --git a/src/constants/utils.ts b/src/constants/utils.ts index ca59f73d..d4f7e531 100644 --- a/src/constants/utils.ts +++ b/src/constants/utils.ts @@ -1,4 +1,4 @@ -import { invoke } from '@tauri-apps/api/tauri' +import { invoke } from '@tauri-apps/api' import { HIDCategory, MouseButton } from './enums' import { ActionEventType, diff --git a/src/contexts/applicationContext.tsx b/src/contexts/applicationContext.tsx index db56572f..4d578dc0 100644 --- a/src/contexts/applicationContext.tsx +++ b/src/contexts/applicationContext.tsx @@ -1,4 +1,3 @@ -import { invoke } from '@tauri-apps/api/tauri' import { ReactNode, useState, @@ -6,13 +5,15 @@ import { useMemo, useContext, createContext, - useCallback + useCallback, + SetStateAction } from 'react' import { useToast } from '@chakra-ui/react' import { ViewState } from '../constants/enums' import { AppState, Collection, MacroData, CurrentSelection } from '../types' import { updateBackendConfig } from '../constants/utils' -import { error } from "tauri-plugin-log" +import { error } from 'tauri-plugin-log' +import { invoke } from '@tauri-apps/api' interface ApplicationProviderProps { children: ReactNode @@ -30,7 +31,7 @@ function useApplicationContext() { return context } -function ApplicationProvider({children}: ApplicationProviderProps) { +function ApplicationProvider({ children }: ApplicationProviderProps) { const [viewState, setViewState] = useState(ViewState.Overview) const [initComplete, setInitComplete] = useState(false) const [collections, setCollections] = useState([]) @@ -42,11 +43,11 @@ function ApplicationProvider({children}: ApplicationProviderProps) { useEffect(() => { invoke('get_macros') - .then((res) => { + .then((res: { data: SetStateAction }) => { setCollections(res.data) setInitComplete(true) }) - .catch((e) => { + .catch((e: string) => { error(e) toast({ title: 'Error loading macros', @@ -65,8 +66,7 @@ function ApplicationProvider({children}: ApplicationProviderProps) { error(e) toast({ title: 'Error updating macro data', - description: - `Unable to update macro data: ${e}. + description: `Unable to update macro data: ${e}. Your system action filepath or website URL may be incorrect. Alternatively, please contact us on Discord.`, status: 'error', duration: 10000, @@ -84,7 +84,7 @@ function ApplicationProvider({children}: ApplicationProviderProps) { const changeSelectedCollectionIndex = useCallback( (index: number) => { - setSelection({collectionIndex: index, macroIndex: undefined}) + setSelection({ collectionIndex: index, macroIndex: undefined }) }, [setSelection] ) @@ -112,7 +112,7 @@ function ApplicationProvider({children}: ApplicationProviderProps) { setCollections((collections) => { newIndex = collections.length if (itemToAdd.name === '') { - itemToAdd = {...itemToAdd, name: `Collection ${newIndex + 1}`} + itemToAdd = { ...itemToAdd, name: `Collection ${newIndex + 1}` } } return [...collections, itemToAdd] }) diff --git a/src/hooks/useRecordingSequence.ts b/src/hooks/useRecordingSequence.ts index 178477be..e13b5df4 100644 --- a/src/hooks/useRecordingSequence.ts +++ b/src/hooks/useRecordingSequence.ts @@ -1,10 +1,10 @@ -import { invoke } from '@tauri-apps/api/tauri' import { useCallback, useEffect, useState } from 'react' import { KeyType } from '../constants/enums' import { webCodeHIDLookup } from '../constants/HIDmap' import { webButtonLookup } from '../constants/MouseMap' import { Keypress, MousePressAction } from '../types' -import {error} from "tauri-plugin-log" +import { error } from 'tauri-plugin-log' +import { invoke } from '@tauri-apps/api' export default function useRecordingSequence( onItemChanged: ( @@ -134,18 +134,22 @@ export default function useRecordingSequence( window.addEventListener('mousedown', addMousepress, false) window.addEventListener('keyup', addKeypress, false) window.addEventListener('mouseup', addMousepress, false) - invoke('control_grabbing', { frontendBool: false }).catch((e) => { - error(e) - }) + invoke('control_grabbing', { frontendBool: false }).catch( + (e: string) => { + error(e) + } + ) return () => { window.removeEventListener('keydown', addKeypress, false) window.removeEventListener('mousedown', addMousepress, false) window.removeEventListener('keyup', addKeypress, false) window.removeEventListener('mouseup', addMousepress, false) - invoke('control_grabbing', { frontendBool: true }).catch((e) => { - error(e) - }) + invoke('control_grabbing', { frontendBool: true }).catch( + (e: string) => { + error(e) + } + ) } }, [recording, addKeypress, addMousepress]) diff --git a/src/hooks/useRecordingTrigger.ts b/src/hooks/useRecordingTrigger.ts index a0ad4d40..41dee3da 100644 --- a/src/hooks/useRecordingTrigger.ts +++ b/src/hooks/useRecordingTrigger.ts @@ -1,5 +1,4 @@ import { useToast } from '@chakra-ui/react' -import { invoke } from '@tauri-apps/api/tauri' import { useCallback, useEffect, useState } from 'react' import { MouseButton } from '../constants/enums' import { webCodeHIDLookup } from '../constants/HIDmap' @@ -8,7 +7,8 @@ import { checkIfModifierKey, checkIfKeyShouldContinueTriggerRecording } from '../constants/utils' -import {error} from "tauri-plugin-log" +import { error } from 'tauri-plugin-log' +import { invoke } from '@tauri-apps/api' export default function useRecordingTrigger( initialItems: MouseButton | number[] diff --git a/tsconfig.json b/tsconfig.json index 3d0a51a8..bc8d7147 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,7 @@ "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "react-jsx" + "jsx": "react-jsx", }, "include": ["src"], "references": [{ "path": "./tsconfig.node.json" }] diff --git a/wooting-macro-backend/Cargo.lock b/wooting-macro-backend/Cargo.lock index fa539b80..8771d50f 100644 --- a/wooting-macro-backend/Cargo.lock +++ b/wooting-macro-backend/Cargo.lock @@ -114,26 +114,28 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.9.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" dependencies = [ "concurrent-queue", - "event-listener 2.5.3", + "event-listener 4.0.0", + "event-listener-strategy", "futures-core", + "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" +checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" dependencies = [ - "async-lock 2.8.0", + "async-lock 3.2.0", "async-task", "concurrent-queue", "fastrand 2.0.1", - "futures-lite 1.13.0", + "futures-lite 2.1.0", "slab", ] @@ -171,22 +173,21 @@ dependencies = [ [[package]] name = "async-io" -version = "2.2.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997" +checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" dependencies = [ - "async-lock 3.0.0", + "async-lock 3.2.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.0.1", + "futures-lite 2.1.0", "parking", - "polling 3.3.0", - "rustix 0.38.21", + "polling 3.3.1", + "rustix 0.38.28", "slab", "tracing", - "waker-fn", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -200,11 +201,11 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.0.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed" +checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ - "event-listener 3.0.1", + "event-listener 4.0.0", "event-listener-strategy", "pin-project-lite", ] @@ -220,9 +221,9 @@ dependencies = [ "async-signal", "blocking", "cfg-if", - "event-listener 3.0.1", + "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.21", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -234,7 +235,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -243,13 +244,13 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.2.0", + "async-io 2.2.2", "async-lock 2.8.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.21", + "rustix 0.38.28", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -257,9 +258,9 @@ dependencies = [ [[package]] name = "async-task" -version = "4.5.0" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" +checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" [[package]] name = "async-trait" @@ -269,7 +270,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -337,9 +338,9 @@ checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "bindgen" -version = "0.68.1" +version = "0.69.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" +checksum = "9ffcebc3849946a7170a05992aac39da343a90676ab392c51a4280981d6379c2" dependencies = [ "bitflags 2.4.1", "cexpr", @@ -352,7 +353,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -387,16 +388,16 @@ dependencies = [ [[package]] name = "blocking" -version = "1.4.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ "async-channel", - "async-lock 2.8.0", + "async-lock 3.2.0", "async-task", "fastrand 2.0.1", "futures-io", - "futures-lite 1.13.0", + "futures-lite 2.1.0", "piper", "tracing", ] @@ -424,9 +425,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" dependencies = [ "memchr", "regex-automata 0.4.3", @@ -492,8 +493,8 @@ checksum = "7b50b5a44d59a98c55a9eeb518f39bf7499ba19fd98ee7d22618687f3f10adbf" dependencies = [ "bitflags 2.4.1", "log", - "polling 3.3.0", - "rustix 0.38.21", + "polling 3.3.1", + "rustix 0.38.28", "slab", "thiserror", ] @@ -505,7 +506,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" dependencies = [ "calloop", - "rustix 0.38.21", + "rustix 0.38.28", "wayland-backend", "wayland-client", ] @@ -675,9 +676,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ "crossbeam-utils", ] @@ -704,9 +705,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -714,9 +715,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core-graphics" @@ -746,9 +747,9 @@ dependencies = [ [[package]] name = "core-graphics-types" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -768,9 +769,9 @@ dependencies = [ [[package]] name = "coreaudio-sys" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8478e5bdad14dce236b9898ea002eabfa87cbe14f0aa538dbe3b6a4bec4332d" +checksum = "f3120ebb80a9de008e638ad833d4127d50ea3d3a960ea23ea69bc66d9358a028" dependencies = [ "bindgen", ] @@ -820,9 +821,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" dependencies = [ "cfg-if", "crossbeam-utils", @@ -830,9 +831,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -841,22 +842,21 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", "memoffset 0.9.0", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" dependencies = [ "cfg-if", ] @@ -895,17 +895,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] name = "ctor" -version = "0.1.26" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" dependencies = [ "quote", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] @@ -935,7 +935,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -946,7 +946,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -957,15 +957,15 @@ checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" [[package]] name = "data-encoding" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" dependencies = [ "powerfmt", "serde", @@ -1132,7 +1132,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1153,14 +1153,14 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] name = "env_logger" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" dependencies = [ "humantime", "is-terminal", @@ -1187,12 +1187,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1226,9 +1226,20 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "3.0.1" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1" +checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" dependencies = [ "concurrent-queue", "parking", @@ -1237,11 +1248,11 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 3.0.1", + "event-listener 4.0.0", "pin-project-lite", ] @@ -1281,14 +1292,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.22" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", - "windows-sys 0.48.0", + "redox_syscall", + "windows-sys 0.52.0", ] [[package]] @@ -1334,7 +1345,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1351,9 +1362,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -1417,11 +1428,14 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb" +checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" dependencies = [ + "fastrand 2.0.1", "futures-core", + "futures-io", + "parking", "pin-project-lite", ] @@ -1433,7 +1447,7 @@ checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1617,9 +1631,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "gio" @@ -1704,15 +1718,15 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" dependencies = [ "aho-corasick", "bstr", - "fnv", "log", - "regex", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", ] [[package]] @@ -1783,9 +1797,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" dependencies = [ "bytes", "fnv", @@ -1793,7 +1807,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 1.9.3", + "indexmap 2.1.0", "slab", "tokio", "tokio-util", @@ -1827,9 +1841,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "heck" @@ -1864,20 +1878,6 @@ version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f" -[[package]] -name = "html5ever" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" -dependencies = [ - "log", - "mac", - "markup5ever 0.10.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "html5ever" version = "0.26.0" @@ -1886,7 +1886,7 @@ checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" dependencies = [ "log", "mac", - "markup5ever 0.11.0", + "markup5ever", "proc-macro2", "quote", "syn 1.0.109", @@ -1894,20 +1894,20 @@ dependencies = [ [[package]] name = "http" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", - "itoa 1.0.9", + "itoa 1.0.10", ] [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -1940,9 +1940,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", @@ -1953,9 +1953,9 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.9", + "itoa 1.0.10", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.5", "tokio", "tower-service", "tracing", @@ -2016,9 +2016,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -2026,17 +2026,16 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" +checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060" dependencies = [ + "crossbeam-deque", "globset", - "lazy_static", "log", "memchr", - "regex", + "regex-automata 0.4.3", "same-file", - "thread_local", "walkdir", "winapi-util", ] @@ -2072,7 +2071,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.2", + "hashbrown 0.14.3", "serde", ] @@ -2087,9 +2086,9 @@ dependencies = [ [[package]] name = "infer" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3" +checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc" dependencies = [ "cfb", ] @@ -2147,15 +2146,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.21", + "rustix 0.38.28", "windows-sys 0.48.0", ] [[package]] name = "itertools" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" dependencies = [ "either", ] @@ -2168,9 +2167,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "javascriptcore-rs" @@ -2240,9 +2239,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -2259,18 +2258,6 @@ dependencies = [ "treediff", ] -[[package]] -name = "kuchiki" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" -dependencies = [ - "cssparser", - "html5ever 0.25.2", - "matches", - "selectors", -] - [[package]] name = "kuchikiki" version = "0.8.2" @@ -2278,7 +2265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" dependencies = [ "cssparser", - "html5ever 0.26.0", + "html5ever", "indexmap 1.9.3", "matches", "selectors", @@ -2339,9 +2326,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.150" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libloading" @@ -2371,7 +2358,7 @@ checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" dependencies = [ "bitflags 2.4.1", "libc", - "redox_syscall 0.4.1", + "redox_syscall", ] [[package]] @@ -2391,9 +2378,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" @@ -2463,20 +2450,6 @@ dependencies = [ "libc", ] -[[package]] -name = "markup5ever" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" -dependencies = [ - "log", - "phf 0.8.0", - "phf_codegen 0.8.0", - "string_cache", - "string_cache_codegen", - "tendril", -] - [[package]] name = "markup5ever" version = "0.11.0" @@ -2514,9 +2487,9 @@ checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memmap2" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375" +checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" dependencies = [ "libc", ] @@ -2563,9 +2536,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -2697,9 +2670,9 @@ dependencies = [ [[package]] name = "notify-rust" -version = "4.9.0" +version = "4.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7b75c8958cb2eab3451538b32db8a7b74006abc33eb2e6a9a56d21e4775c2b" +checksum = "827c5edfa80235ded4ab3fe8e9dc619b4f866ef16fe9b1c6b8a7f8692c0f2226" dependencies = [ "log", "mac-notification-sys", @@ -2906,9 +2879,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "open" @@ -2933,9 +2906,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.59" +version = "0.10.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33" +checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -2954,7 +2927,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -2965,9 +2938,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.95" +version = "0.9.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9" +checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" dependencies = [ "cc", "libc", @@ -3067,7 +3040,7 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall", "smallvec", "windows-targets 0.48.5", ] @@ -3086,9 +3059,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "phf" @@ -3107,9 +3080,17 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" dependencies = [ - "phf_macros 0.10.0", "phf_shared 0.10.0", - "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros 0.11.2", + "phf_shared 0.11.2", ] [[package]] @@ -3152,6 +3133,16 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + [[package]] name = "phf_macros" version = "0.8.0" @@ -3168,16 +3159,15 @@ dependencies = [ [[package]] name = "phf_macros" -version = "0.10.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", + "phf_generator 0.11.2", + "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] @@ -3198,6 +3188,15 @@ dependencies = [ "siphasher", ] +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.3" @@ -3215,7 +3214,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3292,16 +3291,16 @@ dependencies = [ [[package]] name = "polling" -version = "3.3.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531" +checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.21", + "rustix 0.38.28", "tracing", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3364,9 +3363,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -3507,8 +3506,8 @@ dependencies = [ [[package]] name = "rdev" -version = "0.6.0" -source = "git+https://github.com/medzernik/rdev?branch=main#7f96bd1afcbc4a32fe4461a3442f395ebb30bb7d" +version = "0.6.2" +source = "git+https://github.com/medzernik/rdev?branch=main#61408560d84649e5d1dd0862d4311007c3d90013" dependencies = [ "cocoa 0.25.0", "core-foundation", @@ -3524,15 +3523,6 @@ dependencies = [ "x11", ] -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.4.1" @@ -3599,9 +3589,9 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" -version = "0.11.22" +version = "0.11.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" dependencies = [ "base64 0.21.5", "bytes", @@ -3717,15 +3707,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.11", - "windows-sys 0.48.0", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", ] [[package]] @@ -3736,9 +3726,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "safemem" @@ -3830,22 +3820,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.192" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.192" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3854,7 +3844,7 @@ version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ - "itoa 1.0.9", + "itoa 1.0.10", "ryu", "serde", ] @@ -3867,7 +3857,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3886,7 +3876,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.9", + "itoa 1.0.10", "ryu", "serde", ] @@ -3917,7 +3907,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4031,9 +4021,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "smithay-client-toolkit" @@ -4048,7 +4038,7 @@ dependencies = [ "libc", "log", "memmap2", - "rustix 0.38.21", + "rustix 0.38.28", "thiserror", "wayland-backend", "wayland-client", @@ -4235,9 +4225,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" dependencies = [ "proc-macro2", "quote", @@ -4383,9 +4373,9 @@ checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" [[package]] name = "tauri" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bfe673cf125ef364d6f56b15e8ce7537d9ca7e4dae1cf6fbbdeed2e024db3d9" +checksum = "32d563b672acde8d0cc4c1b1f5b855976923f67e8d6fe1eba51df0211e197be2" dependencies = [ "anyhow", "bytes", @@ -4466,9 +4456,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613740228de92d9196b795ac455091d3a5fbdac2654abb8bb07d010b62ab43af" +checksum = "acea6445eececebd72ed7720cfcca46eee3b5bad8eb408be8f7ef2e3f7411500" dependencies = [ "heck 0.4.1", "proc-macro2", @@ -4501,9 +4491,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8141d72b6b65f2008911e9ef5b98a68d1e3413b7a1464e8f85eb3673bb19a895" +checksum = "803a01101bc611ba03e13329951a1bde44287a54234189b9024b78619c1bc206" dependencies = [ "cocoa 0.24.1", "gtk", @@ -4521,22 +4511,22 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d55e185904a84a419308d523c2c6891d5e2dbcee740c4997eb42e75a7b0f46" +checksum = "a52165bb340e6f6a75f1f5eeeab1bb49f861c12abe3a176067d53642b5454986" dependencies = [ "brotli", "ctor", "dunce", "glob", "heck 0.4.1", - "html5ever 0.26.0", - "infer 0.12.0", + "html5ever", + "infer 0.13.0", "json-patch", "kuchikiki", "log", "memchr", - "phf 0.10.1", + "phf 0.11.2", "proc-macro2", "quote", "semver", @@ -4546,7 +4536,7 @@ dependencies = [ "thiserror", "url", "walkdir", - "windows 0.39.0", + "windows-version", ] [[package]] @@ -4567,8 +4557,8 @@ checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand 2.0.1", - "redox_syscall 0.4.1", - "rustix 0.38.21", + "redox_syscall", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -4585,9 +4575,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" dependencies = [ "winapi-util", ] @@ -4600,22 +4590,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4630,12 +4620,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" dependencies = [ "deranged", - "itoa 1.0.9", + "itoa 1.0.10", "powerfmt", "serde", "time-core", @@ -4650,9 +4640,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" dependencies = [ "time-core", ] @@ -4674,9 +4664,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.33.0" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" dependencies = [ "backtrace", "bytes", @@ -4693,13 +4683,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4832,7 +4822,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -4847,9 +4837,9 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", "once_cell", @@ -4858,9 +4848,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", "nu-ansi-term", @@ -4885,9 +4875,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" @@ -4916,19 +4906,20 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "uds_windows" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ + "memoffset 0.9.0", "tempfile", "winapi", ] [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" @@ -4953,9 +4944,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -4971,9 +4962,9 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "uuid" -version = "1.5.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" dependencies = [ "getrandom 0.2.11", ] @@ -5047,9 +5038,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -5057,24 +5048,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" dependencies = [ "cfg-if", "js-sys", @@ -5084,9 +5075,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5094,22 +5085,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "wasm-streams" @@ -5222,9 +5213,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", @@ -5478,6 +5469,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -5508,12 +5508,36 @@ dependencies = [ "windows_x86_64_msvc 0.48.5", ] +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + [[package]] name = "windows-tokens" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" +[[package]] +name = "windows-version" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -5526,6 +5550,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.37.0" @@ -5550,6 +5580,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.37.0" @@ -5574,6 +5610,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.37.0" @@ -5598,6 +5640,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.37.0" @@ -5622,6 +5670,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -5634,6 +5688,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.37.0" @@ -5658,11 +5718,17 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" -version = "0.5.19" +version = "0.5.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" dependencies = [ "memchr", ] @@ -5706,9 +5772,9 @@ dependencies = [ [[package]] name = "wry" -version = "0.24.4" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ef04bdad49eba2e01f06e53688c8413bd6a87b0bc14b72284465cf96e3578e" +checksum = "6ad85d0e067359e409fcb88903c3eac817c392e5d638258abfb3da5ad8ba6fc4" dependencies = [ "base64 0.13.1", "block", @@ -5720,9 +5786,9 @@ dependencies = [ "gio", "glib", "gtk", - "html5ever 0.25.2", + "html5ever", "http", - "kuchiki", + "kuchikiki", "libc", "log", "objc", @@ -5796,21 +5862,20 @@ dependencies = [ [[package]] name = "xattr" -version = "1.0.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" +checksum = "a7dae5072fe1f8db8f8d29059189ac175196e410e40ba42d5d4684ae2f750995" dependencies = [ "libc", + "linux-raw-sys 0.4.12", + "rustix 0.38.28", ] [[package]] name = "xcursor" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7" -dependencies = [ - "nom", -] +checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" [[package]] name = "xdg-home" @@ -5896,22 +5961,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.25" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd369a67c0edfef15010f980c3cbe45d7f651deac2cd67ce097cd801de16557" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.25" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] diff --git a/wooting-macro-backend/Cargo.toml b/wooting-macro-backend/Cargo.toml index db170ba6..cb46963f 100644 --- a/wooting-macro-backend/Cargo.toml +++ b/wooting-macro-backend/Cargo.toml @@ -15,7 +15,7 @@ tauri = { version = "1.5", features = ["api-all", "icon-png", "system-tray"] } rdev = { git = "https://github.com/medzernik/rdev", branch = "main", features = ["evdev-rs", "serialize", "serde", "epoll", "inotify", "unstable_grab"] } halfbrown = { version = "0.2", features = ["serde"] } lazy_static = "1.4" -tokio = { version = "1.33", features = ["full"] } +tokio = { version = "1.35", features = ["full"] } tokio-serde = { version = "0.8", features = ["json"] } opener = "0.6" obws = { version = "0.11" } @@ -25,12 +25,12 @@ copypasta = { version = "0.10", features = ["smithay-clipboard"] } serde_repr = "0.1" fastrand = "2.0" dirs = "5.0" -itertools = "0.11" +itertools = "0.12" anyhow = "1.0" log = "0.4" env_logger = "0.10" rayon = "1.8" -url = "2.4.1" +url = "2.5" [profile.release] lto = true diff --git a/wooting-macro-backend/src/hid_table.rs b/wooting-macro-backend/src/hid_table.rs index bf8c4aa3..812289ea 100644 --- a/wooting-macro-backend/src/hid_table.rs +++ b/wooting-macro-backend/src/hid_table.rs @@ -76,7 +76,6 @@ pub static ref SCANCODE_TO_RDEV: HashMap = { scancode.insert(0x05, Key::KeyB); //US_B scancode.insert(0x06, Key::KeyC); //US_C scancode.insert(0x07, Key::KeyD); //US_D - scancode.insert(0x08, Key::KeyE); //US_E scancode.insert(0x09, Key::KeyF); //US_F scancode.insert(0x0a, Key::KeyG); //US_G @@ -85,7 +84,6 @@ pub static ref SCANCODE_TO_RDEV: HashMap = { scancode.insert(0x0d, Key::KeyJ); //US_J scancode.insert(0x0e, Key::KeyK); //US_K scancode.insert(0x0f, Key::KeyL); //US_L - scancode.insert(0x10, Key::KeyM); //US_M scancode.insert(0x11, Key::KeyN); //US_N scancode.insert(0x12, Key::KeyO); //US_O @@ -94,16 +92,15 @@ pub static ref SCANCODE_TO_RDEV: HashMap = { scancode.insert(0x15, Key::KeyR); //US_R scancode.insert(0x16, Key::KeyS); //US_S scancode.insert(0x17, Key::KeyT); //US_T - scancode.insert(0x18, Key::KeyU); //US_U scancode.insert(0x19, Key::KeyV); //US_V scancode.insert(0x1a, Key::KeyW); //US_W scancode.insert(0x1b, Key::KeyX); //US_X scancode.insert(0x1c, Key::KeyY); //US_Y scancode.insert(0x1d, Key::KeyZ); //US_Z + scancode.insert(0x1e, Key::Num1); //DIGIT1 scancode.insert(0x1f, Key::Num2); //DIGIT2 - scancode.insert(0x20, Key::Num3); //DIGIT3 scancode.insert(0x21, Key::Num4); //DIGIT4 scancode.insert(0x22, Key::Num5); //DIGIT5 @@ -132,9 +129,9 @@ pub static ref SCANCODE_TO_RDEV: HashMap = { scancode.insert(0x35, Key::BackQuote); //BACKQUOTE scancode.insert(0x36, Key::Comma); //COMMA scancode.insert(0x37, Key::Dot); //PERIOD - scancode.insert(0x38, Key::Slash); //SLASH scancode.insert(0x39, Key::CapsLock); //CAPS_LOCK + scancode.insert(0x3a, Key::F1); //F1 scancode.insert(0x3b, Key::F2); //F2 scancode.insert(0x3c, Key::F3); //F3 @@ -148,51 +145,22 @@ pub static ref SCANCODE_TO_RDEV: HashMap = { scancode.insert(0x43, Key::F10); //F10 scancode.insert(0x44, Key::F11); //F11 scancode.insert(0x45, Key::F12); //F12 - - - #[cfg(target_os = "windows")] - { - scancode.insert(0x7f, Key::Unknown(173)); //VOLUME_MUTE - scancode.insert(0x81, Key::Unknown(174)); //VOLUME_DOWN - scancode.insert(0x80, Key::Unknown(175)); //VOLUME_UP - - scancode.insert(0x68, Key::Unknown(124)); //F13 - scancode.insert(0x69, Key::Unknown(125)); //F14 - scancode.insert(0x6a, Key::Unknown(126)); //F15 - scancode.insert(0x6b, Key::Unknown(127)); //F16 - - scancode.insert(0x6c, Key::Unknown(128)); //F17 - scancode.insert(0x6d, Key::Unknown(129)); //F18 - scancode.insert(0x6e, Key::Unknown(130)); //F19 - scancode.insert(0x6f, Key::Unknown(131)); //F20 - - scancode.insert(0x70, Key::Unknown(132)); //F21 - scancode.insert(0x71, Key::Unknown(133)); //F22 - scancode.insert(0x72, Key::Unknown(134)); //F23 - scancode.insert(0x73, Key::Unknown(135)); //F24 - } - - #[cfg(target_os = "linux")] - { - scancode.insert(0x7f, Key::Unknown(121)); //VOLUME_MUTE - scancode.insert(0x81, Key::Unknown(122)); //VOLUME_DOWN - scancode.insert(0x80, Key::Unknown(123)); //VOLUME_UP - - scancode.insert(0x68, Key::Unknown(191)); //F13 - scancode.insert(0x69, Key::Unknown(192)); //F14 - scancode.insert(0x6a, Key::Unknown(193)); //F15 - scancode.insert(0x6b, Key::Unknown(194)); //F16 - - scancode.insert(0x6c, Key::Unknown(195)); //F17 - scancode.insert(0x6d, Key::Unknown(196)); //F18 - scancode.insert(0x6e, Key::Unknown(197)); //F19 - scancode.insert(0x6f, Key::Unknown(198)); //F20 - - scancode.insert(0x70, Key::Unknown(199)); //F21 - scancode.insert(0x71, Key::Unknown(200)); //F22 - scancode.insert(0x72, Key::Unknown(201)); //F23 - scancode.insert(0x73, Key::Unknown(202)); //F24 - } + scancode.insert(0x68, Key::F13); //F13 + scancode.insert(0x69, Key::F14); //F14 + scancode.insert(0x6a, Key::F15); //F15 + scancode.insert(0x6b, Key::F16); //F16 + scancode.insert(0x6c, Key::F17); //F17 + scancode.insert(0x6d, Key::F18); //F18 + scancode.insert(0x6e, Key::F19); //F19 + scancode.insert(0x6f, Key::F20); //F20 + scancode.insert(0x70, Key::F21); //F21 + scancode.insert(0x71, Key::F22); //F22 + scancode.insert(0x72, Key::F23); //F23 + scancode.insert(0x73, Key::F24); //F24 + + scancode.insert(0x7f, Key::VolumeMute); //VOLUME_MUTE + scancode.insert(0x81, Key::VolumeDown); //VOLUME_DOWN + scancode.insert(0x80, Key::VolumeUp); //VOLUME_UP scancode.insert(0x46, Key::PrintScreen); //PRINT_SCREEN scancode.insert(0x47, Key::ScrollLock); //SCROLL_LOCK @@ -283,7 +251,6 @@ pub static ref SCANCODE_TO_HID: HashMap = { scancode.insert(Key::KeyB, 0x05); //US_B scancode.insert(Key::KeyC, 0x06); //US_C scancode.insert(Key::KeyD, 0x07); //US_D - scancode.insert(Key::KeyE, 0x08); //US_E scancode.insert(Key::KeyF, 0x09); //US_F scancode.insert(Key::KeyG, 0x0a); //US_G @@ -292,7 +259,6 @@ pub static ref SCANCODE_TO_HID: HashMap = { scancode.insert(Key::KeyJ, 0x0d); //US_J scancode.insert(Key::KeyK, 0x0e); //US_K scancode.insert(Key::KeyL, 0x0f); //US_L - scancode.insert(Key::KeyM, 0x10); //US_M scancode.insert(Key::KeyN, 0x11); //US_N scancode.insert(Key::KeyO, 0x12); //US_O @@ -301,16 +267,15 @@ pub static ref SCANCODE_TO_HID: HashMap = { scancode.insert(Key::KeyR, 0x15); //US_R scancode.insert(Key::KeyS, 0x16); //US_S scancode.insert(Key::KeyT, 0x17); //US_T - scancode.insert(Key::KeyU, 0x18); //US_U scancode.insert(Key::KeyV, 0x19); //US_V scancode.insert(Key::KeyW, 0x1a); //US_W scancode.insert(Key::KeyX, 0x1b); //US_X scancode.insert(Key::KeyY, 0x1c); //US_Y scancode.insert(Key::KeyZ, 0x1d); //US_Z + scancode.insert(Key::Num1, 0x1e); //DIGIT1 scancode.insert(Key::Num2, 0x1f); //DIGIT2 - scancode.insert(Key::Num3, 0x20); //DIGIT3 scancode.insert(Key::Num4, 0x21); //DIGIT4 scancode.insert(Key::Num5, 0x22); //DIGIT5 @@ -339,66 +304,37 @@ pub static ref SCANCODE_TO_HID: HashMap = { scancode.insert(Key::BackQuote, 0x35); //BACKQUOTE scancode.insert(Key::Comma, 0x36); //COMMA scancode.insert(Key::Dot, 0x37); //PERIOD - - scancode.insert( Key::Slash, 0x38); //SLASH - scancode.insert( Key::CapsLock, 0x39); //CAPS_LOCK - scancode.insert( Key::F1, 0x3a); //F1 - scancode.insert( Key::F2, 0x3b); //F2 - scancode.insert( Key::F3, 0x3c); //F3 - scancode.insert( Key::F4, 0x3d); //F4 - scancode.insert( Key::F5, 0x3e); //F5 - scancode.insert( Key::F6, 0x3f); //F6 - + scancode.insert(Key::Slash, 0x38); //SLASH + scancode.insert(Key::CapsLock, 0x39); //CAPS_LOCK + + scancode.insert(Key::F1, 0x3a); //F1 + scancode.insert(Key::F2, 0x3b); //F2 + scancode.insert(Key::F3, 0x3c); //F3 + scancode.insert(Key::F4, 0x3d); //F4 + scancode.insert(Key::F5, 0x3e); //F5 + scancode.insert(Key::F6, 0x3f); //F6 scancode.insert(Key::F7, 0x40); //F7 scancode.insert(Key::F8, 0x41); //F8 scancode.insert(Key::F9, 0x42); //F9 scancode.insert(Key::F10, 0x43); //F10 scancode.insert(Key::F11, 0x44); //F11 scancode.insert(Key::F12, 0x45); //F12 - - #[cfg(target_os = "windows")] - { - scancode.insert(Key::Unknown(173), 0x7f); //VOLUME_MUTE - scancode.insert(Key::Unknown(174), 0x81); //VOLUME_DOWN - scancode.insert(Key::Unknown(175), 0x80); //VOLUME_UP - - scancode.insert(Key::Unknown(124), 0x68); //F13 - scancode.insert(Key::Unknown(125), 0x69); //F14 - scancode.insert(Key::Unknown(126), 0x6a); //F15 - scancode.insert(Key::Unknown(127), 0x6b); //F16 - - scancode.insert(Key::Unknown(128), 0x6c); //F17 - scancode.insert(Key::Unknown(129), 0x6d); //F18 - scancode.insert(Key::Unknown(130), 0x6e); //F19 - scancode.insert(Key::Unknown(131), 0x6f); //F20 - - scancode.insert(Key::Unknown(132), 0x70); //F21 - scancode.insert(Key::Unknown(133), 0x71); //F22 - scancode.insert(Key::Unknown(134), 0x72); //F23 - scancode.insert(Key::Unknown(135), 0x73); //F24 - } - - #[cfg(target_os = "linux")] - { - scancode.insert(Key::Unknown(121), 0x7f); //VOLUME_MUTE - scancode.insert(Key::Unknown(122), 0x81); //VOLUME_DOWN - scancode.insert(Key::Unknown(123), 0x80); //VOLUME_UP - - scancode.insert(Key::Unknown(191), 0x68); //F13 - scancode.insert(Key::Unknown(192), 0x69); //F14 - scancode.insert(Key::Unknown(193), 0x6a); //F15 - scancode.insert(Key::Unknown(194), 0x6b); //F16 - - scancode.insert(Key::Unknown(195), 0x6c); //F17 - scancode.insert(Key::Unknown(196), 0x6d); //F18 - scancode.insert(Key::Unknown(197), 0x6e); //F19 - scancode.insert(Key::Unknown(198), 0x6f); //F20 - - scancode.insert(Key::Unknown(199), 0x70); //F21 - scancode.insert(Key::Unknown(200), 0x71); //F22 - scancode.insert(Key::Unknown(201), 0x72); //F23 - scancode.insert(Key::Unknown(202), 0x73); //F24 - } + scancode.insert(Key::F13, 0x68); //F13 + scancode.insert(Key::F14, 0x69); //F14 + scancode.insert(Key::F15, 0x6a); //F15 + scancode.insert(Key::F16, 0x6b); //F16 + scancode.insert(Key::F17, 0x6c); //F17 + scancode.insert(Key::F18, 0x6d); //F18 + scancode.insert(Key::F19, 0x6e); //F19 + scancode.insert(Key::F20, 0x6f); //F20 + scancode.insert(Key::F21, 0x70); //F21 + scancode.insert(Key::F22, 0x71); //F22 + scancode.insert(Key::F23, 0x72); //F23 + scancode.insert(Key::F24, 0x73); //F24 + + scancode.insert(Key::VolumeMute, 0x7f); //VOLUME_MUTE + scancode.insert(Key::VolumeDown, 0x81); //VOLUME_DOWN + scancode.insert(Key::VolumeUp, 0x80); //VOLUME_UP scancode.insert(Key::PrintScreen, 0x46); //PRINT_SCREEN scancode.insert(Key::ScrollLock, 0x47); //SCROLL_LOCK diff --git a/yarn.lock b/yarn.lock index 6f655200..675eab0f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,58 +41,68 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.9": - version: 7.22.20 - resolution: "@babel/compat-data@npm:7.22.20" - checksum: efedd1d18878c10fde95e4d82b1236a9aba41395ef798cbb651f58dbf5632dbff475736c507b8d13d4c8f44809d41c0eb2ef0d694283af9ba5dd8339b6dab451 +"@babel/code-frame@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/code-frame@npm:7.23.5" + dependencies: + "@babel/highlight": ^7.23.4 + chalk: ^2.4.2 + checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/compat-data@npm:7.23.5" + checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 languageName: node linkType: hard -"@babel/core@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/core@npm:7.23.2" +"@babel/core@npm:^7.23.5": + version: 7.23.6 + resolution: "@babel/core@npm:7.23.6" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.22.13 - "@babel/generator": ^7.23.0 - "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-module-transforms": ^7.23.0 - "@babel/helpers": ^7.23.2 - "@babel/parser": ^7.23.0 + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.6 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helpers": ^7.23.6 + "@babel/parser": ^7.23.6 "@babel/template": ^7.22.15 - "@babel/traverse": ^7.23.2 - "@babel/types": ^7.23.0 + "@babel/traverse": ^7.23.6 + "@babel/types": ^7.23.6 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 003897718ded16f3b75632d63cd49486bf67ff206cc7ebd1a10d49e2456f8d45740910d5ec7e42e3faf0deec7a2e96b1a02e766d19a67a8309053f0d4e57c0fe + checksum: 4bddd1b80394a64b2ee33eeb216e8a2a49ad3d74f0ca9ba678c84a37f4502b2540662d72530d78228a2a349fda837fa852eea5cd3ae28465d1188acc6055868e languageName: node linkType: hard -"@babel/generator@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/generator@npm:7.23.0" +"@babel/generator@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/generator@npm:7.23.6" dependencies: - "@babel/types": ^7.23.0 + "@babel/types": ^7.23.6 "@jridgewell/gen-mapping": ^0.3.2 "@jridgewell/trace-mapping": ^0.3.17 jsesc: ^2.5.1 - checksum: 8efe24adad34300f1f8ea2add420b28171a646edc70f2a1b3e1683842f23b8b7ffa7e35ef0119294e1901f45bfea5b3dc70abe1f10a1917ccdfb41bed69be5f1 + checksum: 1a1a1c4eac210f174cd108d479464d053930a812798e09fee069377de39a893422df5b5b146199ead7239ae6d3a04697b45fc9ac6e38e0f6b76374390f91fc6c languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-compilation-targets@npm:7.22.15" +"@babel/helper-compilation-targets@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-validator-option": ^7.22.15 - browserslist: ^4.21.9 + "@babel/compat-data": ^7.23.5 + "@babel/helper-validator-option": ^7.23.5 + browserslist: ^4.22.2 lru-cache: ^5.1.1 semver: ^6.3.1 - checksum: ce85196769e091ae54dd39e4a80c2a9df1793da8588e335c383d536d54f06baf648d0a08fc873044f226398c4ded15c4ae9120ee18e7dfd7c639a68e3cdc9980 + checksum: c630b98d4527ac8fe2c58d9a06e785dfb2b73ec71b7c4f2ddf90f814b5f75b547f3c015f110a010fd31f76e3864daaf09f3adcd2f6acdbfb18a8de3a48717590 languageName: node linkType: hard @@ -140,9 +150,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-module-transforms@npm:7.23.0" +"@babel/helper-module-transforms@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/helper-module-transforms@npm:7.23.3" dependencies: "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-module-imports": ^7.22.15 @@ -151,7 +161,7 @@ __metadata: "@babel/helper-validator-identifier": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0 - checksum: 6e2afffb058cf3f8ce92f5116f710dda4341c81cfcd872f9a0197ea594f7ce0ab3cb940b0590af2fe99e60d2e5448bfba6bca8156ed70a2ed4be2adc8586c891 + checksum: 5d0895cfba0e16ae16f3aa92fee108517023ad89a855289c4eb1d46f7aef4519adf8e6f971e1d55ac20c5461610e17213f1144097a8f932e768a9132e2278d71 languageName: node linkType: hard @@ -194,6 +204,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/helper-string-parser@npm:7.23.4" + checksum: c0641144cf1a7e7dc93f3d5f16d5327465b6cf5d036b48be61ecba41e1eece161b48f46b7f960951b67f8c3533ce506b16dece576baef4d8b3b49f8c65410f90 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": version: 7.19.1 resolution: "@babel/helper-validator-identifier@npm:7.19.1" @@ -208,21 +225,21 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-validator-option@npm:7.22.15" - checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d +"@babel/helper-validator-option@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-validator-option@npm:7.23.5" + checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e languageName: node linkType: hard -"@babel/helpers@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/helpers@npm:7.23.2" +"@babel/helpers@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helpers@npm:7.23.6" dependencies: "@babel/template": ^7.22.15 - "@babel/traverse": ^7.23.2 - "@babel/types": ^7.23.0 - checksum: aaf4828df75ec460eaa70e5c9f66e6dadc28dae3728ddb7f6c13187dbf38030e142194b83d81aa8a31bbc35a5529a5d7d3f3cf59d5d0b595f5dd7f9d8f1ced8e + "@babel/traverse": ^7.23.6 + "@babel/types": ^7.23.6 + checksum: c5ba62497e1d717161d107c4b3de727565c68b6b9f50f59d6298e613afeca8895799b227c256e06d362e565aec34e26fb5c675b9c3d25055c52b945a21c21e21 languageName: node linkType: hard @@ -248,7 +265,18 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": +"@babel/highlight@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/highlight@npm:7.23.4" + dependencies: + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.22.15": version: 7.23.0 resolution: "@babel/parser@npm:7.23.0" bin: @@ -266,25 +294,34 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.22.5" +"@babel/parser@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/parser@npm:7.23.6" + bin: + parser: ./bin/babel-parser.js + checksum: 140801c43731a6c41fd193f5c02bc71fd647a0360ca616b23d2db8be4b9739b9f951a03fc7c2db4f9b9214f4b27c1074db0f18bc3fa653783082d5af7c8860d5 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-self@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 671eebfabd14a0c7d6ae805fff7e289dfdb7ba984bb100ea2ef6dad1d6a665ebbb09199ab2e64fca7bc78bd0fdc80ca897b07996cf215fafc32c67bc564309af + checksum: 882bf56bc932d015c2d83214133939ddcf342e5bcafa21f1a93b19f2e052145115e1e0351730897fd66e5f67cad7875b8a8d81ceb12b6e2a886ad0102cb4eb1f languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.22.5" +"@babel/plugin-transform-react-jsx-source@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4ca2bd62ca14f8bbdcda9139f3f799e1c1c1bae504b67c1ca9bca142c53d81926d1a2b811f66a625f20999b2d352131053d886601f1ba3c1e9378c104d884277 + checksum: 92287fb797e522d99bdc77eaa573ce79ff0ad9f1cf4e7df374645e28e51dce0adad129f6f075430b129b5bac8dad843f65021970e12e992d6d6671f0d65bb1e0 languageName: node linkType: hard @@ -308,21 +345,21 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/traverse@npm:7.23.2" +"@babel/traverse@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/traverse@npm:7.23.6" dependencies: - "@babel/code-frame": ^7.22.13 - "@babel/generator": ^7.23.0 + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.6 "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-function-name": ^7.23.0 "@babel/helper-hoist-variables": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.23.0 - "@babel/types": ^7.23.0 - debug: ^4.1.0 + "@babel/parser": ^7.23.6 + "@babel/types": ^7.23.6 + debug: ^4.3.1 globals: ^11.1.0 - checksum: 26a1eea0dde41ab99dde8b9773a013a0dc50324e5110a049f5d634e721ff08afffd54940b3974a20308d7952085ac769689369e9127dea655f868c0f6e1ab35d + checksum: 48f2eac0e86b6cb60dab13a5ea6a26ba45c450262fccdffc334c01089e75935f7546be195e260e97f6e43cea419862eda095018531a2718fef8189153d479f88 languageName: node linkType: hard @@ -348,6 +385,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/types@npm:7.23.6" + dependencies: + "@babel/helper-string-parser": ^7.23.4 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 68187dbec0d637f79bc96263ac95ec8b06d424396678e7e225492be866414ce28ebc918a75354d4c28659be6efe30020b4f0f6df81cc418a2d30645b690a8de0 + languageName: node + linkType: hard + "@chakra-ui/accordion@npm:2.3.1": version: 2.3.1 resolution: "@chakra-ui/accordion@npm:2.3.1" @@ -367,9 +415,9 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/alert@npm:2.2.1": - version: 2.2.1 - resolution: "@chakra-ui/alert@npm:2.2.1" +"@chakra-ui/alert@npm:2.2.2": + version: 2.2.2 + resolution: "@chakra-ui/alert@npm:2.2.2" dependencies: "@chakra-ui/icon": 3.2.0 "@chakra-ui/react-context": 2.1.0 @@ -378,14 +426,14 @@ __metadata: peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 23a48b4bf8b8ca73bf2b94a4b18bc3d9e27709fe9d8968fb00ea6b0890c3d52503ebfbab91c8a7820045924b4fb37c414a50fb1bc1a9fe51a51263f775bf4f47 + checksum: f13a7b3c128447b915d8481105bb994fd382edb45273f0c59733c02cec4d891561db8462d5b4b0148f405ec3228b7e78dddb1dc03c2905dc4a0ec21e2c915822 languageName: node linkType: hard -"@chakra-ui/anatomy@npm:2.2.1": - version: 2.2.1 - resolution: "@chakra-ui/anatomy@npm:2.2.1" - checksum: 61f529cf47166a9a8de76411e2e64f533c2b7d3ca36c59d628e9dc532470f899b45c09c9da5d43048fe30564a2258309301c6266f4c1b828ff865373812d3481 +"@chakra-ui/anatomy@npm:2.2.2": + version: 2.2.2 + resolution: "@chakra-ui/anatomy@npm:2.2.2" + checksum: 0f760fae4a145305ef20bbff119bfbc92a54a477cd0916450dc4f88923e00856b582392ff35cfad93ee7cc9ab59a60fecbc9dd8bab9287bdd9cbe6d87031bce1 languageName: node linkType: hard @@ -454,11 +502,11 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/checkbox@npm:2.3.1": - version: 2.3.1 - resolution: "@chakra-ui/checkbox@npm:2.3.1" +"@chakra-ui/checkbox@npm:2.3.2": + version: 2.3.2 + resolution: "@chakra-ui/checkbox@npm:2.3.2" dependencies: - "@chakra-ui/form-control": 2.1.1 + "@chakra-ui/form-control": 2.2.0 "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 "@chakra-ui/react-use-callback-ref": 2.1.0 @@ -472,7 +520,7 @@ __metadata: peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 26f14892b10df284102b9614216be25aa81925ca8307b20083157af5f3339247f220fb14963570120ca51b26d0ff6de1c7d41cf6d47ed81f026429d645f2a8d8 + checksum: b3dcf8b8e5530fd51df2b761a1721c554f01aa7d3e02fed6d8e12697715c73f6d42c9f80d116f4fc7b757f82f89bea876f1bc0c59cd4d64480c3f7536b0208ac languageName: node linkType: hard @@ -602,9 +650,9 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/form-control@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/form-control@npm:2.1.1" +"@chakra-ui/form-control@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/form-control@npm:2.2.0" dependencies: "@chakra-ui/icon": 3.2.0 "@chakra-ui/react-context": 2.1.0 @@ -614,7 +662,7 @@ __metadata: peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 4b0ad7a597f1e1858e279cf2daa07d81b5246d67adda86f6fec3e289bbfba5d174fb240614d0395067322396ffbbad6529a53a2cd4468f29dcdd5ab7f3d56a8c + checksum: 3ac04664c4a063c83329a51f2ece019c866d5d08cf2c896beb29643205d258d74a9bed8072d00d37ff236b799b0a870b37cba29e295305fbce4b457906e7c025 languageName: node linkType: hard @@ -669,11 +717,11 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/input@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/input@npm:2.1.1" +"@chakra-ui/input@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/input@npm:2.1.2" dependencies: - "@chakra-ui/form-control": 2.1.1 + "@chakra-ui/form-control": 2.2.0 "@chakra-ui/object-utils": 2.1.0 "@chakra-ui/react-children-utils": 2.0.6 "@chakra-ui/react-context": 2.1.0 @@ -681,7 +729,7 @@ __metadata: peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 539413039aadc8cf0594351978b9ada796d9c6be18fa852509a5f390a2bf3f83645ce1f6b8b6772d77b3c71e3879c9bcab8542c04f61acee12cc1262d26760e2 + checksum: 0db226c07d0b4c726632036d08dada467c7676e3b4fe2b0881d8885f8b6903563d20d106c9052d60e1a56b67f498e30155fd47e4efe2dbd35cefdee427c740d8 languageName: node linkType: hard @@ -782,12 +830,12 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/number-input@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/number-input@npm:2.1.1" +"@chakra-ui/number-input@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/number-input@npm:2.1.2" dependencies: "@chakra-ui/counter": 2.1.0 - "@chakra-ui/form-control": 2.1.1 + "@chakra-ui/form-control": 2.2.0 "@chakra-ui/icon": 3.2.0 "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 @@ -801,7 +849,7 @@ __metadata: peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: ed8fa2f5d71e31f87025724865b1da8b70a216104bcd04d354b141d2349bc9b5c5d15f7a600f432903b8f8b61e51ed22bdb308cc7cb78de6699fe0e10643bf0d + checksum: fcce1dedfb50a0246dc2d87e96b0faa472e43c47ae9c9821bd6bf94457737d954024ecbf2dc9cf05437169cf12c84cb3af59733d8e38dc5df5295931b9573a26 languageName: node linkType: hard @@ -897,29 +945,29 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/provider@npm:2.4.1": - version: 2.4.1 - resolution: "@chakra-ui/provider@npm:2.4.1" +"@chakra-ui/provider@npm:2.4.2": + version: 2.4.2 + resolution: "@chakra-ui/provider@npm:2.4.2" dependencies: "@chakra-ui/css-reset": 2.3.0 "@chakra-ui/portal": 2.1.0 "@chakra-ui/react-env": 3.1.0 - "@chakra-ui/system": 2.6.1 + "@chakra-ui/system": 2.6.2 "@chakra-ui/utils": 2.0.15 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 react: ">=18" react-dom: ">=18" - checksum: 0acbd0afb52f8f79dc800babf7e75270886e446b2fb891e4ca780429b7a75921f9a02818172d2068e88270e930072768fbbe1a19db3fccec1e79bb4751771240 + checksum: 8ecb657ca2c15ba975e01b1f127f774a10f7ea8eed032cec84e0c82e223eb66dce6834da8f6c8f0ab8aa3cde1867c1e10e77bb4cb6488f1e009ca97bc4d9be6f languageName: node linkType: hard -"@chakra-ui/radio@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/radio@npm:2.1.1" +"@chakra-ui/radio@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/radio@npm:2.1.2" dependencies: - "@chakra-ui/form-control": 2.1.1 + "@chakra-ui/form-control": 2.2.0 "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 "@chakra-ui/react-use-merge-refs": 2.1.0 @@ -928,7 +976,7 @@ __metadata: peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 946adad1d03b66eb73a72d5e8af4196869c118f3baec19be5269d3258e500a15573b48035e543a4b5f67414ea65279ee4af68438daa8b2ac2f503dcecc909294 + checksum: 44b99b830bd3b5e5e0e2332c2c38908abd2740fd0dc695fcd899a06f5f76cfed318f85dce66d9eb12a982daf4797a1945eb2653d1ca1ac3bc34295dce7ab147c languageName: node linkType: hard @@ -1162,60 +1210,60 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/react@npm:^2.8.1": - version: 2.8.1 - resolution: "@chakra-ui/react@npm:2.8.1" +"@chakra-ui/react@npm:^2.8.2": + version: 2.8.2 + resolution: "@chakra-ui/react@npm:2.8.2" dependencies: "@chakra-ui/accordion": 2.3.1 - "@chakra-ui/alert": 2.2.1 + "@chakra-ui/alert": 2.2.2 "@chakra-ui/avatar": 2.3.0 "@chakra-ui/breadcrumb": 2.2.0 "@chakra-ui/button": 2.1.0 "@chakra-ui/card": 2.2.0 - "@chakra-ui/checkbox": 2.3.1 + "@chakra-ui/checkbox": 2.3.2 "@chakra-ui/close-button": 2.1.1 "@chakra-ui/control-box": 2.1.0 "@chakra-ui/counter": 2.1.0 "@chakra-ui/css-reset": 2.3.0 "@chakra-ui/editable": 3.1.0 "@chakra-ui/focus-lock": 2.1.0 - "@chakra-ui/form-control": 2.1.1 + "@chakra-ui/form-control": 2.2.0 "@chakra-ui/hooks": 2.2.1 "@chakra-ui/icon": 3.2.0 "@chakra-ui/image": 2.1.0 - "@chakra-ui/input": 2.1.1 + "@chakra-ui/input": 2.1.2 "@chakra-ui/layout": 2.3.1 "@chakra-ui/live-region": 2.1.0 "@chakra-ui/media-query": 3.3.0 "@chakra-ui/menu": 2.2.1 "@chakra-ui/modal": 2.3.1 - "@chakra-ui/number-input": 2.1.1 + "@chakra-ui/number-input": 2.1.2 "@chakra-ui/pin-input": 2.1.0 "@chakra-ui/popover": 2.2.1 "@chakra-ui/popper": 3.1.0 "@chakra-ui/portal": 2.1.0 "@chakra-ui/progress": 2.2.0 - "@chakra-ui/provider": 2.4.1 - "@chakra-ui/radio": 2.1.1 + "@chakra-ui/provider": 2.4.2 + "@chakra-ui/radio": 2.1.2 "@chakra-ui/react-env": 3.1.0 - "@chakra-ui/select": 2.1.1 + "@chakra-ui/select": 2.1.2 "@chakra-ui/skeleton": 2.1.0 "@chakra-ui/skip-nav": 2.1.0 "@chakra-ui/slider": 2.1.0 "@chakra-ui/spinner": 2.1.0 "@chakra-ui/stat": 2.1.1 "@chakra-ui/stepper": 2.3.1 - "@chakra-ui/styled-system": 2.9.1 - "@chakra-ui/switch": 2.1.1 - "@chakra-ui/system": 2.6.1 + "@chakra-ui/styled-system": 2.9.2 + "@chakra-ui/switch": 2.1.2 + "@chakra-ui/system": 2.6.2 "@chakra-ui/table": 2.1.0 "@chakra-ui/tabs": 3.0.0 "@chakra-ui/tag": 3.1.1 - "@chakra-ui/textarea": 2.1.1 - "@chakra-ui/theme": 3.3.0 - "@chakra-ui/theme-utils": 2.0.20 - "@chakra-ui/toast": 7.0.1 - "@chakra-ui/tooltip": 2.3.0 + "@chakra-ui/textarea": 2.1.2 + "@chakra-ui/theme": 3.3.1 + "@chakra-ui/theme-utils": 2.0.21 + "@chakra-ui/toast": 7.0.2 + "@chakra-ui/tooltip": 2.3.1 "@chakra-ui/transition": 2.1.0 "@chakra-ui/utils": 2.0.15 "@chakra-ui/visually-hidden": 2.2.0 @@ -1225,20 +1273,20 @@ __metadata: framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: e15028e1a19b7d0ed20c20bc033ce623ad33f229400b2640991af4c24baa0c2e1fafaeea2788b5ab4e9cc4a084482476d18abe44ad895d9899dfa1ff1e5cc6ed + checksum: f7af6ec5f248e7995030a4f61c6f815bef7bb9fbebd652a4f2eff9b313db007124e8f636727a50f4d40f6f4550249c5920bb47f024cc34a3e97286a02666ea98 languageName: node linkType: hard -"@chakra-ui/select@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/select@npm:2.1.1" +"@chakra-ui/select@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/select@npm:2.1.2" dependencies: - "@chakra-ui/form-control": 2.1.1 + "@chakra-ui/form-control": 2.2.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: c8c2aa4c02d6a17b2bf85a82513ebb52c8948859919a7d81552f89d8c49b2219a0617a30910b459d521e3a37fc60f15f10dcdfa4586a8d0140bdfd5d84baf395 + checksum: d98ea14cc9146bfad976c5f230970adf7012251c6895d8e0f24ad36ae478351717cc99cc12f1e3ce8b1b314b6712a5481d9e2a9364bb7cd0f05d55d06a27bf32 languageName: node linkType: hard @@ -1334,47 +1382,47 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/styled-system@npm:2.9.1": - version: 2.9.1 - resolution: "@chakra-ui/styled-system@npm:2.9.1" +"@chakra-ui/styled-system@npm:2.9.2": + version: 2.9.2 + resolution: "@chakra-ui/styled-system@npm:2.9.2" dependencies: "@chakra-ui/shared-utils": 2.0.5 - csstype: ^3.0.11 + csstype: ^3.1.2 lodash.mergewith: 4.6.2 - checksum: 23ee15b4b49e3981e3ff28f040f410715e9abc1957d6808a6d3d625acdb2223201f3a89f714813da36988e11b921adcc5f842ec3ec992fffebfb89edee4dac4e + checksum: 05202a86f1d8c6f37b5a95a56d7aed6b24fe12ac17f54690d46fcc7715e5e78e34a2aa0a15dc83e26396c4d7bc8188e761ddc2938e65cd782b11576a66a73519 languageName: node linkType: hard -"@chakra-ui/switch@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/switch@npm:2.1.1" +"@chakra-ui/switch@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/switch@npm:2.1.2" dependencies: - "@chakra-ui/checkbox": 2.3.1 + "@chakra-ui/checkbox": 2.3.2 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: c499e1121c828c1acf1ef5832d0ddb5e775d8fc26e13e8b2322fd789f6145cfd6f3a3740101ae6103f86fe9d12bea0467bac90b397681072481d784b73b1535a + checksum: 3a4e61b2e6215468e685651b7cfc118d93570210aa0b3529f2aa9eea69be3935e1b00eeb0306050edef4840f6a8920d72ff5353ffb815ef65d7d720f7b33fe82 languageName: node linkType: hard -"@chakra-ui/system@npm:2.6.1, @chakra-ui/system@npm:^2.6.1": - version: 2.6.1 - resolution: "@chakra-ui/system@npm:2.6.1" +"@chakra-ui/system@npm:2.6.2, @chakra-ui/system@npm:^2.6.2": + version: 2.6.2 + resolution: "@chakra-ui/system@npm:2.6.2" dependencies: "@chakra-ui/color-mode": 2.2.0 "@chakra-ui/object-utils": 2.1.0 "@chakra-ui/react-utils": 2.0.12 - "@chakra-ui/styled-system": 2.9.1 - "@chakra-ui/theme-utils": 2.0.20 + "@chakra-ui/styled-system": 2.9.2 + "@chakra-ui/theme-utils": 2.0.21 "@chakra-ui/utils": 2.0.15 react-fast-compare: 3.2.2 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 react: ">=18" - checksum: 638812588ce10e5966837ee66465a18936030267701dbac675374086cb574e5b618f9dd1f9ceea2a8f1d48c1aea1f286f848f4d41452423a88bc24b2a5ce60e1 + checksum: 45ac01d0d9adb9391ec5ece3ad1ef7cc09e73720c0222df02f5a45a37bb120cfbf994b15c08b72e7018a866d9475c5c57f61638774d8d7c5c0c40da8714a347c languageName: node linkType: hard @@ -1424,82 +1472,82 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/textarea@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/textarea@npm:2.1.1" +"@chakra-ui/textarea@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/textarea@npm:2.1.2" dependencies: - "@chakra-ui/form-control": 2.1.1 + "@chakra-ui/form-control": 2.2.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 07f9067fe027da882be00715a45ea93504c84b2ca991031ef0a196636b85e747413d6bb28620414b877ce935fd71ded774f4fc64ca060064f7acf504394393eb + checksum: 35d483cf1d5e87dea1157624129bff651b6595be85ea25797465c1b44ccae617db81cacfb3f35ecefe2db0700a06710db77397ddfdbfec9157a1e920da5f6739 languageName: node linkType: hard -"@chakra-ui/theme-tools@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/theme-tools@npm:2.1.1" +"@chakra-ui/theme-tools@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/theme-tools@npm:2.1.2" dependencies: - "@chakra-ui/anatomy": 2.2.1 + "@chakra-ui/anatomy": 2.2.2 "@chakra-ui/shared-utils": 2.0.5 color2k: ^2.0.2 peerDependencies: "@chakra-ui/styled-system": ">=2.0.0" - checksum: c038686d489401395f551298096c66236fe204a943fd859565b2804ec2a448241245032e702297dfc6c3d4e7fc1945e2998f8350eace1c4ab2ac23cd7688863f + checksum: aa628824a9485d7bc28b468f7395b1ebfd2fee88e656b9d9626f4521c0f9b28bba656db1f5b74c34ae7ce2dc6d25d1789b3e227dd1fd2d36c230f8a97330e529 languageName: node linkType: hard -"@chakra-ui/theme-utils@npm:2.0.20": - version: 2.0.20 - resolution: "@chakra-ui/theme-utils@npm:2.0.20" +"@chakra-ui/theme-utils@npm:2.0.21": + version: 2.0.21 + resolution: "@chakra-ui/theme-utils@npm:2.0.21" dependencies: "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/styled-system": 2.9.1 - "@chakra-ui/theme": 3.3.0 + "@chakra-ui/styled-system": 2.9.2 + "@chakra-ui/theme": 3.3.1 lodash.mergewith: 4.6.2 - checksum: be8bd98609d95d64eb5db2f54dbf26f2113342f724b31899455be71a46de4d8751327c2055735a2ec8021ada55a7575f7063df18b55f9393e880db3d1376e242 + checksum: d43f15d2c264cb96cfee0acf64681308763d27940b42f6de76eb8f297623dd4236c80ccf845b06851ca15f1c53a7ca9af69dce1c6d6467bb17612d1c60629197 languageName: node linkType: hard -"@chakra-ui/theme@npm:3.3.0": - version: 3.3.0 - resolution: "@chakra-ui/theme@npm:3.3.0" +"@chakra-ui/theme@npm:3.3.1": + version: 3.3.1 + resolution: "@chakra-ui/theme@npm:3.3.1" dependencies: - "@chakra-ui/anatomy": 2.2.1 + "@chakra-ui/anatomy": 2.2.2 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/theme-tools": 2.1.1 + "@chakra-ui/theme-tools": 2.1.2 peerDependencies: "@chakra-ui/styled-system": ">=2.8.0" - checksum: 6648d760e47fdc95d10cfa85f943e1ab1206be652f0db77c864e95e938b8ee13a012a53e1941b22fd81c12cc2c27504d64c06682daf141267b86ec3c7f4c165b + checksum: 0232cb4a5674dd7252b7070ecc890dee9fc4fe51527005aa47009342edcf8f13fef7f3b8c70b74c0b73ba86cdeabe892b2ab8469cecfc19ae3350a66bccb43eb languageName: node linkType: hard -"@chakra-ui/toast@npm:7.0.1": - version: 7.0.1 - resolution: "@chakra-ui/toast@npm:7.0.1" +"@chakra-ui/toast@npm:7.0.2": + version: 7.0.2 + resolution: "@chakra-ui/toast@npm:7.0.2" dependencies: - "@chakra-ui/alert": 2.2.1 + "@chakra-ui/alert": 2.2.2 "@chakra-ui/close-button": 2.1.1 "@chakra-ui/portal": 2.1.0 "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-use-timeout": 2.1.0 "@chakra-ui/react-use-update-effect": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/styled-system": 2.9.1 - "@chakra-ui/theme": 3.3.0 + "@chakra-ui/styled-system": 2.9.2 + "@chakra-ui/theme": 3.3.1 peerDependencies: - "@chakra-ui/system": 2.6.1 + "@chakra-ui/system": 2.6.2 framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: 21df2923492de633f81085b8aa22b421c1f5b2f3c6bf2d3280dc04c2f4211f44aaf1e5c3b9aa4367827ba33b74ffc777823ecdbeddb7940389e7d9da0bfb37d1 + checksum: 5e996a53b82628c90e11054d900ab4c714bb6b1a9b74198fbbfc49692175278fc482820578090d0eb27180d3772937ed9fb54ba8f3acfdbbbc20e859c1b55338 languageName: node linkType: hard -"@chakra-ui/tooltip@npm:2.3.0": - version: 2.3.0 - resolution: "@chakra-ui/tooltip@npm:2.3.0" +"@chakra-ui/tooltip@npm:2.3.1": + version: 2.3.1 + resolution: "@chakra-ui/tooltip@npm:2.3.1" dependencies: "@chakra-ui/dom-utils": 2.1.0 "@chakra-ui/popper": 3.1.0 @@ -1514,7 +1562,7 @@ __metadata: framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: aaab684191f3e45803353ffec9c17bf7ebecdf090b0d6422527886995c7d2be32e3bdd0442b19d4ab0e0baf1f0a9202095b5ed2fe47e07b2f684ae2150b5c7bf + checksum: 047bb349fd80382d4f2ee4086119ca80a584b879c4525891e0fb602db0e857dfead4a35c1eb27d4b0c4ce0ac9c0324e63b9fb5f984389297eee2cd1a684f8e1a languageName: node linkType: hard @@ -1552,65 +1600,65 @@ __metadata: languageName: node linkType: hard -"@dnd-kit/accessibility@npm:^3.0.0": - version: 3.0.1 - resolution: "@dnd-kit/accessibility@npm:3.0.1" +"@dnd-kit/accessibility@npm:^3.1.0": + version: 3.1.0 + resolution: "@dnd-kit/accessibility@npm:3.1.0" dependencies: tslib: ^2.0.0 peerDependencies: react: ">=16.8.0" - checksum: 0afc2c0fce9a1c107453620ca0da1778f182d340e74ffbc6e369ef0ac8943cafb929d3a6c0891d9b915aa23b2b92137ff4fad958f43118466586d8129a3359d5 + checksum: fcb88c961e2f4c226ab575bc4a13712419884bb0f60761befcaa23bcb6c9939dc2cac6633416f2a07baee9a8830350c6df444039332408cdaaf27cad17c6b64b languageName: node linkType: hard -"@dnd-kit/core@npm:^6.0.8": - version: 6.0.8 - resolution: "@dnd-kit/core@npm:6.0.8" +"@dnd-kit/core@npm:^6.1.0": + version: 6.1.0 + resolution: "@dnd-kit/core@npm:6.1.0" dependencies: - "@dnd-kit/accessibility": ^3.0.0 - "@dnd-kit/utilities": ^3.2.1 + "@dnd-kit/accessibility": ^3.1.0 + "@dnd-kit/utilities": ^3.2.2 tslib: ^2.0.0 peerDependencies: react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: abe48ff7395f84fd8c15e6c8b13da4df153dc1f1076096d783acd0c25539516c77e4854ea59be6621dde55739cb0df1d62924ad069df3267fe05ad90ef729b2f + checksum: 3b8f46d2f4d2723abad4721c7bc4d1df2c4f6f26ce54673243666212cfa6f34f33e3255b53144a847da469dc736c966c19e4c45330f967ce8c01f8f878ec7f5b languageName: node linkType: hard -"@dnd-kit/modifiers@npm:^6.0.1": - version: 6.0.1 - resolution: "@dnd-kit/modifiers@npm:6.0.1" +"@dnd-kit/modifiers@npm:^7.0.0": + version: 7.0.0 + resolution: "@dnd-kit/modifiers@npm:7.0.0" dependencies: - "@dnd-kit/utilities": ^3.2.1 + "@dnd-kit/utilities": ^3.2.2 tslib: ^2.0.0 peerDependencies: - "@dnd-kit/core": ^6.0.6 + "@dnd-kit/core": ^6.1.0 react: ">=16.8.0" - checksum: cd31715aac81baa2398558dc7c877a483d1c4c41cdb2f466557fdc41bb742db5cd1b34b3b84332b94ac4a2835e7e5a0e28c64e621936e976399788f1dd029ea4 + checksum: 176f76a552a2692a205f7fe647c836aa7ded7f0fdc3370407f3633c153139fe838cb85e59cbc3b156377cc8fe3fb7b72af15b97ed3de15cec904eae35f0c36e6 languageName: node linkType: hard -"@dnd-kit/sortable@npm:^7.0.2": - version: 7.0.2 - resolution: "@dnd-kit/sortable@npm:7.0.2" +"@dnd-kit/sortable@npm:^8.0.0": + version: 8.0.0 + resolution: "@dnd-kit/sortable@npm:8.0.0" dependencies: - "@dnd-kit/utilities": ^3.2.0 + "@dnd-kit/utilities": ^3.2.2 tslib: ^2.0.0 peerDependencies: - "@dnd-kit/core": ^6.0.7 + "@dnd-kit/core": ^6.1.0 react: ">=16.8.0" - checksum: 4ce705aceb15766a0deefe25a9d95a87e9413c3fb9088ea3eb0962e57f844895000117fcec7c0944a0d4ae4e1e889cfa69e3d3778164d4d23115fb1edb218283 + checksum: 26589fd23c18d930a949489b232a7345c0bee4abb6be91d3673232bc79085f13cb5d82087c2068edbc51cbdd3d47c2fe386bada92dc7f2d0dcde13d6be379daa languageName: node linkType: hard -"@dnd-kit/utilities@npm:^3.2.0, @dnd-kit/utilities@npm:^3.2.1": - version: 3.2.1 - resolution: "@dnd-kit/utilities@npm:3.2.1" +"@dnd-kit/utilities@npm:^3.2.2": + version: 3.2.2 + resolution: "@dnd-kit/utilities@npm:3.2.2" dependencies: tslib: ^2.0.0 peerDependencies: react: ">=16.8.0" - checksum: 038fd5cc1328bf4c9dca17cd48046e5a687bbf9d904c7197f851aab869ab52d9dee2734b2e255256fd6158245acd00063a23deed962c7673c0fadfbf061f04ca + checksum: 8a5015c2faa52760ab82a64287b2ac6a3d798867a1bca5ccbc1178560dbd9a1f9f1a21faea80f590ba1a4277c3eb7e7c4d3b4a39f1f32171bf6bc8174b370547 languageName: node linkType: hard @@ -1793,156 +1841,156 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-arm64@npm:0.18.20" +"@esbuild/android-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-arm64@npm:0.19.8" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-arm@npm:0.18.20" +"@esbuild/android-arm@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-arm@npm:0.19.8" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-x64@npm:0.18.20" +"@esbuild/android-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-x64@npm:0.19.8" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/darwin-arm64@npm:0.18.20" +"@esbuild/darwin-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/darwin-arm64@npm:0.19.8" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/darwin-x64@npm:0.18.20" +"@esbuild/darwin-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/darwin-x64@npm:0.19.8" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/freebsd-arm64@npm:0.18.20" +"@esbuild/freebsd-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/freebsd-arm64@npm:0.19.8" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/freebsd-x64@npm:0.18.20" +"@esbuild/freebsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/freebsd-x64@npm:0.19.8" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-arm64@npm:0.18.20" +"@esbuild/linux-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-arm64@npm:0.19.8" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-arm@npm:0.18.20" +"@esbuild/linux-arm@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-arm@npm:0.19.8" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-ia32@npm:0.18.20" +"@esbuild/linux-ia32@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-ia32@npm:0.19.8" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-loong64@npm:0.18.20" +"@esbuild/linux-loong64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-loong64@npm:0.19.8" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-mips64el@npm:0.18.20" +"@esbuild/linux-mips64el@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-mips64el@npm:0.19.8" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-ppc64@npm:0.18.20" +"@esbuild/linux-ppc64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-ppc64@npm:0.19.8" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-riscv64@npm:0.18.20" +"@esbuild/linux-riscv64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-riscv64@npm:0.19.8" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-s390x@npm:0.18.20" +"@esbuild/linux-s390x@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-s390x@npm:0.19.8" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-x64@npm:0.18.20" +"@esbuild/linux-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-x64@npm:0.19.8" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/netbsd-x64@npm:0.18.20" +"@esbuild/netbsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/netbsd-x64@npm:0.19.8" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/openbsd-x64@npm:0.18.20" +"@esbuild/openbsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/openbsd-x64@npm:0.19.8" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/sunos-x64@npm:0.18.20" +"@esbuild/sunos-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/sunos-x64@npm:0.19.8" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-arm64@npm:0.18.20" +"@esbuild/win32-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-arm64@npm:0.19.8" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-ia32@npm:0.18.20" +"@esbuild/win32-ia32@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-ia32@npm:0.19.8" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-x64@npm:0.18.20" +"@esbuild/win32-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-x64@npm:0.19.8" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1965,9 +2013,9 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.3": - version: 2.1.3 - resolution: "@eslint/eslintrc@npm:2.1.3" +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -1978,28 +2026,28 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: 5c6c3878192fe0ddffa9aff08b4e2f3bcc8f1c10d6449b7295a5f58b662019896deabfc19890455ffd7e60a5bd28d25d0eaefb2f78b2d230aae3879af92b89e5 + checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 languageName: node linkType: hard -"@eslint/js@npm:8.53.0": - version: 8.53.0 - resolution: "@eslint/js@npm:8.53.0" - checksum: e0d5cfb0000aaee237c8e6d6d6e366faa60b1ef7f928ce17778373aa44d3b886368f6d5e1f97f913f0f16801aad016db8b8df78418c9d18825c15590328028af +"@eslint/js@npm:8.56.0": + version: 8.56.0 + resolution: "@eslint/js@npm:8.56.0" + checksum: 5804130574ef810207bdf321c265437814e7a26f4e6fac9b496de3206afd52f533e09ec002a3be06cd9adcc9da63e727f1883938e663c4e4751c007d5b58e539 languageName: node linkType: hard -"@fontsource/montserrat@npm:^5.0.15": - version: 5.0.15 - resolution: "@fontsource/montserrat@npm:5.0.15" - checksum: 314be0ad651943b68acf2fb6679c8938ba29a99b4c9bbb5e9ad37e4309782129bb9b79f86e139137c338fe7118d55ee33639327bc2e9ef19b98ab34ed15f5d38 +"@fontsource/montserrat@npm:^5.0.16": + version: 5.0.16 + resolution: "@fontsource/montserrat@npm:5.0.16" + checksum: 080a47c77f83daca759643ebb2cf332b216c082f4d271db6841b61a5e46e92184e39b63c82cedc1d62e5f55aa7db8ea63f8611de6bb7d1f6a6fe427a7b1f6cc8 languageName: node linkType: hard -"@formkit/auto-animate@npm:0.8.0": - version: 0.8.0 - resolution: "@formkit/auto-animate@npm:0.8.0" - checksum: fbe4c35e022c0d26435343368a2cac3e63d5579815925632a828797a204ad20ad17738860396a4a08f89c0b0a88c1f0f7f483e9d03c9fc4f1cf05c6c1fa0bf4f +"@formkit/auto-animate@npm:0.8.1": + version: 0.8.1 + resolution: "@formkit/auto-animate@npm:0.8.1" + checksum: ffc1a3432ce81bcf7abd4360fabf05b7aee01005e64ce519f57d134e68a5e15a81f295a7b2979678896bfd7d2048202a9fa2dbd09781267899e9056e918120c1 languageName: node linkType: hard @@ -2166,6 +2214,90 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.6.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-android-arm64@npm:4.6.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.6.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.6.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.6.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.6.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.6.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.6.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.6.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.6.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.6.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.6.0": + version: 4.6.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.6.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@tauri-apps/api@npm:1.5.0": version: 1.5.0 resolution: "@tauri-apps/api@npm:1.5.0" @@ -2173,97 +2305,97 @@ __metadata: languageName: node linkType: hard -"@tauri-apps/api@npm:^1.5.1": - version: 1.5.1 - resolution: "@tauri-apps/api@npm:1.5.1" - checksum: d69f8f2cf856aa2bd17bc6ba71dc9c11f683be6e95ad7d3657fd107d994fd96a1f609baac13bd1677cd813770c1d4c818d115c9581b86ecc67adafad0b7bedf0 +"@tauri-apps/api@npm:^1.5.2": + version: 1.5.2 + resolution: "@tauri-apps/api@npm:1.5.2" + checksum: fa1fc158fec8f80fc6f0ac06ef693cea6d3edbb08abc1f163e81d98d01f6015497a9d38511fb5049d26cd1842adfb215b3bde32323571d559a81c325c3b49a58 languageName: node linkType: hard -"@tauri-apps/cli-darwin-arm64@npm:1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli-darwin-arm64@npm:1.5.6" +"@tauri-apps/cli-darwin-arm64@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-darwin-arm64@npm:1.5.8" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@tauri-apps/cli-darwin-x64@npm:1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli-darwin-x64@npm:1.5.6" +"@tauri-apps/cli-darwin-x64@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-darwin-x64@npm:1.5.8" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.6" +"@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.8" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@tauri-apps/cli-linux-arm64-gnu@npm:1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli-linux-arm64-gnu@npm:1.5.6" +"@tauri-apps/cli-linux-arm64-gnu@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-linux-arm64-gnu@npm:1.5.8" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@tauri-apps/cli-linux-arm64-musl@npm:1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli-linux-arm64-musl@npm:1.5.6" +"@tauri-apps/cli-linux-arm64-musl@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-linux-arm64-musl@npm:1.5.8" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@tauri-apps/cli-linux-x64-gnu@npm:1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli-linux-x64-gnu@npm:1.5.6" +"@tauri-apps/cli-linux-x64-gnu@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-linux-x64-gnu@npm:1.5.8" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@tauri-apps/cli-linux-x64-musl@npm:1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli-linux-x64-musl@npm:1.5.6" +"@tauri-apps/cli-linux-x64-musl@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-linux-x64-musl@npm:1.5.8" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@tauri-apps/cli-win32-arm64-msvc@npm:1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli-win32-arm64-msvc@npm:1.5.6" +"@tauri-apps/cli-win32-arm64-msvc@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-win32-arm64-msvc@npm:1.5.8" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@tauri-apps/cli-win32-ia32-msvc@npm:1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli-win32-ia32-msvc@npm:1.5.6" +"@tauri-apps/cli-win32-ia32-msvc@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-win32-ia32-msvc@npm:1.5.8" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@tauri-apps/cli-win32-x64-msvc@npm:1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli-win32-x64-msvc@npm:1.5.6" +"@tauri-apps/cli-win32-x64-msvc@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-win32-x64-msvc@npm:1.5.8" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@tauri-apps/cli@npm:^1.5.6": - version: 1.5.6 - resolution: "@tauri-apps/cli@npm:1.5.6" +"@tauri-apps/cli@npm:^1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli@npm:1.5.8" dependencies: - "@tauri-apps/cli-darwin-arm64": 1.5.6 - "@tauri-apps/cli-darwin-x64": 1.5.6 - "@tauri-apps/cli-linux-arm-gnueabihf": 1.5.6 - "@tauri-apps/cli-linux-arm64-gnu": 1.5.6 - "@tauri-apps/cli-linux-arm64-musl": 1.5.6 - "@tauri-apps/cli-linux-x64-gnu": 1.5.6 - "@tauri-apps/cli-linux-x64-musl": 1.5.6 - "@tauri-apps/cli-win32-arm64-msvc": 1.5.6 - "@tauri-apps/cli-win32-ia32-msvc": 1.5.6 - "@tauri-apps/cli-win32-x64-msvc": 1.5.6 + "@tauri-apps/cli-darwin-arm64": 1.5.8 + "@tauri-apps/cli-darwin-x64": 1.5.8 + "@tauri-apps/cli-linux-arm-gnueabihf": 1.5.8 + "@tauri-apps/cli-linux-arm64-gnu": 1.5.8 + "@tauri-apps/cli-linux-arm64-musl": 1.5.8 + "@tauri-apps/cli-linux-x64-gnu": 1.5.8 + "@tauri-apps/cli-linux-x64-musl": 1.5.8 + "@tauri-apps/cli-win32-arm64-msvc": 1.5.8 + "@tauri-apps/cli-win32-ia32-msvc": 1.5.8 + "@tauri-apps/cli-win32-x64-msvc": 1.5.8 dependenciesMeta: "@tauri-apps/cli-darwin-arm64": optional: true @@ -2287,7 +2419,7 @@ __metadata: optional: true bin: tauri: tauri.js - checksum: 29addd5f51a485465b2465db85711c3cca1187292d03b7a8719c8b8abc21824142e25174d76747ce82ad542436e32fd2ee3cac3422f0a87b1ffc5904044bdffb + checksum: c62a7f139fd8e29963ebc798f6c5092b84a2ac03d77d42cc2653675882cada3915206273e4efde87f5d734d2f477e42da4432fe698a0d7ce90e73c0471b605e8 languageName: node linkType: hard @@ -2298,16 +2430,16 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.20.3": - version: 7.20.3 - resolution: "@types/babel__core@npm:7.20.3" +"@types/babel__core@npm:^7.20.5": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" dependencies: "@babel/parser": ^7.20.7 "@babel/types": ^7.20.7 "@types/babel__generator": "*" "@types/babel__template": "*" "@types/babel__traverse": "*" - checksum: 8d14acc14d99b4b8bf36c00da368f6d597bd9ae3344aa7048f83f0f701b0463fa7c7bf2e50c3e4382fdbcfd1e4187b3452a0f0888b0f3ae8fad975591f7bdb94 + checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 languageName: node linkType: hard @@ -2339,13 +2471,13 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:^8.44.6": - version: 8.44.6 - resolution: "@types/eslint@npm:8.44.6" +"@types/eslint@npm:^8.44.9": + version: 8.44.9 + resolution: "@types/eslint@npm:8.44.9" dependencies: "@types/estree": "*" "@types/json-schema": "*" - checksum: ed8de582ab3dbd7ec0bf97d41f4f3de28dd8a37fc48bc423e1c406bbb70d1fd8c4175ba17ad6495ef9ef99a43df71421277b7a2a0355097489c4c4cf6bb266ff + checksum: 6f8889e94e67a5e43c15f5a2530798f864ace08c270bfb3f153cb705da4e30a80e0e9a0fc05317c8642c8dda909d528968172089eb4d52aca9f212761df25d90 languageName: node linkType: hard @@ -2386,12 +2518,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.8.10": - version: 20.8.10 - resolution: "@types/node@npm:20.8.10" +"@types/node@npm:^20.10.5": + version: 20.10.5 + resolution: "@types/node@npm:20.10.5" dependencies: undici-types: ~5.26.4 - checksum: 7c61190e43e8074a1b571e52ff14c880bc67a0447f2fe5ed0e1a023eb8a23d5f815658edb98890f7578afe0f090433c4a635c7c87311762544e20dd78723e515 + checksum: e216b679f545a8356960ce985a0e53c3a58fff0eacd855e180b9e223b8db2b5bd07b744a002b8c1f0c37f9194648ab4578533b5c12df2ec10cc02f61d20948d2 languageName: node linkType: hard @@ -2418,12 +2550,12 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.2.14": - version: 18.2.14 - resolution: "@types/react-dom@npm:18.2.14" +"@types/react-dom@npm:^18.2.18": + version: 18.2.18 + resolution: "@types/react-dom@npm:18.2.18" dependencies: "@types/react": "*" - checksum: 890289c70d1966c168037637c09cacefe6205bdd27a33252144a6b432595a2943775ac1a1accac0beddaeb67f8fdf721e076acb1adc990b08e51c3d9fd4e780c + checksum: 8e3da404c980e2b2a76da3852f812ea6d8b9d0e7f5923fbaf3bfbbbfa1d59116ff91c129de8f68e9b7668a67ae34484fe9df74d5a7518cf8591ec07a0c4dad57 languageName: node linkType: hard @@ -2438,14 +2570,14 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^18.2.36": - version: 18.2.36 - resolution: "@types/react@npm:18.2.36" +"@types/react@npm:^18.2.45": + version: 18.2.45 + resolution: "@types/react@npm:18.2.45" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 561fab294117983f3d245a63730bcffb423fc2a1b0f27d20c870abc5d980bc206a74f741cb11b5170fcdf0e747ac05448369cd930fbf345f74ed567f8fef3a9e + checksum: 40b256bdce67b026348022b4f8616a693afdad88cf493b77f7b4e6c5f4b0e4ba13a6068e690b9b94572920840ff30d501ea3d8518e1f21cc8fb8204d4b140c8a languageName: node linkType: hard @@ -2463,15 +2595,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.9.1": - version: 6.9.1 - resolution: "@typescript-eslint/eslint-plugin@npm:6.9.1" +"@typescript-eslint/eslint-plugin@npm:^6.14.0": + version: 6.14.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.14.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.9.1 - "@typescript-eslint/type-utils": 6.9.1 - "@typescript-eslint/utils": 6.9.1 - "@typescript-eslint/visitor-keys": 6.9.1 + "@typescript-eslint/scope-manager": 6.14.0 + "@typescript-eslint/type-utils": 6.14.0 + "@typescript-eslint/utils": 6.14.0 + "@typescript-eslint/visitor-keys": 6.14.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -2484,44 +2616,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 71ad2487ab3ce23dc8ac58e8f402c0bd23883dbcb045d049b8adf126d1f7c4f386655f0e25d316db256f91663d436683cbf101e45aed9e1d248cd843b7fa22f9 + checksum: ec688fd71b21576bfe0e4176889fddf3c13d8b07792461b84017d689ed11a9bffbf4d2ab61e9bdb254e43d2c1e159d5c2fc21bdfa6a6c2d64f9e1956a668fbe8 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.9.1": - version: 6.9.1 - resolution: "@typescript-eslint/parser@npm:6.9.1" +"@typescript-eslint/parser@npm:^6.14.0": + version: 6.14.0 + resolution: "@typescript-eslint/parser@npm:6.14.0" dependencies: - "@typescript-eslint/scope-manager": 6.9.1 - "@typescript-eslint/types": 6.9.1 - "@typescript-eslint/typescript-estree": 6.9.1 - "@typescript-eslint/visitor-keys": 6.9.1 + "@typescript-eslint/scope-manager": 6.14.0 + "@typescript-eslint/types": 6.14.0 + "@typescript-eslint/typescript-estree": 6.14.0 + "@typescript-eslint/visitor-keys": 6.14.0 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: aabca4e9751c0caf48477a75a811e1f96176ddea26465d5654579a1a5288d1bb959bf4426207ee22f7dcfb2f1ab50ade2bbf49fee555e1b4ca8abebd47fe26fb + checksum: 5fbe8d7431654c14ba6c9782d3728026ad5c90e02c9c4319f45df972e653cf5c15ba320dce70cdffa9fb7ce4c4263c37585e7bc1c909d1252d0a599880963063 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.9.1": - version: 6.9.1 - resolution: "@typescript-eslint/scope-manager@npm:6.9.1" +"@typescript-eslint/scope-manager@npm:6.14.0": + version: 6.14.0 + resolution: "@typescript-eslint/scope-manager@npm:6.14.0" dependencies: - "@typescript-eslint/types": 6.9.1 - "@typescript-eslint/visitor-keys": 6.9.1 - checksum: 3b48f7c939ab4668e150360756b84310467306700b874d028614b337e894d1db79f9898e3d20b9d60ef40c219160d653791ed61058c8857059c310c904a4c6a8 + "@typescript-eslint/types": 6.14.0 + "@typescript-eslint/visitor-keys": 6.14.0 + checksum: 0b577d42db925426a9838fe61703c226e18b697374fbe20cf9b93ba30fe58bf4a7f7f42491a4d24b7f3cc12d9a189fe3524c0e9b7708727e710d95b908250a14 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.9.1": - version: 6.9.1 - resolution: "@typescript-eslint/type-utils@npm:6.9.1" +"@typescript-eslint/type-utils@npm:6.14.0": + version: 6.14.0 + resolution: "@typescript-eslint/type-utils@npm:6.14.0" dependencies: - "@typescript-eslint/typescript-estree": 6.9.1 - "@typescript-eslint/utils": 6.9.1 + "@typescript-eslint/typescript-estree": 6.14.0 + "@typescript-eslint/utils": 6.14.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -2529,23 +2661,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 39cf4831ebe3618ffd47f85b2425d8fba746cf2087d16f99e021a66a148c3c52034f68854acfde9c01816e363e699e59e16606482937051418b86a60593f850a + checksum: 09988f25279598840673c41ba44b03756f2dfb31284ab72af97c170711a0f31e5c53d6b120aa83f31438565e82aae1a1ca4d1ed0de4890654dd6a6a33d88202c languageName: node linkType: hard -"@typescript-eslint/types@npm:6.9.1": - version: 6.9.1 - resolution: "@typescript-eslint/types@npm:6.9.1" - checksum: f9208af83e8117cdeb48655bbb436339b8b2369421cda0cc7ae7c7bb44a2743a5b2702c9c9f7ccbe261fbac63083c6e357a015a20903cb8dfed3e754f8fb40e3 +"@typescript-eslint/types@npm:6.14.0": + version: 6.14.0 + resolution: "@typescript-eslint/types@npm:6.14.0" + checksum: 624e6c5227f596dcc9757348d09c5a09b846a62938b8b4409614cf8108013b64ed8b270c32e87ea8890dd09ed896b82e92872c3574dbf07dcda11a168d69dd1f languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.9.1": - version: 6.9.1 - resolution: "@typescript-eslint/typescript-estree@npm:6.9.1" +"@typescript-eslint/typescript-estree@npm:6.14.0": + version: 6.14.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.14.0" dependencies: - "@typescript-eslint/types": 6.9.1 - "@typescript-eslint/visitor-keys": 6.9.1 + "@typescript-eslint/types": 6.14.0 + "@typescript-eslint/visitor-keys": 6.14.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -2554,34 +2686,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 3824629963e05a70944788da00711e35ac9ba72be690add5b3d771b2aa5a7d1f9bcf974e0170e6ee644090c96b9e0496d781dd4f4893e6e24652e7dae876c293 + checksum: 495d7616463685bfd8138ffa9fbc0a7f9130ff8a3f6f85775960b4f0a3fdc259ae53b104cdfe562b60310860b5a6c8387307790734555084aa087e3bb9c28a69 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.9.1": - version: 6.9.1 - resolution: "@typescript-eslint/utils@npm:6.9.1" +"@typescript-eslint/utils@npm:6.14.0": + version: 6.14.0 + resolution: "@typescript-eslint/utils@npm:6.14.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.9.1 - "@typescript-eslint/types": 6.9.1 - "@typescript-eslint/typescript-estree": 6.9.1 + "@typescript-eslint/scope-manager": 6.14.0 + "@typescript-eslint/types": 6.14.0 + "@typescript-eslint/typescript-estree": 6.14.0 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 124db80dbe849cfb951d97a3b2dd04a8dd4d7be2f6db7d2782943e84bbf3fad210f884a16ffa8ead48fd4c43b22c3132abcd9a4f2da9d94a99c473a7bb04f2e7 + checksum: 36e8501cb85647947189f31017c36d6f6ac7ef0399fa0e18eb64f1b83e00f1e8ace1d9ac5015ef4d9c1b820179f1def8d61d7ea9e5d61433eb848cf5c49dc8b0 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.9.1": - version: 6.9.1 - resolution: "@typescript-eslint/visitor-keys@npm:6.9.1" +"@typescript-eslint/visitor-keys@npm:6.14.0": + version: 6.14.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.14.0" dependencies: - "@typescript-eslint/types": 6.9.1 + "@typescript-eslint/types": 6.14.0 eslint-visitor-keys: ^3.4.1 - checksum: 4262055a71d9f54d576df915a80050ad1ad01ef13301e67a1494ca34712a73b9f31f0d06830c582d8dd7483681368aa769575f9db03cb5a8e910efc435f0e78a + checksum: fc593c4e94d5739be7bd88e42313a301bc9806fad758b6a0a1bafd296ff41522be602caf4976beec84e363b0f56585bb98df3c157f70de984de721798501fd8a languageName: node linkType: hard @@ -2592,18 +2724,18 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-react@npm:^4.1.1": - version: 4.1.1 - resolution: "@vitejs/plugin-react@npm:4.1.1" +"@vitejs/plugin-react@npm:^4.2.1": + version: 4.2.1 + resolution: "@vitejs/plugin-react@npm:4.2.1" dependencies: - "@babel/core": ^7.23.2 - "@babel/plugin-transform-react-jsx-self": ^7.22.5 - "@babel/plugin-transform-react-jsx-source": ^7.22.5 - "@types/babel__core": ^7.20.3 + "@babel/core": ^7.23.5 + "@babel/plugin-transform-react-jsx-self": ^7.23.3 + "@babel/plugin-transform-react-jsx-source": ^7.23.3 + "@types/babel__core": ^7.20.5 react-refresh: ^0.14.0 peerDependencies: - vite: ^4.2.0 - checksum: 275132ab1e4c227326396aeee93084f20bbe5f0fbe92d45813f3eacd0766eb6e8cd83ee222f90411aefad1ce60fbd31766a8e4725e7bb36914f2bba37afbdebf + vite: ^4.2.0 || ^5.0.0 + checksum: 08d227d27ff2304e395e746bd2d4b5fee40587f69d7e2fcd6beb7d91163c1f1dc26d843bc48e2ffb8f38c6b8a1b9445fb07840e3dcc841f97b56bbb8205346aa languageName: node linkType: hard @@ -2887,17 +3019,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.9": - version: 4.22.1 - resolution: "browserslist@npm:4.22.1" +"browserslist@npm:^4.22.2": + version: 4.22.2 + resolution: "browserslist@npm:4.22.2" dependencies: - caniuse-lite: ^1.0.30001541 - electron-to-chromium: ^1.4.535 - node-releases: ^2.0.13 + caniuse-lite: ^1.0.30001565 + electron-to-chromium: ^1.4.601 + node-releases: ^2.0.14 update-browserslist-db: ^1.0.13 bin: browserslist: cli.js - checksum: 7e6b10c53f7dd5d83fd2b95b00518889096382539fed6403829d447e05df4744088de46a571071afb447046abc3c66ad06fbc790e70234ec2517452e32ffd862 + checksum: 33ddfcd9145220099a7a1ac533cecfe5b7548ffeb29b313e1b57be6459000a1f8fa67e781cf4abee97268ac594d44134fcc4a6b2b4750ceddc9796e3a22076d9 languageName: node linkType: hard @@ -2944,10 +3076,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001541": - version: 1.0.30001547 - resolution: "caniuse-lite@npm:1.0.30001547" - checksum: ec0fc2b46721887f6f4aca1f3902f03d9a1a07416d16a86b7cd4bfba60e7b6b03ab3969659d3ea0158cc2f298972c80215c06c9457eb15c649d7780e8f5e91a7 +"caniuse-lite@npm:^1.0.30001565": + version: 1.0.30001570 + resolution: "caniuse-lite@npm:1.0.30001570" + checksum: 460be2c7a9b1c8a83b6aae4226661c276d9dada6c84209dee547699cf4b28030b9d1fc29ddd7626acee77412b6401993878ea0ef3eadbf3a63ded9034896ae20 languageName: node linkType: hard @@ -3111,14 +3243,21 @@ __metadata: languageName: node linkType: hard -"csstype@npm:^3.0.11, csstype@npm:^3.0.2": +"csstype@npm:^3.0.2": version: 3.1.1 resolution: "csstype@npm:3.1.1" checksum: 1f7b4f5fdd955b7444b18ebdddf3f5c699159f13e9cf8ac9027ae4a60ae226aef9bbb14a6e12ca7dba3358b007cee6354b116e720262867c398de6c955ea451d languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"csstype@npm:^3.1.2": + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -3217,10 +3356,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.535": - version: 1.4.549 - resolution: "electron-to-chromium@npm:1.4.549" - checksum: 6aa2a71fa359642e8cc77c0bbf4ded752ff769405173fdb91f790ae3b29cc076eb98579622a87fda86d087ef6f18ca13fa05d229083756c546761b1258c3dd48 +"electron-to-chromium@npm:^1.4.601": + version: 1.4.614 + resolution: "electron-to-chromium@npm:1.4.614" + checksum: e99e6c8600aa76b4d385a4381b943ec2cfeebfdc36a2675fbf87b334256428b92f5d79ab287b8bab0e1875a992284a8a95a03b41b71e9d64a75b5088daf1dc5e languageName: node linkType: hard @@ -3410,32 +3549,32 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.18.10": - version: 0.18.20 - resolution: "esbuild@npm:0.18.20" - dependencies: - "@esbuild/android-arm": 0.18.20 - "@esbuild/android-arm64": 0.18.20 - "@esbuild/android-x64": 0.18.20 - "@esbuild/darwin-arm64": 0.18.20 - "@esbuild/darwin-x64": 0.18.20 - "@esbuild/freebsd-arm64": 0.18.20 - "@esbuild/freebsd-x64": 0.18.20 - "@esbuild/linux-arm": 0.18.20 - "@esbuild/linux-arm64": 0.18.20 - "@esbuild/linux-ia32": 0.18.20 - "@esbuild/linux-loong64": 0.18.20 - "@esbuild/linux-mips64el": 0.18.20 - "@esbuild/linux-ppc64": 0.18.20 - "@esbuild/linux-riscv64": 0.18.20 - "@esbuild/linux-s390x": 0.18.20 - "@esbuild/linux-x64": 0.18.20 - "@esbuild/netbsd-x64": 0.18.20 - "@esbuild/openbsd-x64": 0.18.20 - "@esbuild/sunos-x64": 0.18.20 - "@esbuild/win32-arm64": 0.18.20 - "@esbuild/win32-ia32": 0.18.20 - "@esbuild/win32-x64": 0.18.20 +"esbuild@npm:^0.19.3": + version: 0.19.8 + resolution: "esbuild@npm:0.19.8" + dependencies: + "@esbuild/android-arm": 0.19.8 + "@esbuild/android-arm64": 0.19.8 + "@esbuild/android-x64": 0.19.8 + "@esbuild/darwin-arm64": 0.19.8 + "@esbuild/darwin-x64": 0.19.8 + "@esbuild/freebsd-arm64": 0.19.8 + "@esbuild/freebsd-x64": 0.19.8 + "@esbuild/linux-arm": 0.19.8 + "@esbuild/linux-arm64": 0.19.8 + "@esbuild/linux-ia32": 0.19.8 + "@esbuild/linux-loong64": 0.19.8 + "@esbuild/linux-mips64el": 0.19.8 + "@esbuild/linux-ppc64": 0.19.8 + "@esbuild/linux-riscv64": 0.19.8 + "@esbuild/linux-s390x": 0.19.8 + "@esbuild/linux-x64": 0.19.8 + "@esbuild/netbsd-x64": 0.19.8 + "@esbuild/openbsd-x64": 0.19.8 + "@esbuild/sunos-x64": 0.19.8 + "@esbuild/win32-arm64": 0.19.8 + "@esbuild/win32-ia32": 0.19.8 + "@esbuild/win32-x64": 0.19.8 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -3483,7 +3622,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 5d253614e50cdb6ec22095afd0c414f15688e7278a7eb4f3720a6dd1306b0909cf431e7b9437a90d065a31b1c57be60130f63fe3e8d0083b588571f31ee6ec7b + checksum: 1dff99482ecbfcc642ec66c71e4dc5c73ce6aef68e8158a4937890b570e86a95959ac47e0f14785ba70df5a673ae4289df88a162e9759b02367ed28074cee8ba languageName: node linkType: hard @@ -3508,14 +3647,14 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:^9.0.0": - version: 9.0.0 - resolution: "eslint-config-prettier@npm:9.0.0" +"eslint-config-prettier@npm:^9.1.0": + version: 9.1.0 + resolution: "eslint-config-prettier@npm:9.1.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: 362e991b6cb343f79362bada2d97c202e5303e6865888918a7445c555fb75e4c078b01278e90be98aa98ae22f8597d8e93d48314bec6824f540f7efcab3ce451 + checksum: 9229b768c879f500ee54ca05925f31b0c0bafff3d9f5521f98ff05127356de78c81deb9365c86a5ec4efa990cb72b74df8612ae15965b14136044c73e1f6a907 languageName: node linkType: hard @@ -3578,14 +3717,14 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.53.0": - version: 8.53.0 - resolution: "eslint@npm:8.53.0" +"eslint@npm:^8.56.0": + version: 8.56.0 + resolution: "eslint@npm:8.56.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.3 - "@eslint/js": 8.53.0 + "@eslint/eslintrc": ^2.1.4 + "@eslint/js": 8.56.0 "@humanwhocodes/config-array": ^0.11.13 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 @@ -3622,7 +3761,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 2da808655c7aa4b33f8970ba30d96b453c3071cc4d6cd60d367163430677e32ff186b65270816b662d29139283138bff81f28dddeb2e73265495245a316ed02c + checksum: 883436d1e809b4a25d9eb03d42f584b84c408dbac28b0019f6ea07b5177940bf3cca86208f749a6a1e0039b63e085ee47aca1236c30721e91f0deef5cc5a5136 languageName: node linkType: hard @@ -3782,9 +3921,9 @@ __metadata: languageName: node linkType: hard -"framer-motion@npm:^10.16.4": - version: 10.16.4 - resolution: "framer-motion@npm:10.16.4" +"framer-motion@npm:^10.16.16": + version: 10.16.16 + resolution: "framer-motion@npm:10.16.16" dependencies: "@emotion/is-prop-valid": ^0.8.2 tslib: ^2.4.0 @@ -3799,7 +3938,7 @@ __metadata: optional: true react-dom: optional: true - checksum: 57eb252f25a2c4ee14b024295c6a1162a53a05e0321bdb9c8a22ec266fbe777832823eaa0309e42854170fcde16c42915c6c5d0208b628fd000d6fab013c501f + checksum: 992d755faab7171aecd4b548ea4c3baf6a9172b9348a98033e594a46a9f3f90c6f5854898d48884c3ecf7db4fc2ae3f05e27e125b4c5b397e836d765265577c1 languageName: node linkType: hard @@ -3838,6 +3977,16 @@ __metadata: languageName: node linkType: hard +"fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: latest + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 + conditions: os=darwin + languageName: node + linkType: hard + "fsevents@patch:fsevents@~2.3.2#~builtin": version: 2.3.2 resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" @@ -3847,6 +3996,15 @@ __metadata: languageName: node linkType: hard +"fsevents@patch:fsevents@~2.3.3#~builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + "function-bind@npm:^1.1.1": version: 1.1.1 resolution: "function-bind@npm:1.1.1" @@ -4862,12 +5020,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.6": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 languageName: node linkType: hard @@ -4905,10 +5063,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.13": - version: 2.0.13 - resolution: "node-releases@npm:2.0.13" - checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3 +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 languageName: node linkType: hard @@ -5138,14 +5296,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.27": - version: 8.4.31 - resolution: "postcss@npm:8.4.31" +"postcss@npm:^8.4.32": + version: 8.4.32 + resolution: "postcss@npm:8.4.32" dependencies: - nanoid: ^3.3.6 + nanoid: ^3.3.7 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea + checksum: 220d9d0bf5d65be7ed31006c523bfb11619461d296245c1231831f90150aeb4a31eab9983ac9c5c89759a3ca8b60b3e0d098574964e1691673c3ce5c494305ae languageName: node linkType: hard @@ -5156,7 +5314,7 @@ __metadata: languageName: node linkType: hard -"prettier@npm:*, prettier@npm:^3.0.3": +"prettier@npm:*": version: 3.0.3 resolution: "prettier@npm:3.0.3" bin: @@ -5165,6 +5323,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^3.1.1": + version: 3.1.1 + resolution: "prettier@npm:3.1.1" + bin: + prettier: bin/prettier.cjs + checksum: e386855e3a1af86a748e16953f168be555ce66d6233f4ba54eb6449b88eb0c6b2ca79441b11eae6d28a7f9a5c96440ce50864b9d5f6356d331d39d6bb66c648e + languageName: node + linkType: hard + "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -5257,12 +5424,12 @@ __metadata: languageName: node linkType: hard -"react-icons@npm:^4.11.0": - version: 4.11.0 - resolution: "react-icons@npm:4.11.0" +"react-icons@npm:^4.12.0": + version: 4.12.0 + resolution: "react-icons@npm:4.12.0" peerDependencies: react: "*" - checksum: 7b8b80bbe2dabcc54b6c2129b7761a04b19caebe24389adc7683478ef41212b9ca0b53c63abcc06b3c01b94c84855ec5142b4c357e19c4aaaad9a4db23a3c485 + checksum: db82a141117edcd884ade4229f0294b2ce15d82f68e0533294db07765d6dce00b129cf504338ec7081ce364fe899b296cb7752554ea08665b1d6bad811134e79 languageName: node linkType: hard @@ -5479,17 +5646,53 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.27.1": - version: 3.29.4 - resolution: "rollup@npm:3.29.4" - dependencies: +"rollup@npm:^4.2.0": + version: 4.6.0 + resolution: "rollup@npm:4.6.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.6.0 + "@rollup/rollup-android-arm64": 4.6.0 + "@rollup/rollup-darwin-arm64": 4.6.0 + "@rollup/rollup-darwin-x64": 4.6.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.6.0 + "@rollup/rollup-linux-arm64-gnu": 4.6.0 + "@rollup/rollup-linux-arm64-musl": 4.6.0 + "@rollup/rollup-linux-x64-gnu": 4.6.0 + "@rollup/rollup-linux-x64-musl": 4.6.0 + "@rollup/rollup-win32-arm64-msvc": 4.6.0 + "@rollup/rollup-win32-ia32-msvc": 4.6.0 + "@rollup/rollup-win32-x64-msvc": 4.6.0 fsevents: ~2.3.2 dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true fsevents: optional: true bin: rollup: dist/bin/rollup - checksum: 8bb20a39c8d91130825159c3823eccf4dc2295c9a0a5c4ed851a5bf2167dbf24d9a29f23461a54c955e5506395e6cc188eafc8ab0e20399d7489fb33793b184e + checksum: f0325de87cc70086297415d2780d99f6ba7f56605aa3174ae33dff842aab11c4f5206a1718b1a4872df090589ab71a3b60fdb383b7ee59cb276ad0752c3214c7 languageName: node linkType: hard @@ -5981,23 +6184,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.2.2": - version: 5.2.2 - resolution: "typescript@npm:5.2.2" +"typescript@npm:^5.3.3": + version: 5.3.3 + resolution: "typescript@npm:5.3.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 7912821dac4d962d315c36800fe387cdc0a6298dba7ec171b350b4a6e988b51d7b8f051317786db1094bd7431d526b648aba7da8236607febb26cf5b871d2d3c + checksum: 2007ccb6e51bbbf6fde0a78099efe04dc1c3dfbdff04ca3b6a8bc717991862b39fd6126c0c3ebf2d2d98ac5e960bcaa873826bb2bb241f14277034148f41f6a2 languageName: node linkType: hard -"typescript@patch:typescript@^5.2.2#~builtin": - version: 5.2.2 - resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=ad5954" +"typescript@patch:typescript@^5.3.3#~builtin": + version: 5.3.3 + resolution: "typescript@patch:typescript@npm%3A5.3.3#~builtin::version=5.3.3&hash=ad5954" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 07106822b4305de3f22835cbba949a2b35451cad50888759b6818421290ff95d522b38ef7919e70fb381c5fe9c1c643d7dea22c8b31652a717ddbd57b7f4d554 + checksum: f61375590b3162599f0f0d5b8737877ac0a7bc52761dbb585d67e7b8753a3a4c42d9a554c4cc929f591ffcf3a2b0602f65ae3ce74714fd5652623a816862b610 languageName: node linkType: hard @@ -6099,16 +6302,16 @@ __metadata: languageName: node linkType: hard -"vite@npm:^4.5.0": - version: 4.5.0 - resolution: "vite@npm:4.5.0" +"vite@npm:^5.0.10": + version: 5.0.10 + resolution: "vite@npm:5.0.10" dependencies: - esbuild: ^0.18.10 - fsevents: ~2.3.2 - postcss: ^8.4.27 - rollup: ^3.27.1 + esbuild: ^0.19.3 + fsevents: ~2.3.3 + postcss: ^8.4.32 + rollup: ^4.2.0 peerDependencies: - "@types/node": ">= 14" + "@types/node": ^18.0.0 || >=20.0.0 less: "*" lightningcss: ^1.21.0 sass: "*" @@ -6135,7 +6338,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 06f1a4c858e4dc4c04a10466f4ccacea30c5a9f8574e5ba3deb9d03fa20e80ca6797f02dad97a988da7cdef96238dbc69c3b6a538156585c74722d996223619e + checksum: a1c96be1dc8bafb981c0874813a6b783ee9c4cd235188d7dc746133972d8992fe85111b7402365fee698ffcb626cd31b39bf2f2523140e50b07b81ce3c0139d1 languageName: node linkType: hard @@ -6236,42 +6439,42 @@ __metadata: resolution: "wooting-macros@workspace:." dependencies: "@chakra-ui/icons": ^2.1.1 - "@chakra-ui/react": ^2.8.1 - "@chakra-ui/system": ^2.6.1 - "@dnd-kit/core": ^6.0.8 - "@dnd-kit/modifiers": ^6.0.1 - "@dnd-kit/sortable": ^7.0.2 - "@dnd-kit/utilities": ^3.2.1 + "@chakra-ui/react": ^2.8.2 + "@chakra-ui/system": ^2.6.2 + "@dnd-kit/core": ^6.1.0 + "@dnd-kit/modifiers": ^7.0.0 + "@dnd-kit/sortable": ^8.0.0 + "@dnd-kit/utilities": ^3.2.2 "@emoji-mart/data": 1.1.2 "@emoji-mart/react": 1.1.1 "@emotion/react": ^11.11.1 "@emotion/styled": ^11.11.0 - "@fontsource/montserrat": ^5.0.15 - "@formkit/auto-animate": 0.8.0 - "@tauri-apps/api": ^1.5.1 - "@tauri-apps/cli": ^1.5.6 - "@types/eslint": ^8.44.6 - "@types/node": ^20.8.10 + "@fontsource/montserrat": ^5.0.16 + "@formkit/auto-animate": 0.8.1 + "@tauri-apps/api": ^1.5.2 + "@tauri-apps/cli": ^1.5.8 + "@types/eslint": ^8.44.9 + "@types/node": ^20.10.5 "@types/prettier": ^3.0.0 - "@types/react": ^18.2.36 - "@types/react-dom": ^18.2.14 - "@typescript-eslint/eslint-plugin": ^6.9.1 - "@typescript-eslint/parser": ^6.9.1 - "@vitejs/plugin-react": ^4.1.1 + "@types/react": ^18.2.45 + "@types/react-dom": ^18.2.18 + "@typescript-eslint/eslint-plugin": ^6.14.0 + "@typescript-eslint/parser": ^6.14.0 + "@vitejs/plugin-react": ^4.2.1 emoji-mart: ^5.5.2 - eslint: ^8.53.0 - eslint-config-prettier: ^9.0.0 + eslint: ^8.56.0 + eslint-config-prettier: ^9.1.0 eslint-plugin-react: ^7.33.2 eslint-plugin-react-hooks: ^4.6.0 - framer-motion: ^10.16.4 - prettier: ^3.0.3 + framer-motion: ^10.16.16 + prettier: ^3.1.1 react: ^18.2.0 react-dom: ^18.2.0 - react-icons: ^4.11.0 + react-icons: ^4.12.0 tauri-plugin-log: "https://github.com/tauri-apps/tauri-plugin-log.git#commit=1a369766cf90f3aed9c2b7c68b70bf39081538b3" - typescript: ^5.2.2 - vite: ^4.5.0 - yarn: ^1.22.19 + typescript: ^5.3.3 + vite: ^5.0.10 + yarn: ^1.22.21 languageName: unknown linkType: soft @@ -6303,13 +6506,13 @@ __metadata: languageName: node linkType: hard -"yarn@npm:^1.22.19": - version: 1.22.19 - resolution: "yarn@npm:1.22.19" +"yarn@npm:^1.22.21": + version: 1.22.21 + resolution: "yarn@npm:1.22.21" bin: yarn: bin/yarn.js yarnpkg: bin/yarn.js - checksum: b43d2cc5fee7e933beb12a8aee7dfceca9e9ef2dd17c5d04d15a12ab7bec5f5744ea34a07b86e013da7f291a18c4e1ad8f70e150f5ed2f4666e6723c7f0a8452 + checksum: 791fab07ad55351049361686bcdd25c64a46e2afe2f2fc7587e666aa4f758d7eef80235b921aa09415557ac580ab23305c0181c1b43fed45f357a0c7a77322a1 languageName: node linkType: hard From e301f953c8a8718f2ad338e3d1645d8d98f8d54e Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Tue, 19 Dec 2023 16:04:46 +0100 Subject: [PATCH 10/86] UI Fixes and Macro Search (#188) * Commit to diff * Disabled gradient on buttons * Border unification * Removed shadows in dark mode * Fixed fmt, and promise return * Disabled keycap pattern image * Border radius tweaks II. * Main BG Colors tweaks * Border radius work III. * Bigger text for macro name * Bg color fix for elements selected * Minor styling and spacing fixes * Added nicer rendering of edited elements * Alignment issues fixed * Introduced advanced macro settings framework * Style changes * Design tweaks to UI macro trigger edit * UI Consistency tweaks * Trigger size changes * Border radius readjusted V. * Trigger modal text and design change * Edit element type button style change * Abolished the random emoji system * fmt * Fixed settings menu * Visual tweaks * fmt import * Added sequence recording cancellation when LMB * Toast notifications and default duration enforcement * Minimum duration UI * Added a search field for all macro name searching * Top panel changes text if search is on * Disabled overflowX on left panel * Removed collection button * Search tweaks and new button changing macro output * Added a banner for macro output disabled * Added collection names when searching * Fix for sidebar displayed when search on * Added no macros found text * fix: search result visible when 0 macros (#192) Contribution from @xaizone * feat: disable tauri keyboard shortcuts + fix: macroview button grid (#191) Contribution from @xaizone * feat: add disable tauri kb shortucts disabled ctrl+f shortcut * fix: remove macroview button padding removed macroview button padding, text goes out of button when small size * revert: macro button padding * fix: macro button scaling * feat: disable selecting with lmb * Placeholder changed * Changed info banner to warning * Updated bg color on the sequence area * Improved detection to disable CTRL+F * Improved font size and padding on sequence buttons * improved layout of search field macro left sidebar * removed debug line * Minor UI tweaks in macro sequence area * Added reset to default option for mouse/key types * type change * fmt * Update react dependencies * Reformat and clean the project * AZERTY and other keyboard layouts support (#177) * WIP push * Initial prep for hid code fix * FIx for layouts * Made the whichID more maintainable * fixes for frontend * Fix for macros being removed * Left out line fix * Fixed numpad not working with layout fix * Fix for incorrect macro enabled state * eslint * macro state refactor * added a slower checking if input cannot be gotten * typo * Fix for color of collection disable button * fix for light mode colors * border rounding fixed * Update of libraries * RC fix * RC address II. * Simplify code --------- Co-authored-by: xaizone --- package.json | 4 +- src/App.tsx | 62 +- src/components/EmojiPopover.tsx | 4 +- src/components/icons.tsx | 15 +- .../macrosettings/DefaultMacroSettings.tsx | 9 + .../macrosettings/MacroSettingsLeftPanel.tsx | 54 + .../NotificationMacroSettingsPanel.tsx | 9 + .../macroview/UnsavedChangesModal.tsx | 10 +- .../centerPanel/ClearSequenceModal.tsx | 10 +- .../macroview/centerPanel/SequencingArea.tsx | 65 +- .../macroview/centerPanel/SortableList.tsx | 17 +- .../sortableElement/DragWrapper.tsx | 5 +- .../sortableElement/SortableItem.tsx | 45 +- .../sortableElement/SortableWrapper.tsx | 7 +- .../KeyboardKeysSection.tsx | 15 +- .../MouseButtonsSection.tsx | 4 +- .../AccordionComponents/PluginsSection.tsx | 6 +- .../SelectAreaAccordion.tsx | 16 +- .../SystemEventsSection.tsx | 2 +- .../macroview/leftPanel/SelectElementArea.tsx | 17 +- .../leftPanel/SelectElementButton.tsx | 34 +- .../macroview/rightPanel/EditArea.tsx | 6 +- .../rightPanel/editForms/ClipboardForm.tsx | 39 +- .../rightPanel/editForms/DelayForm.tsx | 131 ++- .../rightPanel/editForms/KeyPressForm.tsx | 125 ++- .../rightPanel/editForms/MousePressForm.tsx | 135 ++- .../rightPanel/editForms/OpenEventForm.tsx | 42 +- .../editForms/SystemEventActionForm.tsx | 15 +- src/components/macroview/topArea/Header.tsx | 11 +- .../macroview/topArea/MacroTypeArea.tsx | 9 +- .../macroview/topArea/TriggerArea.tsx | 19 +- .../macroview/topArea/TriggerModal.tsx | 42 +- src/components/overview/CollectionButton.tsx | 7 +- src/components/overview/CollectionPanel.tsx | 128 ++- .../overview/DeleteCollectionModal.tsx | 10 +- src/components/overview/LeftPanel.tsx | 227 ++-- src/components/overview/MacroCard.tsx | 55 +- src/components/overview/MacroList.tsx | 178 +++- .../settings/AppearanceSettingsPanel.tsx | 17 +- .../settings/ApplicationSettingsPanel.tsx | 2 + .../settings/NumberInputSetting.tsx | 20 +- src/components/settings/SettingsButton.tsx | 3 +- src/components/settings/SettingsLeftPanel.tsx | 6 +- src/components/settings/ToggleSetting.tsx | 3 +- src/constants/HIDmap.ts | 976 ++++++++++++------ src/constants/MacroSettingsMap.ts | 36 + src/constants/emojiTypes.d.ts | 0 src/constants/enums.ts | 1 + src/constants/utils.ts | 17 +- src/contexts/applicationContext.tsx | 42 +- src/contexts/macroContext.tsx | 20 +- src/contexts/settingsContext.tsx | 26 +- src/hooks/useRecordingSequence.ts | 24 +- src/hooks/useRecordingTrigger.ts | 13 +- src/main.tsx | 10 +- src/theme/components/button.ts | 35 +- src/theme/components/tooltip.ts | 5 +- src/theme/config.ts | 6 +- src/theme/shadows.ts | 6 +- src/types.d.ts | 4 + src/views/MacroSettingsModal.tsx | 108 ++ src/views/Macroview.tsx | 11 +- src/views/Overview.tsx | 5 +- src/views/SettingsModal.tsx | 10 +- wooting-macro-backend/src/lib.rs | 3 +- yarn.lock | 104 +- 66 files changed, 2110 insertions(+), 992 deletions(-) create mode 100644 src/components/macrosettings/DefaultMacroSettings.tsx create mode 100644 src/components/macrosettings/MacroSettingsLeftPanel.tsx create mode 100644 src/components/macrosettings/NotificationMacroSettingsPanel.tsx create mode 100644 src/constants/MacroSettingsMap.ts create mode 100644 src/constants/emojiTypes.d.ts create mode 100644 src/views/MacroSettingsModal.tsx diff --git a/package.json b/package.json index e5aa9afa..d0cf0792 100644 --- a/package.json +++ b/package.json @@ -40,8 +40,8 @@ "@types/prettier": "^3.0.0", "@types/react": "^18.2.45", "@types/react-dom": "^18.2.18", - "@typescript-eslint/eslint-plugin": "^6.14.0", - "@typescript-eslint/parser": "^6.14.0", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", "@vitejs/plugin-react": "^4.2.1", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", diff --git a/src/App.tsx b/src/App.tsx index 1337ef3f..63c83e84 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,36 +1,45 @@ -import { Flex, useDisclosure, Text, Box } from '@chakra-ui/react' +import { Box, Flex, Text, useDisclosure } from '@chakra-ui/react' import Overview from './views/Overview' import { ViewState } from './constants/enums' import { useApplicationContext } from './contexts/applicationContext' import Macroview from './views/Macroview' import { useEffect } from 'react' -import SettingsModal from './views/SettingsModal' import data from '@emoji-mart/data' import { init } from 'emoji-mart' import './App.css' import { MacroProvider } from './contexts/macroContext' +import MacroSettingsModal from './views/MacroSettingsModal' +import SettingsModal from './views/SettingsModal' function App() { const { viewState, initComplete } = useApplicationContext() - const { isOpen, onOpen, onClose } = useDisclosure() + const { + isOpen: isOpenSettings, + onOpen: onOpenSettings, + onClose: onCloseSettings + } = useDisclosure() + const { + isOpen: isOpenMacroSettings, + onOpen: onOpenMacroSettings, + onClose: onCloseMacroSettings + } = useDisclosure() useEffect(() => { - document.addEventListener('contextmenu', (event) => event.preventDefault()) // disables tauri's right click context menu - // TODO: Figure out how to disable other keyboard shortcuts like CTRL-F + document.addEventListener('contextmenu', (event) => event.preventDefault()) // disables Tauri right click context menu + // TODO: Add disable for ctrl+r and f5, but only when in debug mode - envvar RUST_LOG='debug' + document.addEventListener('keydown', (event) => { + if (event.ctrlKey && event.key.toLowerCase() === 'f') { + event.preventDefault() + } + }) + document.addEventListener('selectstart', (event) => event.preventDefault()) init({ data }) }, []) if (!initComplete) { return ( - + Loading... @@ -40,28 +49,31 @@ function App() { return ( - + {viewState === ViewState.Overview && ( - + )} {viewState === ViewState.Addview && ( - + )} {viewState === ViewState.Editview && ( - + )} - + + ) } diff --git a/src/components/EmojiPopover.tsx b/src/components/EmojiPopover.tsx index 473dd8de..2712e872 100644 --- a/src/components/EmojiPopover.tsx +++ b/src/components/EmojiPopover.tsx @@ -1,9 +1,9 @@ import { Box, Popover, - PopoverTrigger, - PopoverContent, PopoverBody, + PopoverContent, + PopoverTrigger, useColorMode } from '@chakra-ui/react' import data from '@emoji-mart/data' diff --git a/src/components/icons.tsx b/src/components/icons.tsx index caedb369..197f9664 100644 --- a/src/components/icons.tsx +++ b/src/components/icons.tsx @@ -1,16 +1,16 @@ import { Icon, IconProps } from '@chakra-ui/react' import { SiDiscord, SiGithub } from 'react-icons/si' import { RxKeyboard } from 'react-icons/rx' -import { BsMouse2 } from 'react-icons/bs' +import { BsMouse2, BsThreeDotsVertical } from 'react-icons/bs' import { SlScreenDesktop } from 'react-icons/sl' import { - HiOutlinePuzzlePiece, - HiArrowUp, HiArrowDown, - HiArrowsUpDown + HiArrowsUpDown, + HiArrowUp, + HiOutlinePuzzlePiece } from 'react-icons/hi2' -import { HiStop, HiPlay } from 'react-icons/hi' -import { BsThreeDotsVertical } from 'react-icons/bs' +import { HiPlay, HiStop } from 'react-icons/hi' +import { RepeatClockIcon } from '@chakra-ui/icons' export const KeyboardIcon = (props: IconProps) => { return @@ -48,3 +48,6 @@ export const StopIcon = (props: IconProps) => { export const RecordIcon = (props: IconProps) => { return } +export const ResetDefaultIcon = (props: IconProps) => { + return +} diff --git a/src/components/macrosettings/DefaultMacroSettings.tsx b/src/components/macrosettings/DefaultMacroSettings.tsx new file mode 100644 index 00000000..1da00127 --- /dev/null +++ b/src/components/macrosettings/DefaultMacroSettings.tsx @@ -0,0 +1,9 @@ +import { Text, VStack } from '@chakra-ui/react' + +export default function DefaultMacroSettings() { + return ( + + Coming Soon + + ) +} \ No newline at end of file diff --git a/src/components/macrosettings/MacroSettingsLeftPanel.tsx b/src/components/macrosettings/MacroSettingsLeftPanel.tsx new file mode 100644 index 00000000..b90eccd3 --- /dev/null +++ b/src/components/macrosettings/MacroSettingsLeftPanel.tsx @@ -0,0 +1,54 @@ +import { Flex, Text, useColorModeValue, VStack } from '@chakra-ui/react' +import { SettingsCategory } from '../../constants/enums' +import useScrollbarStyles from '../../hooks/useScrollbarStyles' +import useBorderColour from '../../hooks/useBorderColour' +import SettingsButton from '../settings/SettingsButton' +import { MacroSettingsGroup } from '../../constants/MacroSettingsMap' + +interface Props { + pageIndex: number + onSettingsButtonPress: (index: number) => void +} + +export default function MacroSettingsLeftPanel({ + pageIndex, + onSettingsButtonPress +}: Props) { + const panelBg = useColorModeValue('primary-light.50', 'bg-dark') + + return ( + + + + + Macro Specific Settings + + {MacroSettingsGroup.all + .filter((setting) => setting.category === SettingsCategory.Macro) + .map((setting) => ( + + ))} + + + + ) +} diff --git a/src/components/macrosettings/NotificationMacroSettingsPanel.tsx b/src/components/macrosettings/NotificationMacroSettingsPanel.tsx new file mode 100644 index 00000000..a69a783d --- /dev/null +++ b/src/components/macrosettings/NotificationMacroSettingsPanel.tsx @@ -0,0 +1,9 @@ +import { Text, VStack } from '@chakra-ui/react' + +export default function NotificationMacroSettingsPanel() { + return ( + + Coming Soon + + ) +} diff --git a/src/components/macroview/UnsavedChangesModal.tsx b/src/components/macroview/UnsavedChangesModal.tsx index f7259259..2cd19988 100644 --- a/src/components/macroview/UnsavedChangesModal.tsx +++ b/src/components/macroview/UnsavedChangesModal.tsx @@ -1,12 +1,12 @@ import { + Button, + Divider, Modal, - ModalOverlay, + ModalBody, ModalContent, + ModalFooter, ModalHeader, - ModalBody, - Divider, - Button, - ModalFooter + ModalOverlay } from '@chakra-ui/react' import { useCallback } from 'react' import { useApplicationContext } from '../../contexts/applicationContext' diff --git a/src/components/macroview/centerPanel/ClearSequenceModal.tsx b/src/components/macroview/centerPanel/ClearSequenceModal.tsx index 3fd3d91b..690a2723 100644 --- a/src/components/macroview/centerPanel/ClearSequenceModal.tsx +++ b/src/components/macroview/centerPanel/ClearSequenceModal.tsx @@ -1,12 +1,12 @@ import { + Button, + Divider, Modal, - ModalOverlay, + ModalBody, ModalContent, + ModalFooter, ModalHeader, - ModalBody, - Divider, - Button, - ModalFooter + ModalOverlay } from '@chakra-ui/react' import { useCallback } from 'react' import { useMacroContext } from '../../../contexts/macroContext' diff --git a/src/components/macroview/centerPanel/SequencingArea.tsx b/src/components/macroview/centerPanel/SequencingArea.tsx index 4fd6a7d1..0b9a3eb4 100644 --- a/src/components/macroview/centerPanel/SequencingArea.tsx +++ b/src/components/macroview/centerPanel/SequencingArea.tsx @@ -1,16 +1,16 @@ import { - VStack, - HStack, - Text, - Button, - Divider, Alert, - AlertIcon, AlertDescription, + AlertIcon, + Button, + Divider, + HStack, + IconButton, Stack, + Text, + Tooltip, useDisclosure, - IconButton, - Tooltip + VStack } from '@chakra-ui/react' import { DeleteIcon, SettingsIcon, TimeIcon } from '@chakra-ui/icons' import { useCallback } from 'react' @@ -23,12 +23,14 @@ import { checkIfKeypress, checkIfMouseButton } from '../../../constants/utils' import ClearSequenceModal from './ClearSequenceModal' import { RecordIcon, StopIcon } from '../../icons' import SortableList from './SortableList' +import useMainBgColour from '../../../hooks/useMainBgColour' +import { borderRadiusStandard } from '../../../theme/config' // interface Props { interface Props { - onOpenSettingsModal: () => void + onOpenMacroSettingsModal: () => void } -export default function SequencingArea({ onOpenSettingsModal }: Props) { +export default function SequencingArea({ onOpenMacroSettingsModal }: Props) { const { sequence, willCauseTriggerLooping, @@ -128,7 +130,7 @@ export default function SequencingArea({ onOpenSettingsModal }: Props) { useRecordingSequence(onItemChanged) return ( - + {/** Header */} - - Sequence - {willCauseTriggerLooping && ( @@ -158,33 +157,29 @@ export default function SequencingArea({ onOpenSettingsModal }: Props) { + + Sequence + - - + + + } size={['xs', 'sm', 'md']} - onClick={onOpenSettingsModal} + // onClick={onOpenMacroSettingsModal} /> diff --git a/src/components/macroview/centerPanel/SortableList.tsx b/src/components/macroview/centerPanel/SortableList.tsx index d998f20c..38d60c1e 100644 --- a/src/components/macroview/centerPanel/SortableList.tsx +++ b/src/components/macroview/centerPanel/SortableList.tsx @@ -1,14 +1,14 @@ -import { VStack } from '@chakra-ui/react' +import { useColorModeValue, VStack } from '@chakra-ui/react' import { - DndContext, closestCenter, + DndContext, + DragEndEvent, DragOverlay, - useSensors, - useSensor, - PointerSensor, + DragStartEvent, KeyboardSensor, - DragEndEvent, - DragStartEvent + PointerSensor, + useSensor, + useSensors } from '@dnd-kit/core' import { restrictToVerticalAxis } from '@dnd-kit/modifiers' import { @@ -38,6 +38,7 @@ export default function SortableList({ recording, stopRecording }: Props) { coordinateGetter: sortableKeyboardCoordinates }) ) + const backgroundColor = useColorModeValue("primary-light.100", "bg-dark") const handleDragEnd = useCallback( (event: DragEndEvent) => { @@ -76,9 +77,11 @@ export default function SortableList({ recording, stopRecording }: Props) { > diff --git a/src/components/macroview/centerPanel/sortableElement/SortableItem.tsx b/src/components/macroview/centerPanel/sortableElement/SortableItem.tsx index e71b21e7..41d0be03 100644 --- a/src/components/macroview/centerPanel/sortableElement/SortableItem.tsx +++ b/src/components/macroview/centerPanel/sortableElement/SortableItem.tsx @@ -1,10 +1,9 @@ -import { TimeIcon, EditIcon } from '@chakra-ui/icons' +import { TimeIcon } from '@chakra-ui/icons' import { Box, Divider, Flex, HStack, - IconButton, Menu, MenuButton, MenuItem, @@ -12,7 +11,7 @@ import { Text, useColorModeValue } from '@chakra-ui/react' -import { useMemo, useCallback } from 'react' +import { useCallback, useMemo } from 'react' import { useMacroContext } from '../../../../contexts/macroContext' import { ActionEventType } from '../../../../types' import { @@ -26,6 +25,7 @@ import { getElementDisplayString } from '../../../../constants/utils' import { KeyType } from '../../../../constants/enums' +import { borderRadiusStandard } from '../../../../theme/config' interface Props { id: number @@ -34,12 +34,7 @@ interface Props { stopRecording: () => void } -export default function SortableItem({ - id, - element, - recording, - stopRecording -}: Props) { +export default function SortableItem({ id, element, recording }: Props) { const isEditable = checkIfElementIsEditable(element) const displayText = getElementDisplayString(element) const { @@ -101,14 +96,6 @@ export default function SortableItem({ if (checkIfElementIsEditable(element)) updateSelectedElementId(id - 1) }, [element, id, isSelected, recording, updateSelectedElementId]) - const onEditButtonPress = useCallback(() => { - stopRecording() - if (isSelected) { - return - } - updateSelectedElementId(id - 1) - }, [id, isSelected, stopRecording, updateSelectedElementId]) - const onDeleteButtonPress = useCallback(() => { if (isSelected) { updateSelectedElementId(undefined) @@ -116,12 +103,21 @@ export default function SortableItem({ onElementDelete(id - 1) }, [id, isSelected, onElementDelete, updateSelectedElementId]) + const secondBg = useColorModeValue('primary-light.0', 'primary-dark.800') + return ( @@ -141,7 +137,7 @@ export default function SortableItem({ borderColor={kebabColour} alignItems="center" justifyContent="center" - rounded="md" + rounded={borderRadiusStandard} > )} - {isEditable && ( - } - size={['xs', 'sm']} - onClick={onEditButtonPress} - /> - )} diff --git a/src/components/macroview/leftPanel/AccordionComponents/KeyboardKeysSection.tsx b/src/components/macroview/leftPanel/AccordionComponents/KeyboardKeysSection.tsx index d6965e42..a6a12a66 100644 --- a/src/components/macroview/leftPanel/AccordionComponents/KeyboardKeysSection.tsx +++ b/src/components/macroview/leftPanel/AccordionComponents/KeyboardKeysSection.tsx @@ -1,18 +1,19 @@ import { - AccordionItem, AccordionButton, - Flex, AccordionIcon, + AccordionItem, AccordionPanel, + AspectRatio, + Flex, Grid, - GridItem, - AspectRatio + GridItem } from '@chakra-ui/react' import { KeyType } from '../../../../constants/enums' import { HidInfo } from '../../../../constants/HIDmap' import { KeyboardKeyCategory } from '../../../../types' import { KeyboardIcon } from '../../../icons' import SelectElementButton from '../SelectElementButton' +import { DefaultMacroDelay } from '../../../../constants/utils' interface Props { keyboardKeyCategories: KeyboardKeyCategory[] @@ -55,9 +56,7 @@ export default function KeyboardKeysSection({ keyboardKeyCategories }: Props) { { return HIDCategory[element.category] === categoryName }) - if (elements.length > 0) temp.push({ name: categoryName, elements: elements }) + if (elements.length > 0) + temp.push({ name: categoryName, elements: elements }) } return temp }, [keyboardKeyElements]) diff --git a/src/components/macroview/leftPanel/AccordionComponents/SystemEventsSection.tsx b/src/components/macroview/leftPanel/AccordionComponents/SystemEventsSection.tsx index 53ebb9f3..138e6454 100644 --- a/src/components/macroview/leftPanel/AccordionComponents/SystemEventsSection.tsx +++ b/src/components/macroview/leftPanel/AccordionComponents/SystemEventsSection.tsx @@ -47,7 +47,7 @@ export default function SystemEventsSection({ elementsToRender }: Props) { {elementsToRender.map((info: SystemEventInfo) => ( - + Elements setSearchValue(event.target.value)} sx={{ diff --git a/src/components/macroview/leftPanel/SelectElementButton.tsx b/src/components/macroview/leftPanel/SelectElementButton.tsx index 28d14b65..d408d91b 100644 --- a/src/components/macroview/leftPanel/SelectElementButton.tsx +++ b/src/components/macroview/leftPanel/SelectElementButton.tsx @@ -3,11 +3,12 @@ import { useCallback } from 'react' import { useMacroContext } from '../../../contexts/macroContext' import { useSettingsContext } from '../../../contexts/settingsContext' import { ActionEventType } from '../../../types' +import { borderRadiusStandard } from '../../../theme/config' interface Props { properties: ActionEventType - nameText: string, - descText?: string, + nameText: string + descText?: string } export default function SelectElementButton({ @@ -51,7 +52,12 @@ export default function SelectElementButton({ ]) return ( - + - - {nameText} - + + {nameText} + ) diff --git a/src/components/macroview/rightPanel/EditArea.tsx b/src/components/macroview/rightPanel/EditArea.tsx index 49ee16f3..4ebf194e 100644 --- a/src/components/macroview/rightPanel/EditArea.tsx +++ b/src/components/macroview/rightPanel/EditArea.tsx @@ -1,4 +1,4 @@ -import { VStack, Text } from '@chakra-ui/react' +import { useColorModeValue, VStack } from '@chakra-ui/react' import { useMemo } from 'react' import { useMacroContext } from '../../../contexts/macroContext' import { useSelectedElement } from '../../../contexts/selectors' @@ -12,6 +12,7 @@ import SystemEventActionForm from './editForms/SystemEventActionForm' export default function EditArea() { const selectedElement = useSelectedElement() const { selectedElementId } = useMacroContext() + useColorModeValue('primary-light.500', 'primary-dark.500') const SelectedElementFormComponent = useMemo(() => { if (!selectedElement || selectedElementId === undefined) { @@ -61,9 +62,6 @@ export default function EditArea() { px={[2, 4, 6]} pt={[2, 4]} > - - Edit Element - {SelectedElementFormComponent} ) diff --git a/src/components/macroview/rightPanel/editForms/ClipboardForm.tsx b/src/components/macroview/rightPanel/editForms/ClipboardForm.tsx index 4a981408..51405574 100644 --- a/src/components/macroview/rightPanel/editForms/ClipboardForm.tsx +++ b/src/components/macroview/rightPanel/editForms/ClipboardForm.tsx @@ -1,16 +1,18 @@ import { + Box, Divider, - Textarea, - Text, HStack, - Box, - useColorMode + Text, + Textarea, + useColorMode, + useColorModeValue } from '@chakra-ui/react' -import { useState, useEffect, useCallback, useRef } from 'react' +import React, { useCallback, useEffect, useRef, useState } from 'react' import { useMacroContext } from '../../../../contexts/macroContext' import data from '@emoji-mart/data' import Picker from '@emoji-mart/react' import { SystemEventAction } from '../../../../types' +import { borderRadiusStandard } from '../../../../theme/config' interface Props { selectedElementId: number @@ -26,6 +28,8 @@ export default function ClipboardForm({ const [showEmojiPicker, setShowEmojiPicker] = useState(false) const { updateElement } = useMacroContext() const { colorMode } = useColorMode() + const bg = useColorModeValue('primary-light.50', 'primary-dark.700') + const kebabColour = useColorModeValue('primary-light.500', 'primary-dark.500') useEffect(() => { if ( @@ -104,9 +108,28 @@ export default function ClipboardForm({ return ( <> - - Paste Text - + + Editing element + + + {'Clipboard'} + + + diff --git a/src/components/macroview/rightPanel/editForms/DelayForm.tsx b/src/components/macroview/rightPanel/editForms/DelayForm.tsx index f5c7c723..595466b8 100644 --- a/src/components/macroview/rightPanel/editForms/DelayForm.tsx +++ b/src/components/macroview/rightPanel/editForms/DelayForm.tsx @@ -1,8 +1,23 @@ -import { Divider, Grid, GridItem, Input, Button, Text } from '@chakra-ui/react' -import { useCallback, useEffect, useState } from 'react' +import { + Box, + Button, + Divider, + Grid, + GridItem, + HStack, + Input, + Text, + useColorModeValue, + useToast, + VStack +} from '@chakra-ui/react' +import React, { useCallback, useEffect, useState } from 'react' import { useMacroContext } from '../../../../contexts/macroContext' -import { useSettingsContext } from '../../../../contexts/settingsContext' import { DelayEventAction } from '../../../../types' +import { borderRadiusStandard } from '../../../../theme/config' +import { DefaultDelayDelay } from '../../../../constants/utils' +import { ResetDefaultIcon } from '../../../icons' +import { useSettingsContext } from '../../../../contexts/settingsContext' interface Props { selectedElementId: number @@ -13,9 +28,15 @@ export default function DelayForm({ selectedElementId, selectedElement }: Props) { - const [delayDuration, setDelayDuration] = useState("0") + const config = useSettingsContext() + const [delayDuration, setDelayDuration] = useState( + String(config.config.DefaultDelayValue) + ) const { updateElement } = useMacroContext() - const { config } = useSettingsContext() + const bg = useColorModeValue('primary-light.50', 'primary-dark.700') + const kebabColour = useColorModeValue('primary-light.500', 'primary-dark.500') + const toast = useToast() + const [resetTriggered, setResetTriggered] = useState(false) useEffect(() => { if ( @@ -29,69 +50,107 @@ export default function DelayForm({ const onDelayDurationChange = useCallback( (event: React.ChangeEvent) => { - setDelayDuration(event.target.value) }, [setDelayDuration] ) const onInputBlur = useCallback(() => { - let duration - if (delayDuration === '') { - duration = 0; - } else { + let duration = Number(delayDuration) - duration = parseInt(delayDuration) - if (Number.isNaN(duration)) { - return - } + if (delayDuration === '') { + toast({ + title: 'Default duration applied', + description: `Applied default duration of ${config.config.DefaultDelayValue} ms`, + status: 'info', + duration: 4000, + isClosable: true + }) + duration = config.config.DefaultDelayValue + } else if (Number(delayDuration) < 1) { + toast({ + title: 'Minimum duration applied', + description: 'Applied minimum duration of 1ms', + status: 'info', + duration: 4000, + isClosable: true + }) + duration = 1 + } else if (Number.isNaN(duration)) { + return } - + const temp: DelayEventAction = { ...selectedElement, data: duration } updateElement(temp, selectedElementId) - }, [delayDuration, selectedElement, selectedElementId, updateElement]) + }, [delayDuration, selectedElement, selectedElementId, toast, updateElement]) - const resetDuration = useCallback(() => { - setDelayDuration(config.DefaultDelayValue.toString()) - const temp: DelayEventAction = { - ...selectedElement, - data: config.DefaultDelayValue + useEffect(() => { + if (resetTriggered) { + onInputBlur() + setResetTriggered(false) } - updateElement(temp, selectedElementId) - }, [ - config.DefaultDelayValue, - selectedElement, - selectedElementId, - updateElement - ]) + }, [onInputBlur, resetTriggered]) + + const onResetClick = () => { + setDelayDuration('') + setResetTriggered(true) + } return ( <> - - Delay Element - + + Editing element + + + {'Delay'} + + + Duration (ms) - + - + + - ) } diff --git a/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx b/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx index ecaa3eb9..c9d66780 100644 --- a/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx +++ b/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx @@ -1,18 +1,30 @@ import { + Box, + Button, Divider, + Flex, Grid, GridItem, - Flex, - Button, + HStack, Input, - Text + Text, + useColorModeValue, + useToast, + VStack } from '@chakra-ui/react' -import { useCallback, useEffect, useState } from 'react' +import React, { useCallback, useEffect, useState } from 'react' import { useMacroContext } from '../../../../contexts/macroContext' import { KeyType } from '../../../../constants/enums' import { HIDLookup } from '../../../../constants/HIDmap' -import { DownArrowIcon, DownUpArrowsIcon, UpArrowIcon } from '../../../icons' +import { + DownArrowIcon, + DownUpArrowsIcon, + ResetDefaultIcon, + UpArrowIcon +} from '../../../icons' import { KeyPressEventAction } from '../../../../types' +import { borderRadiusStandard } from '../../../../theme/config' +import { DefaultMacroDelay } from '../../../../constants/utils' interface Props { selectedElementId: number @@ -23,10 +35,13 @@ export default function KeyPressForm({ selectedElementId, selectedElement }: Props) { - const [headingText, setHeadingText] = useState('') - const [keypressDuration, setKeypressDuration] = useState("1") + const [keypressDuration, setKeypressDuration] = useState(DefaultMacroDelay) const [keypressType, setKeypressType] = useState() const { updateElement } = useMacroContext() + const bg = useColorModeValue('primary-light.50', 'primary-dark.700') + const kebabColour = useColorModeValue('primary-light.500', 'primary-dark.500') + const toast = useToast() + const [resetTriggered, setResetTriggered] = useState(false) useEffect(() => { if ( @@ -38,10 +53,7 @@ export default function KeyPressForm({ const typeString = selectedElement.data.keytype as keyof typeof KeyType setKeypressType(KeyType[typeString]) setKeypressDuration(selectedElement.data.press_duration.toString()) - setHeadingText( - `Key ${HIDLookup.get(selectedElement.data.keypress)?.displayString}` - ) - }, [selectedElement]) + }, [bg, kebabColour, selectedElement]) const onKeypressDurationChange = useCallback( (event: React.ChangeEvent) => { @@ -51,12 +63,26 @@ export default function KeyPressForm({ ) const onInputBlur = useCallback(() => { - let duration - if (keypressDuration === '') { - duration = 0; - } else { + let duration = 20 - duration = parseInt(keypressDuration) + if (Number(keypressDuration) >= 20) { + duration = Number(keypressDuration) + } else if (keypressDuration === '') { + toast({ + title: 'Default duration applied', + description: 'Applied default duration of 20ms', + status: 'info', + duration: 4000, + isClosable: true + }) + } else { + toast({ + title: 'Minimum duration', + description: 'Duration must be at least 20ms', + status: 'warning', + duration: 4000, + isClosable: true + }) if (Number.isNaN(duration)) { return } @@ -67,7 +93,13 @@ export default function KeyPressForm({ data: { ...selectedElement.data, press_duration: duration } } updateElement(temp, selectedElementId) - }, [keypressDuration, selectedElement, selectedElementId, updateElement]) + }, [ + keypressDuration, + selectedElement, + selectedElementId, + toast, + updateElement + ]) const onKeypressTypeChange = useCallback( (newType: KeyType) => { @@ -81,11 +113,42 @@ export default function KeyPressForm({ [selectedElement, selectedElementId, updateElement] ) + useEffect(() => { + if (resetTriggered) { + onInputBlur() + setResetTriggered(false) + } + }, [onInputBlur, resetTriggered]) + + const onResetClick = () => { + setKeypressDuration('') + setResetTriggered(true) + } + return ( <> - - {headingText} - + + Editing element + + + {HIDLookup.get(selectedElement.data.keypress)?.displayString} + + + @@ -100,7 +163,7 @@ export default function KeyPressForm({ justifyContent="space-around" > + )} diff --git a/src/components/macroview/rightPanel/editForms/MousePressForm.tsx b/src/components/macroview/rightPanel/editForms/MousePressForm.tsx index 0d414477..5070e083 100644 --- a/src/components/macroview/rightPanel/editForms/MousePressForm.tsx +++ b/src/components/macroview/rightPanel/editForms/MousePressForm.tsx @@ -1,18 +1,30 @@ import { + Box, + Button, Divider, + Flex, Grid, GridItem, - Flex, - Button, + HStack, Input, - Text + Text, + useColorModeValue, + useToast, + VStack } from '@chakra-ui/react' -import { useCallback, useEffect, useState } from 'react' +import React, { useCallback, useEffect, useState } from 'react' import { useMacroContext } from '../../../../contexts/macroContext' import { KeyType } from '../../../../constants/enums' import { mouseEnumLookup } from '../../../../constants/MouseMap' -import { DownArrowIcon, DownUpArrowsIcon, UpArrowIcon } from '../../../icons' +import { + DownArrowIcon, + DownUpArrowsIcon, + ResetDefaultIcon, + UpArrowIcon +} from '../../../icons' import { MouseEventAction } from '../../../../types' +import { borderRadiusStandard } from '../../../../theme/config' +import { DefaultMouseDelay } from '../../../../constants/utils' interface Props { selectedElementId: number @@ -23,10 +35,15 @@ export default function MousePressForm({ selectedElementId, selectedElement }: Props) { - const [headingText, setHeadingText] = useState('') - const [mousepressDuration, setMousepressDuration] = useState("1") + const [headingText, setHeadingText] = useState('') + const [mousepressDuration, setMousepressDuration] = + useState(DefaultMouseDelay) const [mousepressType, setMousepressType] = useState() const { updateElement } = useMacroContext() + const bg = useColorModeValue('primary-light.50', 'primary-dark.700') + const kebabColour = useColorModeValue('primary-light.500', 'primary-dark.500') + const toast = useToast() + const [resetTriggered, setResetTriggered] = useState(false) useEffect(() => { const typeString: keyof typeof KeyType = selectedElement.data.data @@ -35,14 +52,37 @@ export default function MousePressForm({ if (selectedElement.data.data.type === 'DownUp') { setMousepressDuration(selectedElement.data.data.duration.toString()) } + setHeadingText( - `${mouseEnumLookup.get(selectedElement.data.data.button)?.displayString}` + + Editing element + + + { + mouseEnumLookup.get(selectedElement.data.data.button) + ?.displayString + } + + + ) - }, [selectedElement]) + }, [bg, kebabColour, selectedElement]) const onMousepressDurationChange = useCallback( (event: React.ChangeEvent) => { - setMousepressDuration(event.target.value) }, [setMousepressDuration] @@ -52,15 +92,28 @@ export default function MousePressForm({ if (selectedElement.data.data.type !== 'DownUp') { return } - let duration - if (mousepressDuration === '') { - duration = 0; - } else { + let duration = 20 - duration = parseInt(mousepressDuration) - if (Number.isNaN(duration)) { - return - } + if (Number(mousepressDuration) >= 20) { + duration = Number(mousepressDuration) + } else if (mousepressDuration === '') { + toast({ + title: 'Default duration applied', + description: 'Applied default duration of 20ms', + status: 'info', + duration: 4000, + isClosable: true + }) + } else if (Number(mousepressDuration) < 20) { + toast({ + title: 'Minimum duration', + description: 'Duration must be at least 20ms', + status: 'warning', + duration: 4000, + isClosable: true + }) + } else if (Number.isNaN(duration)) { + return } const temp: MouseEventAction = { @@ -74,7 +127,13 @@ export default function MousePressForm({ } } updateElement(temp, selectedElementId) - }, [mousepressDuration, selectedElement, selectedElementId, updateElement]) + }, [ + mousepressDuration, + selectedElement, + selectedElementId, + toast, + updateElement + ]) const onMousepressTypeChange = useCallback( (newType: KeyType) => { @@ -102,7 +161,9 @@ export default function MousePressForm({ ...temp.data.data, type: 'DownUp', duration: - temp.data.data.type === 'DownUp' ? temp.data.data.duration : 1 + temp.data.data.type === 'DownUp' + ? temp.data.data.duration + : Number(DefaultMouseDelay) } } } @@ -115,6 +176,18 @@ export default function MousePressForm({ [selectedElement, selectedElementId, updateElement] ) + useEffect(() => { + if (resetTriggered) { + onInputBlur() + setResetTriggered(false) + } + }, [onInputBlur, resetTriggered]) + + const onResetClick = () => { + setMousepressDuration('') + setResetTriggered(true) + } + return ( <> @@ -134,7 +207,7 @@ export default function MousePressForm({ justifyContent="space-around" > + )} diff --git a/src/components/macroview/rightPanel/editForms/OpenEventForm.tsx b/src/components/macroview/rightPanel/editForms/OpenEventForm.tsx index 37cf579e..fd80c5fa 100644 --- a/src/components/macroview/rightPanel/editForms/OpenEventForm.tsx +++ b/src/components/macroview/rightPanel/editForms/OpenEventForm.tsx @@ -1,9 +1,19 @@ -import { Button, Divider, Text, Textarea, VStack } from '@chakra-ui/react' -import { useCallback, useEffect, useState } from 'react' +import { + Box, + Button, + Divider, + HStack, + Text, + Textarea, + useColorModeValue, + VStack +} from '@chakra-ui/react' +import React, { useCallback, useEffect, useState } from 'react' import { useMacroContext } from '../../../../contexts/macroContext' import { dialog } from '@tauri-apps/api' import { sysEventLookup } from '../../../../constants/SystemEventMap' import { SystemEventAction } from '../../../../types' +import { borderRadiusStandard } from '../../../../theme/config' interface Props { selectedElement: SystemEventAction @@ -15,10 +25,12 @@ export default function OpenEventForm({ selectedElement }: Props) { const [subtype, setSubtype] = useState<'File' | 'Directory' | 'Website'>() - const [headerText, setHeaderText] = useState('') + const [headerText, setHeaderText] = useState('') const [subHeaderText, setSubHeaderText] = useState('') const [path, setPath] = useState('') const { updateElement } = useMacroContext() + const bg = useColorModeValue('primary-light.50', 'primary-dark.700') + const kebabColour = useColorModeValue('primary-light.500', 'primary-dark.500') useEffect(() => { if (selectedElement.data.type !== 'Open') return @@ -40,7 +52,29 @@ export default function OpenEventForm({ break } setHeaderText( - sysEventLookup.get(selectedElement.data.action.type)?.displayString || '' + + Editing element + + + {sysEventLookup.get(selectedElement.data.action.type) + ?.displayString || ''} + + + ) setPath(selectedElement.data.action.data) }, [selectedElement]) diff --git a/src/components/macroview/rightPanel/editForms/SystemEventActionForm.tsx b/src/components/macroview/rightPanel/editForms/SystemEventActionForm.tsx index 2972cbba..34722580 100644 --- a/src/components/macroview/rightPanel/editForms/SystemEventActionForm.tsx +++ b/src/components/macroview/rightPanel/editForms/SystemEventActionForm.tsx @@ -9,11 +9,19 @@ interface Props { selectedElementId: number } -export default function SystemEventActionForm({ selectedElement, selectedElementId }: Props) { - const SelectedElementFormComponent = useMemo(() => { +export default function SystemEventActionForm({ + selectedElement, + selectedElementId +}: Props) { + return useMemo(() => { switch (selectedElement.data.type) { case 'Open': - return + return ( + + ) case 'Volume': return case 'Clipboard': @@ -31,5 +39,4 @@ export default function SystemEventActionForm({ selectedElement, selectedElement return } }, [selectedElement, selectedElementId]) - return SelectedElementFormComponent } diff --git a/src/components/macroview/topArea/Header.tsx b/src/components/macroview/topArea/Header.tsx index 2ac42b7c..91df2258 100644 --- a/src/components/macroview/topArea/Header.tsx +++ b/src/components/macroview/topArea/Header.tsx @@ -1,16 +1,16 @@ import { ArrowBackIcon } from '@chakra-ui/icons' import { - HStack, + Box, + Button, Flex, + HStack, IconButton, Input, Tooltip, - Button, useColorModeValue, - useDisclosure, - Box + useDisclosure } from '@chakra-ui/react' -import { useState, useEffect, useMemo, useCallback } from 'react' +import { useCallback, useEffect, useMemo, useState } from 'react' import { useApplicationContext } from '../../../contexts/applicationContext' import { useMacroContext } from '../../../contexts/macroContext' import { useSelectedMacro } from '../../../contexts/selectors' @@ -144,6 +144,7 @@ export default function Header({ isEditing }: Props) { gap={4} shadow={shadowColour} justifyContent="space-between" + justifyItems="center" > } - rounded="md" + rounded={borderRadiusStandard} spacing="16px" > diff --git a/src/components/macroview/topArea/TriggerArea.tsx b/src/components/macroview/topArea/TriggerArea.tsx index 7067880d..52098c81 100644 --- a/src/components/macroview/topArea/TriggerArea.tsx +++ b/src/components/macroview/topArea/TriggerArea.tsx @@ -1,15 +1,16 @@ import { EditIcon } from '@chakra-ui/icons' import { + Button, HStack, Kbd, - Button, + StackDivider, Text, - useColorModeValue, - StackDivider + useColorModeValue } from '@chakra-ui/react' import { useMacroContext } from '../../../contexts/macroContext' import { HIDLookup } from '../../../constants/HIDmap' import { mouseEnumLookup } from '../../../constants/MouseMap' +import { borderRadiusStandard } from '../../../theme/config' interface Props { onOpen: () => void @@ -30,10 +31,10 @@ export default function TriggerArea({ onOpen }: Props) { gap={2} divider={} shadow={shadowColour} - rounded="md" + rounded={borderRadiusStandard} justifyContent="space-between" > - + Trigger Keys {macro.trigger.type === 'KeyPressEvent' && macro.trigger.data.map((HIDcode) => ( - + {HIDLookup.get(HIDcode)?.displayString} ))} {macro.trigger.type === 'MouseEvent' && ( - + {mouseEnumLookup.get(macro.trigger.data)?.displayString} )} */} - - - - - + + + + + + + + ) : ( + + + Search + - + )} void } +function SearchBar() { + const cancelSearchButtonColour = useColorModeValue('#A0AEC0', '#52525b') + const borderColour = useColorModeValue( + 'primary-light.500', + 'primary-dark.500' + ) + const { searchValue, setSearchValue } = useApplicationContext() + + return ( + setSearchValue(event.target.value)} + /> + ) +} + export default function LeftPanel({ onOpenSettingsModal }: Props) { const { collections, selection, onCollectionAdd, onCollectionUpdate, - changeSelectedCollectionIndex + changeSelectedCollectionIndex, + isMacroOutputEnabled, + changeMacroOutputEnabled, + searchValue } = useApplicationContext() const [parent] = useAutoAnimate() const toast = useToast() - const [isMacroOutputEnabled, setIsMacroOutputEnabled] = useState(true) const onNewCollectionButtonPress = useCallback(() => { - // const randomCategory = - // data.categories[ - // Math.floor(Math.random() * (data.categories.length - 3) + 1) // The plus 1 is to avoid selecting the frequent category. The - 3 is to avoid selecting the flags and symbols categories - // ] - // let randomEmoji = - // randomCategory.emojis[ - // Math.floor(Math.random() * randomCategory.emojis.length) - // ] - // if (randomEmoji.includes('flag') || randomEmoji.includes('symbols')) { - // randomEmoji = 'smile' - // } - onCollectionAdd({ active: true, - icon: '📁', - // icon: `:${randomEmoji}:`, + icon: `:😍:`, macros: [], name: `Collection ${collections.length + 1}` }) @@ -70,95 +89,89 @@ export default function LeftPanel({ onOpenSettingsModal }: Props) { justifyContent="space-between" > - - + Collections - - - { - setIsMacroOutputEnabled((value) => { - updateMacroOutput(value).catch((e) => { - error(e) - toast({ - title: `Error ${ - !value ? 'disabling' : 'enabling' - } macro output`, - description: `Unable to ${ - !value ? 'disable' : 'enable' - } macro output, please re-open the app. If that does not work, please contact us on Discord.`, - status: 'error', - duration: 2000, - isClosable: true - }) - }) - return !value - }) - }} + + + + + + {searchValue.length === 0 && + collections.map((collection: Collection, index: number) => ( + changeSelectedCollectionIndex(index)} + toggleCollection={() => + onCollectionUpdate( + { + ...collections[index], + active: !collections[index].active + }, + index + ) + } /> - - - - + ))} + {searchValue.length === 0 && ( + + )} + + + - - - {collections.map((collection: Collection, index: number) => ( - changeSelectedCollectionIndex(index)} - toggleCollection={() => - onCollectionUpdate( - { - ...collections[index], - active: !collections[index].active - }, - index - ) - } - /> - ))} - - - - + ) } diff --git a/src/components/overview/MacroCard.tsx b/src/components/overview/MacroCard.tsx index 1a2d8b7b..dbab7850 100644 --- a/src/components/overview/MacroCard.tsx +++ b/src/components/overview/MacroCard.tsx @@ -1,19 +1,19 @@ import { + Box, Button, - Flex, - Text, - Switch, Divider, - VStack, + Flex, + HStack, Kbd, Menu, MenuButton, - MenuList, MenuItem, + MenuList, + Switch, + Text, + Tooltip, useColorModeValue, - Box, - HStack, - Tooltip + VStack } from '@chakra-ui/react' import { EditIcon } from '@chakra-ui/icons' import { Macro } from '../../types' @@ -24,16 +24,27 @@ import { mouseEnumLookup } from '../../constants/MouseMap' import { useCallback } from 'react' import { KebabVertical } from '../icons' import useMainBgColour from '../../hooks/useMainBgColour' +import { borderRadiusStandard } from '../../theme/config' interface Props { macro: Macro index: number onDelete: (index: number) => void + collectionName?: string } -export default function MacroCard({ macro, index, onDelete }: Props) { - const { selection, onCollectionUpdate, changeSelectedMacroIndex } = - useApplicationContext() +export default function MacroCard({ + macro, + index, + onDelete, + collectionName +}: Props) { + const { + selection, + onCollectionUpdate, + changeSelectedMacroIndex, + searchValue + } = useApplicationContext() const currentCollection = useSelectedCollection() const secondBg = useColorModeValue('blue.50', 'gray.800') const shadowColour = useColorModeValue('md', 'white-md') @@ -69,7 +80,7 @@ export default function MacroCard({ macro, index, onDelete }: Props) { h="full" bg={useMainBgColour()} boxShadow={shadowColour} - rounded="2xl" + rounded={borderRadiusStandard} p={5} m="auto" justifyContent="space-between" @@ -113,7 +124,10 @@ export default function MacroCard({ macro, index, onDelete }: Props) { {/* Move to Collection */} {/* Export */} - onDelete(index)} textColor={deleteTextColour}> + onDelete(index)} + textColor={deleteTextColour} + > Delete @@ -121,25 +135,32 @@ export default function MacroCard({ macro, index, onDelete }: Props) { {/** Trigger Keys Display */} + {searchValue.length !== 0 && ( + + + {collectionName} + + + )} - Trigger Keys: + Trigger Keys {macro.trigger.type === 'KeyPressEvent' && macro.trigger.data.map((HIDcode) => ( - + {HIDLookup.get(HIDcode)?.displayString} ))} {macro.trigger.type === 'MouseEvent' && ( - + {mouseEnumLookup.get(macro.trigger.data)?.displayString} )} diff --git a/src/components/overview/MacroList.tsx b/src/components/overview/MacroList.tsx index 07606c88..e9338cb7 100644 --- a/src/components/overview/MacroList.tsx +++ b/src/components/overview/MacroList.tsx @@ -1,27 +1,68 @@ import { AddIcon } from '@chakra-ui/icons' import { + Alert, + AlertDescription, + AlertIcon, Box, Button, Flex, Grid, GridItem, + HStack, + Text, useColorModeValue, VStack } from '@chakra-ui/react' -import { useCallback } from 'react' +import { useCallback, useEffect, useState } from 'react' import { useApplicationContext } from '../../contexts/applicationContext' import { useSelectedCollection } from '../../contexts/selectors' import { ViewState } from '../../constants/enums' -import { Macro } from '../../types' +import { Collection, Macro } from '../../types' import MacroCard from './MacroCard' import useScrollbarStyles from '../../hooks/useScrollbarStyles' import useMainBgColour from '../../hooks/useMainBgColour' +import { motion } from 'framer-motion' + +import { borderRadiusStandard } from '../../theme/config' export default function MacroList() { - const { selection, onCollectionUpdate, changeViewState } = - useApplicationContext() + // Get the ApplicationContext from your hook. + const { + collections, + selection, + onCollectionUpdate, + changeViewState, + searchValue, + isMacroOutputEnabled + } = useApplicationContext() const currentCollection = useSelectedCollection() const shadowColour = useColorModeValue('md', 'white-md') + const [matchingMacros, setMatchingMacros] = useState< + { macro: Macro; collection: Collection }[] + >([]) + + useEffect(() => { + const newMatchingMacros: { macro: Macro; collection: Collection }[] = [] + + if (searchValue) { + collections.map((collection) => { + collection.macros.map((macro) => { + if (macro.name.toLocaleLowerCase().includes(searchValue)) { + newMatchingMacros.push({ macro, collection }) + } + }) + }) + setMatchingMacros(newMatchingMacros) + } else { + setMatchingMacros( + currentCollection.macros.map((macro, index) => ({ + macro, + collection: currentCollection, + index + })) + ) + } + }, [searchValue, collections, currentCollection]) const onMacroDelete = useCallback( (macroIndex: number) => { @@ -38,47 +79,116 @@ export default function MacroList() { + {!isMacroOutputEnabled && ( + + + + + Macros will not function while Macro output is disabled. + + + + )} - - - + + + + {currentCollection.macros.map((macro, index) => ( + + + + + + ))} + + )} + {searchValue && + matchingMacros.map(({ macro, collection }, index) => ( + - Add Macro - - - - {currentCollection.macros.map((macro: Macro, index: number) => ( - - - - ))} + + + + + ))} + {matchingMacros.length === 0 && searchValue.length > 0 && ( + + {`No macros correspond to: "${searchValue}"`} + + )} ) } diff --git a/src/components/settings/AppearanceSettingsPanel.tsx b/src/components/settings/AppearanceSettingsPanel.tsx index 0f16a450..67f15017 100644 --- a/src/components/settings/AppearanceSettingsPanel.tsx +++ b/src/components/settings/AppearanceSettingsPanel.tsx @@ -1,16 +1,17 @@ import { MoonIcon, SunIcon } from '@chakra-ui/icons' import { - HStack, - VStack, - Text, Divider, + HStack, Radio, RadioGroup, + Text, useColorMode, - useColorModeValue + useColorModeValue, + VStack } from '@chakra-ui/react' import { useCallback, useEffect, useState } from 'react' import { useSettingsContext } from '../../contexts/settingsContext' +import { borderRadiusStandard } from '../../theme/config' export default function AppearanceSettingsPanel() { const [value, setValue] = useState('') @@ -55,12 +56,12 @@ export default function AppearanceSettingsPanel() { _hover={{ bg: radioHoverBg }} p="4" gap={2} - rounded="md" + rounded={borderRadiusStandard} onClick={() => onThemeChange('light')} > @@ -73,12 +74,12 @@ export default function AppearanceSettingsPanel() { _hover={{ bg: radioHoverBg }} p="4" gap={2} - rounded="md" + rounded={borderRadiusStandard} onClick={() => onThemeChange('dark')} > diff --git a/src/components/settings/ApplicationSettingsPanel.tsx b/src/components/settings/ApplicationSettingsPanel.tsx index ae460a3f..1ce3c242 100644 --- a/src/components/settings/ApplicationSettingsPanel.tsx +++ b/src/components/settings/ApplicationSettingsPanel.tsx @@ -63,6 +63,8 @@ export default function ApplicationSettingsPanel() { description="The value (in ms) that all Delay elements will default to when added to the sequence." defaultValue={config.DefaultDelayValue} onChange={updateDefaultDelayVal} + minimum={1} + maximum={20000} /> diff --git a/src/components/settings/NumberInputSetting.tsx b/src/components/settings/NumberInputSetting.tsx index 7e78d51d..e8a38448 100644 --- a/src/components/settings/NumberInputSetting.tsx +++ b/src/components/settings/NumberInputSetting.tsx @@ -1,27 +1,32 @@ import { HStack, - VStack, - Text, + NumberDecrementStepper, + NumberIncrementStepper, NumberInput, NumberInputField, NumberInputStepper, - NumberIncrementStepper, - NumberDecrementStepper + Text, + VStack } from '@chakra-ui/react' import { useEffect, useState } from 'react' +import { borderRadiusStandard } from '../../theme/config' interface Props { title: string description: string defaultValue: number onChange: (value: string) => void + minimum: number + maximum: number } export default function NumberInputSetting({ title, description, defaultValue, - onChange + onChange, + minimum, + maximum }: Props) { const [value, setValue] = useState('') @@ -48,12 +53,13 @@ export default function NumberInputSetting({ setValue(valueAsString)} - min={1} + min={minimum} + max={maximum} > diff --git a/src/components/settings/SettingsButton.tsx b/src/components/settings/SettingsButton.tsx index 7b33aa7f..d6fa8780 100644 --- a/src/components/settings/SettingsButton.tsx +++ b/src/components/settings/SettingsButton.tsx @@ -1,5 +1,6 @@ import { Box, Text, useColorModeValue } from '@chakra-ui/react' import { SettingInfo } from '../../constants/SettingsMap' +import { borderRadiusStandard } from '../../theme/config' interface Props { setting: SettingInfo @@ -24,7 +25,7 @@ export default function SettingsButton({ _hover={{ bg: buttonBg }} px="2" py="1" - rounded="md" + rounded={borderRadiusStandard} onClick={() => setFocus(index)} cursor="pointer" transition="ease-out 150ms" diff --git a/src/components/settings/SettingsLeftPanel.tsx b/src/components/settings/SettingsLeftPanel.tsx index 54eeb228..f5d3ba0e 100644 --- a/src/components/settings/SettingsLeftPanel.tsx +++ b/src/components/settings/SettingsLeftPanel.tsx @@ -1,10 +1,10 @@ import { - VStack, Divider, + Flex, + HStack, Text, useColorModeValue, - HStack, - Flex + VStack } from '@chakra-ui/react' import { openDiscordLink, openGithubLink } from '../../constants/externalLinks' import { SettingsCategory } from '../../constants/enums' diff --git a/src/components/settings/ToggleSetting.tsx b/src/components/settings/ToggleSetting.tsx index f06bb6df..ffec35bf 100644 --- a/src/components/settings/ToggleSetting.tsx +++ b/src/components/settings/ToggleSetting.tsx @@ -1,4 +1,4 @@ -import { HStack, VStack, Text, Switch } from '@chakra-ui/react' +import { HStack, Switch, Text, VStack } from '@chakra-ui/react' interface Props { title: string @@ -15,7 +15,6 @@ export default function ToggleSetting({ onChange, didDependencyCheckFail = false }: Props) { - return ( diff --git a/src/constants/HIDmap.ts b/src/constants/HIDmap.ts index 71395be0..cb66109f 100644 --- a/src/constants/HIDmap.ts +++ b/src/constants/HIDmap.ts @@ -5,6 +5,8 @@ export interface HidInfo { category: HIDCategory displayString: string webKeyId: string + whichID: number + locationID: number colSpan?: number allowAtStartOfTrigger?: boolean } @@ -15,47 +17,66 @@ export class Hid { HIDcode: 4, category: HIDCategory.Alphanumeric, displayString: 'A', - webKeyId: 'KeyA' + webKeyId: 'KeyA', + whichID: 65, + locationID: 0, } } + static get B(): HidInfo { return { HIDcode: 5, category: HIDCategory.Alphanumeric, displayString: 'B', - webKeyId: 'KeyB' + webKeyId: 'KeyB', + whichID: 66, + locationID: 0, } } + static get C(): HidInfo { return { HIDcode: 6, category: HIDCategory.Alphanumeric, displayString: 'C', - webKeyId: 'KeyC' + webKeyId: 'KeyC', + whichID: 67, + locationID: 0, + } } + static get D(): HidInfo { return { HIDcode: 7, category: HIDCategory.Alphanumeric, displayString: 'D', - webKeyId: 'KeyD' + webKeyId: 'KeyD', + whichID: 68, + locationID: 0, + } } + static get E(): HidInfo { return { HIDcode: 8, category: HIDCategory.Alphanumeric, displayString: 'E', - webKeyId: 'KeyE' + webKeyId: 'KeyE', + whichID: 69, + locationID: 0, } } + static get F(): HidInfo { return { HIDcode: 9, category: HIDCategory.Alphanumeric, displayString: 'F', - webKeyId: 'KeyF' + webKeyId: 'KeyF', + whichID: 70, + locationID: 0, } } @@ -64,79 +85,109 @@ export class Hid { HIDcode: 10, category: HIDCategory.Alphanumeric, displayString: 'G', - webKeyId: 'KeyG' + webKeyId: 'KeyG', + whichID: 71, + locationID: 0, + } } + static get H(): HidInfo { return { HIDcode: 11, category: HIDCategory.Alphanumeric, displayString: 'H', - webKeyId: 'KeyH' + webKeyId: 'KeyH', + whichID: 72, + locationID: 0, } } + static get I(): HidInfo { return { HIDcode: 12, category: HIDCategory.Alphanumeric, displayString: 'I', - webKeyId: 'KeyI' + webKeyId: 'KeyI', + whichID: 73, + locationID: 0, } } + static get J(): HidInfo { return { HIDcode: 13, category: HIDCategory.Alphanumeric, displayString: 'J', - webKeyId: 'KeyJ' + webKeyId: 'KeyJ', + whichID: 74, + locationID: 0, } } + static get K(): HidInfo { return { HIDcode: 14, category: HIDCategory.Alphanumeric, displayString: 'K', - webKeyId: 'KeyK' + webKeyId: 'KeyK', + whichID: 75, + locationID: 0, } } + static get L(): HidInfo { return { HIDcode: 15, category: HIDCategory.Alphanumeric, displayString: 'L', - webKeyId: 'KeyL' + webKeyId: 'KeyL', + whichID: 76, + locationID: 0, } } + static get M(): HidInfo { return { HIDcode: 16, category: HIDCategory.Alphanumeric, displayString: 'M', - webKeyId: 'KeyM' + webKeyId: 'KeyM', + whichID: 77, + locationID: 0, } } + static get N(): HidInfo { return { HIDcode: 17, category: HIDCategory.Alphanumeric, displayString: 'N', - webKeyId: 'KeyN' + webKeyId: 'KeyN', + whichID: 78, + locationID: 0, } } + static get O(): HidInfo { return { HIDcode: 18, category: HIDCategory.Alphanumeric, displayString: 'O', - webKeyId: 'KeyO' + webKeyId: 'KeyO', + whichID: 79, + locationID: 0, } } + static get P(): HidInfo { return { HIDcode: 19, category: HIDCategory.Alphanumeric, displayString: 'P', - webKeyId: 'KeyP' + webKeyId: 'KeyP', + whichID: 80, + locationID: 0, } } @@ -145,79 +196,108 @@ export class Hid { HIDcode: 20, category: HIDCategory.Alphanumeric, displayString: 'Q', - webKeyId: 'KeyQ' + webKeyId: 'KeyQ', + whichID: 81, + locationID: 0, } } + static get R(): HidInfo { return { HIDcode: 21, category: HIDCategory.Alphanumeric, displayString: 'R', - webKeyId: 'KeyR' + webKeyId: 'KeyR', + whichID: 82, + locationID: 0, } } + static get S(): HidInfo { return { HIDcode: 22, category: HIDCategory.Alphanumeric, displayString: 'S', - webKeyId: 'KeyS' + webKeyId: 'KeyS', + whichID: 83, + locationID: 0, } } + static get T(): HidInfo { return { HIDcode: 23, category: HIDCategory.Alphanumeric, displayString: 'T', - webKeyId: 'KeyT' + webKeyId: 'KeyT', + whichID: 84, + locationID: 0, } } + static get U(): HidInfo { return { HIDcode: 24, category: HIDCategory.Alphanumeric, displayString: 'U', - webKeyId: 'KeyU' + webKeyId: 'KeyU', + whichID: 85, + locationID: 0, } } + static get V(): HidInfo { return { HIDcode: 25, category: HIDCategory.Alphanumeric, displayString: 'V', - webKeyId: 'KeyV' + webKeyId: 'KeyV', + whichID: 86, + locationID: 0, } } + static get W(): HidInfo { return { HIDcode: 26, category: HIDCategory.Alphanumeric, displayString: 'W', - webKeyId: 'KeyW' + webKeyId: 'KeyW', + whichID: 87, + locationID: 0, } } + static get X(): HidInfo { return { HIDcode: 27, category: HIDCategory.Alphanumeric, displayString: 'X', - webKeyId: 'KeyX' + webKeyId: 'KeyX', + whichID: 88, + locationID: 0, } } + static get Y(): HidInfo { return { HIDcode: 28, category: HIDCategory.Alphanumeric, displayString: 'Y', - webKeyId: 'KeyY' + webKeyId: 'KeyY', + whichID: 89, + locationID: 0, } } + static get Z(): HidInfo { return { HIDcode: 29, category: HIDCategory.Alphanumeric, displayString: 'Z', - webKeyId: 'KeyZ' + webKeyId: 'KeyZ', + whichID: 90, + locationID: 0, } } @@ -226,79 +306,108 @@ export class Hid { HIDcode: 30, category: HIDCategory.Alphanumeric, displayString: '1', - webKeyId: 'Digit1' + webKeyId: 'Digit1', + whichID: 49, + locationID: 0, } } + static get N2(): HidInfo { return { HIDcode: 31, category: HIDCategory.Alphanumeric, displayString: '2', - webKeyId: 'Digit2' + webKeyId: 'Digit2', + whichID: 50, + locationID: 0, } } + static get N3(): HidInfo { return { HIDcode: 32, category: HIDCategory.Alphanumeric, displayString: '3', - webKeyId: 'Digit3' + webKeyId: 'Digit3', + whichID: 51, + locationID: 0, } } + static get N4(): HidInfo { return { HIDcode: 33, category: HIDCategory.Alphanumeric, displayString: '4', - webKeyId: 'Digit4' + webKeyId: 'Digit4', + whichID: 52, + locationID: 0, } } + static get N5(): HidInfo { return { HIDcode: 34, category: HIDCategory.Alphanumeric, displayString: '5', - webKeyId: 'Digit5' + webKeyId: 'Digit5', + whichID: 53, + locationID: 0, } } + static get N6(): HidInfo { return { HIDcode: 35, category: HIDCategory.Alphanumeric, displayString: '6', - webKeyId: 'Digit6' + webKeyId: 'Digit6', + whichID: 54, + locationID: 0, } } + static get N7(): HidInfo { return { HIDcode: 36, category: HIDCategory.Alphanumeric, displayString: '7', - webKeyId: 'Digit7' + webKeyId: 'Digit7', + whichID: 55, + locationID: 0, } } + static get N8(): HidInfo { return { HIDcode: 37, category: HIDCategory.Alphanumeric, displayString: '8', - webKeyId: 'Digit8' + webKeyId: 'Digit8', + whichID: 56, + locationID: 0, } } + static get N9(): HidInfo { return { HIDcode: 38, category: HIDCategory.Alphanumeric, displayString: '9', - webKeyId: 'Digit9' + webKeyId: 'Digit9', + whichID: 57, + locationID: 0, } } + static get N0(): HidInfo { return { HIDcode: 39, category: HIDCategory.Alphanumeric, displayString: '0', - webKeyId: 'Digit0' + webKeyId: 'Digit0', + whichID: 48, + locationID: 0, } } @@ -308,82 +417,112 @@ export class Hid { category: HIDCategory.Alphanumeric, displayString: 'Enter', webKeyId: 'Enter', - colSpan: 2 + colSpan: 2, + whichID: 13, + locationID: 0, } } + static get ESCAPE(): HidInfo { return { HIDcode: 41, category: HIDCategory.Alphanumeric, displayString: 'Escape', webKeyId: 'Escape', - colSpan: 2 + colSpan: 2, + whichID: 27, + locationID: 0, } } + static get BACKSPACE(): HidInfo { return { HIDcode: 42, category: HIDCategory.Alphanumeric, displayString: 'Backspace', webKeyId: 'Backspace', - colSpan: 2 + colSpan: 2, + whichID: 8, + locationID: 0, } } + static get TAB(): HidInfo { return { HIDcode: 43, category: HIDCategory.Alphanumeric, displayString: 'Tab', - webKeyId: 'Tab' + webKeyId: 'Tab', + whichID: 9, + locationID: 0, } } + static get SPACE(): HidInfo { return { HIDcode: 44, category: HIDCategory.Alphanumeric, displayString: 'Space', webKeyId: 'Space', - colSpan: 2 + colSpan: 2, + whichID: 32, + locationID: 0, } } + static get MINUS(): HidInfo { return { HIDcode: 45, category: HIDCategory.Alphanumeric, displayString: '-', - webKeyId: 'Minus' + webKeyId: 'Minus', + whichID: 189, + locationID: 0, + } } + static get EQUAL(): HidInfo { return { HIDcode: 46, category: HIDCategory.Alphanumeric, displayString: '=', - webKeyId: 'Equal' + webKeyId: 'Equal', + whichID: 187, + locationID: 0, } } + static get BRACKETL(): HidInfo { return { HIDcode: 47, category: HIDCategory.Alphanumeric, displayString: '[', - webKeyId: 'BracketLeft' + webKeyId: 'BracketLeft', + whichID: 219, + locationID: 0, } } + static get BRACKETR(): HidInfo { return { HIDcode: 48, category: HIDCategory.Alphanumeric, displayString: ']', - webKeyId: 'BracketRight' + webKeyId: 'BracketRight', + whichID: 221, + locationID: 0, } } + static get BACKSLASH(): HidInfo { return { HIDcode: 49, category: HIDCategory.Alphanumeric, displayString: '\\', - webKeyId: 'Backslash' + webKeyId: 'Backslash', + whichID: 220, + locationID: 0, } } @@ -392,49 +531,67 @@ export class Hid { HIDcode: 51, category: HIDCategory.Alphanumeric, displayString: ';', - webKeyId: 'Semicolon' + webKeyId: 'Semicolon', + whichID: 186, + locationID: 0, } } + static get QUOTE(): HidInfo { return { HIDcode: 52, category: HIDCategory.Alphanumeric, displayString: '"', - webKeyId: 'Quote' + webKeyId: 'Quote', + whichID: 222, + locationID: 0, } } + static get BACKQUOTE(): HidInfo { return { HIDcode: 53, category: HIDCategory.Alphanumeric, displayString: '`', - webKeyId: 'Backquote' + webKeyId: 'Backquote', + whichID: 192, + locationID: 0, } } + static get COMMA(): HidInfo { return { HIDcode: 54, category: HIDCategory.Alphanumeric, displayString: ',', - webKeyId: 'Comma' + webKeyId: 'Comma', + whichID: 77, + locationID: 0, } } + static get PERIOD(): HidInfo { return { HIDcode: 55, category: HIDCategory.Alphanumeric, displayString: '.', - webKeyId: 'Period' + webKeyId: 'Period', + whichID: 188, + locationID: 0, } } + static get SLASH(): HidInfo { return { HIDcode: 56, category: HIDCategory.Alphanumeric, displayString: '/', - webKeyId: 'Slash' + webKeyId: 'Slash', + whichID: 191, + locationID: 0, } } + static get CAPSLOCK(): HidInfo { return { HIDcode: 57, @@ -442,23 +599,31 @@ export class Hid { displayString: 'Caps Lock', webKeyId: 'CapsLock', colSpan: 2, - allowAtStartOfTrigger: true + allowAtStartOfTrigger: true, + whichID: 20, + locationID: 0, } } + static get F1(): HidInfo { return { HIDcode: 58, category: HIDCategory.Function, displayString: 'F1', - webKeyId: 'F1' + webKeyId: 'F1', + whichID: 112, + locationID: 0, } } + static get F2(): HidInfo { return { HIDcode: 59, category: HIDCategory.Function, displayString: 'F2', - webKeyId: 'F2' + webKeyId: 'F2', + whichID: 113, + locationID: 0, } } @@ -467,79 +632,240 @@ export class Hid { HIDcode: 60, category: HIDCategory.Function, displayString: 'F3', - webKeyId: 'F3' + webKeyId: 'F3', + whichID: 114, + locationID: 0, } } + static get F4(): HidInfo { return { HIDcode: 61, category: HIDCategory.Function, displayString: 'F4', - webKeyId: 'F4' + webKeyId: 'F4', + whichID: 115, + locationID: 0, } } + static get F5(): HidInfo { return { HIDcode: 62, category: HIDCategory.Function, displayString: 'F5', - webKeyId: 'F5' + webKeyId: 'F5', + whichID: 116, + locationID: 0, } } + static get F6(): HidInfo { return { HIDcode: 63, category: HIDCategory.Function, displayString: 'F6', - webKeyId: 'F6' + webKeyId: 'F6', + whichID: 117, + locationID: 0, } } + static get F7(): HidInfo { return { HIDcode: 64, category: HIDCategory.Function, displayString: 'F7', - webKeyId: 'F7' + webKeyId: 'F7', + whichID: 118, + locationID: 0, } } + static get F8(): HidInfo { return { HIDcode: 65, category: HIDCategory.Function, displayString: 'F8', - webKeyId: 'F8' + webKeyId: 'F8', + whichID: 119, + locationID: 0, } } + static get F9(): HidInfo { return { HIDcode: 66, category: HIDCategory.Function, displayString: 'F9', - webKeyId: 'F9' + webKeyId: 'F9', + whichID: 120, + locationID: 0, } } + static get F10(): HidInfo { return { HIDcode: 67, category: HIDCategory.Function, displayString: 'F10', - webKeyId: 'F10' + webKeyId: 'F10', + whichID: 121, + locationID: 0, } } + static get F11(): HidInfo { return { HIDcode: 68, category: HIDCategory.Function, displayString: 'F11', - webKeyId: 'F11' + webKeyId: 'F11', + whichID: 122, + locationID: 0, } } + static get F12(): HidInfo { return { HIDcode: 69, category: HIDCategory.Function, displayString: 'F12', - webKeyId: 'F12' + webKeyId: 'F12', + whichID: 123, + locationID: 0, + } + } + + static get F13(): HidInfo { + return { + HIDcode: 104, + category: HIDCategory.Function, + displayString: 'F13', + webKeyId: 'F13', + whichID: 124, + locationID: 0, + } + } + + static get F14(): HidInfo { + return { + HIDcode: 105, + category: HIDCategory.Function, + displayString: 'F14', + webKeyId: 'F14', + whichID: 125, + locationID: 0, + } + } + + static get F15(): HidInfo { + return { + HIDcode: 106, + category: HIDCategory.Function, + displayString: 'F15', + webKeyId: 'F15', + whichID: 126, + locationID: 0, + } + } + + static get F16(): HidInfo { + return { + HIDcode: 107, + category: HIDCategory.Function, + displayString: 'F16', + webKeyId: 'F16', + whichID: 127, + locationID: 0, + } + } + + static get F17(): HidInfo { + return { + HIDcode: 108, + category: HIDCategory.Function, + displayString: 'F17', + webKeyId: 'F17', + whichID: 128, + locationID: 0, + } + } + + static get F18(): HidInfo { + return { + HIDcode: 109, + category: HIDCategory.Function, + displayString: 'F18', + webKeyId: 'F18', + whichID: 129, + locationID: 0, + } + } + + static get F19(): HidInfo { + return { + HIDcode: 110, + category: HIDCategory.Function, + displayString: 'F19', + webKeyId: 'F19', + whichID: 130, + locationID: 0, + } + } + + static get F20(): HidInfo { + return { + HIDcode: 111, + category: HIDCategory.Function, + displayString: 'F20', + webKeyId: 'F20', + whichID: 131, + locationID: 0, + } + } + + static get F21(): HidInfo { + return { + HIDcode: 112, + category: HIDCategory.Function, + displayString: 'F21', + webKeyId: 'F21', + whichID: 132, + locationID: 0, + } + } + + static get F22(): HidInfo { + return { + HIDcode: 113, + category: HIDCategory.Function, + displayString: 'F22', + webKeyId: 'F22', + whichID: 133, + locationID: 0, + } + } + + static get F23(): HidInfo { + return { + HIDcode: 114, + category: HIDCategory.Function, + displayString: 'F23', + webKeyId: 'F23', + whichID: 134, + locationID: 0, + } + } + + static get F24(): HidInfo { + return { + HIDcode: 115, + category: HIDCategory.Function, + displayString: 'F24', + webKeyId: 'F24', + whichID: 135, + locationID: 0, } } @@ -549,88 +875,117 @@ export class Hid { category: HIDCategory.Modifier, displayString: 'Print Screen', webKeyId: 'PrintScreen', - colSpan: 2 + colSpan: 2, + whichID: 44, + locationID: 0, } } + static get SCROLLLOCK(): HidInfo { return { HIDcode: 71, category: HIDCategory.Modifier, displayString: 'Scroll Lock', webKeyId: 'ScrollLock', - colSpan: 2 + colSpan: 2, + whichID: 145, + locationID: 0, } } + static get PAUSE(): HidInfo { return { HIDcode: 72, category: HIDCategory.Modifier, displayString: 'Pause', webKeyId: 'Pause', - colSpan: 2 + colSpan: 2, + whichID: 19, + locationID: 0, } } + static get INSERT(): HidInfo { return { HIDcode: 73, category: HIDCategory.Navigation, displayString: 'Insert', webKeyId: 'Insert', - colSpan: 2 + colSpan: 2, + whichID: 45, + locationID: 0, } } + static get HOME(): HidInfo { return { HIDcode: 74, category: HIDCategory.Navigation, displayString: 'Home', webKeyId: 'Home', - colSpan: 2 + colSpan: 2, + whichID: 36, + locationID: 0, } } + static get PAGEUP(): HidInfo { return { HIDcode: 75, category: HIDCategory.Navigation, displayString: 'Page Up', webKeyId: 'PageUp', - colSpan: 2 + colSpan: 2, + whichID: 33, + locationID: 0, } } + static get DELETE(): HidInfo { return { HIDcode: 76, category: HIDCategory.Navigation, displayString: 'Delete', webKeyId: 'Delete', - colSpan: 2 + colSpan: 2, + whichID: 46, + locationID: 0, } } + static get END(): HidInfo { return { HIDcode: 77, category: HIDCategory.Navigation, displayString: 'End', webKeyId: 'End', - colSpan: 2 + colSpan: 2, + whichID: 35, + locationID: 0, } } + static get PAGEDOWN(): HidInfo { return { HIDcode: 78, category: HIDCategory.Navigation, displayString: 'Page Down', webKeyId: 'PageDown', - colSpan: 2 + colSpan: 2, + whichID: 34, + locationID: 0, } } + static get ARROWR(): HidInfo { return { HIDcode: 79, category: HIDCategory.Navigation, displayString: 'Right Arrow', webKeyId: 'ArrowRight', - colSpan: 2 + colSpan: 2, + whichID: 39, + locationID: 0, } } @@ -640,87 +995,116 @@ export class Hid { category: HIDCategory.Navigation, displayString: 'Left Arrow', webKeyId: 'ArrowLeft', - colSpan: 2 + colSpan: 2, + whichID: 37, + locationID: 0, } } + static get ARROWD(): HidInfo { return { HIDcode: 81, category: HIDCategory.Navigation, displayString: 'Down Arrow', webKeyId: 'ArrowDown', - colSpan: 2 + colSpan: 2, + whichID: 40, + locationID: 0, } } + static get ARROWU(): HidInfo { return { HIDcode: 82, category: HIDCategory.Navigation, displayString: 'Up Arrow', webKeyId: 'ArrowUp', - colSpan: 2 + colSpan: 2, + whichID: 38, + locationID: 0, } } + static get NUMLOCK(): HidInfo { return { HIDcode: 83, category: HIDCategory.Numpad, displayString: 'Num Lock', webKeyId: 'NumLock', - colSpan: 2 + colSpan: 2, + whichID: 144, + locationID: 0, } } + static get NUMDIVIDE(): HidInfo { return { HIDcode: 84, category: HIDCategory.Numpad, displayString: 'Numpad Divide', webKeyId: 'NumpadDivide', - colSpan: 2 + colSpan: 2, + whichID: 111, + locationID: 3, } } + static get NUMMULTIPLY(): HidInfo { return { HIDcode: 85, category: HIDCategory.Numpad, displayString: 'Numpad Multiply', webKeyId: 'NumpadMultiply', - colSpan: 2 + colSpan: 2, + whichID: 106, + locationID: 3, } } + static get NUMSUBTRACT(): HidInfo { return { HIDcode: 86, category: HIDCategory.Numpad, displayString: 'Numpad Subtract', webKeyId: 'NumpadSubtract', - colSpan: 2 + colSpan: 2, + whichID: 109, + locationID: 3, } } + static get NUMADD(): HidInfo { return { HIDcode: 87, category: HIDCategory.Numpad, displayString: 'Numpad Add', webKeyId: 'NumpadAdd', - colSpan: 2 + colSpan: 2, + whichID: 107, + locationID: 3, } } + static get NUMENTER(): HidInfo { return { HIDcode: 88, category: HIDCategory.Numpad, displayString: 'Numpad Enter', webKeyId: 'NumpadEnter', - colSpan: 2 + colSpan: 2, + whichID: 13, + locationID: 3, } } + static get NP1(): HidInfo { return { HIDcode: 89, category: HIDCategory.Numpad, displayString: 'NP1', - webKeyId: 'Numpad1' + webKeyId: 'Numpad1', + whichID: 97, + locationID: 3, } } @@ -729,179 +1113,112 @@ export class Hid { HIDcode: 90, category: HIDCategory.Numpad, displayString: 'NP2', - webKeyId: 'Numpad2' + webKeyId: 'Numpad2', + whichID: 98, + locationID: 3, } } + static get NP3(): HidInfo { return { HIDcode: 91, category: HIDCategory.Numpad, displayString: 'NP3', - webKeyId: 'Numpad3' + webKeyId: 'Numpad3', + whichID: 99, + locationID: 3, } } + static get NP4(): HidInfo { return { HIDcode: 92, category: HIDCategory.Numpad, displayString: 'NP4', - webKeyId: 'Numpad4' + webKeyId: 'Numpad4', + whichID: 100, + locationID: 3, } } + static get NP5(): HidInfo { return { HIDcode: 93, category: HIDCategory.Numpad, displayString: 'NP5', - webKeyId: 'Numpad5' + webKeyId: 'Numpad5', + whichID: 101, + locationID: 3, } } + static get NP6(): HidInfo { return { HIDcode: 94, category: HIDCategory.Numpad, displayString: 'NP6', - webKeyId: 'Numpad6' + webKeyId: 'Numpad6', + whichID: 102, + locationID: 3, } } + static get NP7(): HidInfo { return { HIDcode: 95, category: HIDCategory.Numpad, displayString: 'NP7', - webKeyId: 'Numpad7' + webKeyId: 'Numpad7', + whichID: 103, + locationID: 3, } } + static get NP8(): HidInfo { return { HIDcode: 96, category: HIDCategory.Numpad, displayString: 'NP8', - webKeyId: 'Numpad8' + webKeyId: 'Numpad8', + whichID: 104, + locationID: 3, } } + static get NP9(): HidInfo { return { HIDcode: 97, category: HIDCategory.Numpad, displayString: 'NP9', - webKeyId: 'Numpad9' + webKeyId: 'Numpad9', + whichID: 105, + locationID: 3, } } + static get NP0(): HidInfo { return { HIDcode: 98, category: HIDCategory.Numpad, displayString: 'NP0', - webKeyId: 'Numpad0' + webKeyId: 'Numpad0', + whichID: 96, + locationID: 3, } } + static get NUMDECIMAL(): HidInfo { return { HIDcode: 133, category: HIDCategory.Numpad, displayString: 'Numpad Decimal', webKeyId: 'NumpadDecimal', - colSpan: 2 + colSpan: 2, + whichID: 110, + locationID: 3, } } - static get F13(): HidInfo { - return { - HIDcode: 104, - category: HIDCategory.Function, - displayString: 'F13', - webKeyId: 'F13' - } - } - static get F14(): HidInfo { - return { - HIDcode: 105, - category: HIDCategory.Function, - displayString: 'F14', - webKeyId: 'F14' - } - } - static get F15(): HidInfo { - return { - HIDcode: 106, - category: HIDCategory.Function, - displayString: 'F15', - webKeyId: 'F15' - } - } - static get F16(): HidInfo { - return { - HIDcode: 107, - category: HIDCategory.Function, - displayString: 'F16', - webKeyId: 'F16' - } - } - static get F17(): HidInfo { - return { - HIDcode: 108, - category: HIDCategory.Function, - displayString: 'F17', - webKeyId: 'F17' - } - } - static get F18(): HidInfo { - return { - HIDcode: 109, - category: HIDCategory.Function, - displayString: 'F18', - webKeyId: 'F18' - } - } - static get F19(): HidInfo { - return { - HIDcode: 110, - category: HIDCategory.Function, - displayString: 'F19', - webKeyId: 'F19' - } - } - static get F20(): HidInfo { - return { - HIDcode: 111, - category: HIDCategory.Function, - displayString: 'F20', - webKeyId: 'F20' - } - } - static get F21(): HidInfo { - return { - HIDcode: 112, - category: HIDCategory.Function, - displayString: 'F21', - webKeyId: 'F21' - } - } - static get F22(): HidInfo { - return { - HIDcode: 113, - category: HIDCategory.Function, - displayString: 'F22', - webKeyId: 'F22' - } - } - static get F23(): HidInfo { - return { - HIDcode: 114, - category: HIDCategory.Function, - displayString: 'F23', - webKeyId: 'F23' - } - } - static get F24(): HidInfo { - return { - HIDcode: 115, - category: HIDCategory.Function, - displayString: 'F24', - webKeyId: 'F24' - } - } static get CONTROLL(): HidInfo { return { @@ -909,196 +1226,221 @@ export class Hid { category: HIDCategory.Modifier, displayString: 'L-CTRL', webKeyId: 'ControlLeft', - colSpan: 2 + colSpan: 2, + whichID: 17, + locationID: 1, } } + static get SHIFTL(): HidInfo { return { HIDcode: 225, category: HIDCategory.Modifier, displayString: 'L-SHIFT', webKeyId: 'ShiftLeft', - colSpan: 2 + colSpan: 2, + whichID: 16, + locationID: 1, } } + static get ALTL(): HidInfo { return { HIDcode: 226, category: HIDCategory.Modifier, displayString: 'L-ALT', webKeyId: 'AltLeft', - colSpan: 2 + colSpan: 2, + whichID: 18, + locationID: 1, } } + static get METAL(): HidInfo { return { HIDcode: 227, category: HIDCategory.Modifier, displayString: 'L-Win/Super/Command', webKeyId: 'MetaLeft', - colSpan: 4 + colSpan: 4, + whichID: 91, + locationID: 1, } } + static get CONTROLR(): HidInfo { return { HIDcode: 228, category: HIDCategory.Modifier, displayString: 'R-CTRL', webKeyId: 'ControlRight', - colSpan: 2 + colSpan: 2, + whichID: 17, + locationID: 2, } } + static get SHIFTR(): HidInfo { return { HIDcode: 229, category: HIDCategory.Modifier, displayString: 'R-SHIFT', webKeyId: 'ShiftRight', - colSpan: 2 + colSpan: 2, + whichID: 16, + locationID: 2, } } + static get ALTR(): HidInfo { return { HIDcode: 230, category: HIDCategory.Modifier, displayString: 'R-ALT', webKeyId: 'AltRight', - colSpan: 2 + colSpan: 2, + whichID: 18, + locationID: 2, } } + static get METAR(): HidInfo { return { HIDcode: 231, category: HIDCategory.Modifier, displayString: 'R-Win/Super/Command', webKeyId: 'MetaRight', - colSpan: 4 + colSpan: 4, + whichID: 92, + locationID: 2, } } static readonly all: HidInfo[] = [ - Hid.A, - Hid.B, - Hid.C, - Hid.D, - Hid.E, - Hid.F, - Hid.G, - Hid.H, - Hid.I, - Hid.J, - Hid.K, - Hid.L, - Hid.M, - Hid.N, - Hid.O, - Hid.P, - Hid.Q, - Hid.R, - Hid.S, - Hid.T, - Hid.U, - Hid.V, - Hid.W, - Hid.X, - Hid.Y, - Hid.Z, - Hid.N0, - Hid.N1, - Hid.N2, - Hid.N3, - Hid.N4, - Hid.N5, - Hid.N6, - Hid.N7, - Hid.N8, - Hid.N9, - Hid.NP0, - Hid.NP1, - Hid.NP2, - Hid.NP3, - Hid.NP4, - Hid.NP5, - Hid.NP6, - Hid.NP7, - Hid.NP8, - Hid.NP9, - Hid.ENTER, - Hid.ESCAPE, - Hid.BACKSPACE, - Hid.TAB, - Hid.SPACE, - Hid.MINUS, - Hid.EQUAL, - Hid.BRACKETL, - Hid.BRACKETR, - Hid.BACKSLASH, - Hid.SEMICOLON, - Hid.QUOTE, - Hid.BACKQUOTE, - Hid.COMMA, - Hid.PERIOD, - Hid.CAPSLOCK, - Hid.SLASH, - Hid.F1, - Hid.F2, - Hid.F3, - Hid.F4, - Hid.F5, - Hid.F6, - Hid.F7, - Hid.F8, - Hid.F9, - Hid.F10, - Hid.F11, - Hid.F12, - Hid.PRINTSCREEN, - Hid.SCROLLLOCK, - Hid.PAUSE, - Hid.INSERT, - Hid.HOME, - Hid.PAGEUP, - Hid.DELETE, - Hid.END, - Hid.PAGEDOWN, - Hid.ARROWR, - Hid.ARROWL, - Hid.ARROWD, - Hid.ARROWU, - Hid.NUMLOCK, - Hid.NUMDIVIDE, - Hid.NUMMULTIPLY, - Hid.NUMSUBTRACT, - Hid.NUMADD, - Hid.NUMENTER, - Hid.NUMDECIMAL, - Hid.F13, - Hid.F14, - Hid.F15, - Hid.F16, - Hid.F17, - Hid.F18, - Hid.F19, - Hid.F20, - Hid.F21, - Hid.F22, - Hid.F23, - Hid.F24, - Hid.SHIFTL, - Hid.CONTROLL, - Hid.ALTL, - Hid.METAL, - Hid.SHIFTR, - Hid.CONTROLR, - Hid.METAR, - Hid.ALTR + Hid.A,//6510, + Hid.B,//6610, + Hid.C,//6710, + Hid.D,//6810, + Hid.E,//6910, + Hid.F,//7010, + Hid.G,//7110, + Hid.H,//7210, + Hid.I,//7310, + Hid.J,//7410, + Hid.K,//7510, + Hid.L,//7610, + Hid.M,//7710, + Hid.N,//7810, + Hid.O,//7910, + Hid.P,//8010, + Hid.Q,//8110, + Hid.R,//8210, + Hid.S,//8310, + Hid.T,//8410, + Hid.U,//8510, + Hid.V,//8610, + Hid.W,//8710, + Hid.X,//8810, + Hid.Y,//8910, + Hid.Z,//9010, + Hid.N0,//4810, + Hid.N1,//4910, + Hid.N2,//5010, + Hid.N3,//5110, + Hid.N4,//5210, + Hid.N5,//5310, + Hid.N6,//5410, + Hid.N7,//5510, + Hid.N8,//5610, + Hid.N9,//5710, + Hid.NP0,//9610, + Hid.NP1,//9710, + Hid.NP2,//9810, + Hid.NP3,//9910, + Hid.NP4,//10010, + Hid.NP5,//10110, + Hid.NP6,//10210, + Hid.NP7,//10310, + Hid.NP8,//10410, + Hid.NP9,//10510, + Hid.ENTER,//1310, + Hid.ESCAPE,//2710, + Hid.BACKSPACE,//810, + Hid.TAB,//910, + Hid.SPACE,//3210, + Hid.MINUS,//18910, + Hid.EQUAL,//18710, + Hid.BRACKETL,//21910, + Hid.BRACKETR,//22110, + Hid.BACKSLASH,//22010, + Hid.SEMICOLON,//18610, + Hid.QUOTE,//22210, + Hid.BACKQUOTE,//19210, + Hid.COMMA,//7710, + Hid.PERIOD,//18810, + Hid.CAPSLOCK,//2010, + Hid.SLASH,//19110, + Hid.F1,//11210, + Hid.F2,//11310, + Hid.F3,//11410, + Hid.F4,//11510, + Hid.F5,//11610, + Hid.F6,//11710, + Hid.F7,//11810, + Hid.F8,//11910, + Hid.F9,//12010, + Hid.F10,//12110, + Hid.F11,//12210, + Hid.F12,//12310, + Hid.F13,//12410, + Hid.F14,//12510, + Hid.F15,//12610, + Hid.F16,//12710, + Hid.F17,//12810, + Hid.F18,//12910, + Hid.F19,//13010, + Hid.F20,//13110, + Hid.F21,//13210, + Hid.F22,//13310, + Hid.F23,//13410, + Hid.F24,//13510, + Hid.PRINTSCREEN,//4410, + Hid.SCROLLLOCK,//14510, + Hid.PAUSE,//1910, + Hid.INSERT,//4510, + Hid.HOME,//3610, + Hid.PAGEUP,//3310, + Hid.DELETE,//4610, + Hid.END,//3510, + Hid.PAGEDOWN,//3410, + Hid.ARROWR,//3910, + Hid.ARROWL,//3710, + Hid.ARROWD,//4010, + Hid.ARROWU,//3810, + Hid.NUMLOCK,//14410, + Hid.NUMDIVIDE,//11110, + Hid.NUMMULTIPLY,//10610, + Hid.NUMSUBTRACT,//10910, + Hid.NUMADD,//10710, + Hid.NUMENTER,//1310, + Hid.NUMDECIMAL,//11010, +// + Hid.SHIFTL,//1611, + Hid.CONTROLL,//1711, + Hid.ALTL,//1811, + Hid.METAL,//9111, + Hid.SHIFTR,//1612, + Hid.CONTROLR,//1712, + Hid.METAR,//9212, + Hid.ALTR//1812, ] } -export const webCodeHIDLookup = new Map( +export const webCodeLocationHIDLookup= new Map( + // This creates a unique ID: whichID, separated by an extra '1' digit, then locationID. Hid.all - .filter((hid) => hid.webKeyId !== undefined) - .map((hid) => [hid.webKeyId!, hid]) + .filter((hid) => hid.whichID !== undefined) + .map((hid) => [hid.whichID!.toString() + '1' + hid.locationID!.toString(), hid]) ) export const HIDLookup = new Map( Hid.all diff --git a/src/constants/MacroSettingsMap.ts b/src/constants/MacroSettingsMap.ts new file mode 100644 index 00000000..3ef77229 --- /dev/null +++ b/src/constants/MacroSettingsMap.ts @@ -0,0 +1,36 @@ +import { SettingsCategory } from './enums' + +export interface MacroSettingInfo { + pageIndex: number + category: SettingsCategory + displayString: string +} + +export class MacroSettingsGroup { + static get Notifications(): MacroSettingInfo { + return { + pageIndex: 0, + category: SettingsCategory.Macro, + displayString: 'Notifications' + } + } + static get SequenceDefaults(): MacroSettingInfo { + return { + pageIndex: 1, + category: SettingsCategory.Macro, + displayString: 'Sequence' + } + } + + + static readonly all: MacroSettingInfo[] = [ + MacroSettingsGroup.Notifications, + MacroSettingsGroup.SequenceDefaults, + ] +} + +export const macroSettingInfoLookup = new Map( + MacroSettingsGroup.all + .filter((setting) => setting.pageIndex !== undefined) + .map((setting) => [setting.pageIndex!, setting]) +) diff --git a/src/constants/emojiTypes.d.ts b/src/constants/emojiTypes.d.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/constants/enums.ts b/src/constants/enums.ts index 63e41b75..77efb065 100644 --- a/src/constants/enums.ts +++ b/src/constants/enums.ts @@ -34,6 +34,7 @@ export enum MouseButton { export enum SettingsCategory { General, + Macro, Other } diff --git a/src/constants/utils.ts b/src/constants/utils.ts index d4f7e531..853c396c 100644 --- a/src/constants/utils.ts +++ b/src/constants/utils.ts @@ -11,6 +11,7 @@ import { import { HIDLookup } from './HIDmap' import { mouseEnumLookup } from './MouseMap' import { sysEventLookup } from './SystemEventMap' +import { scrollbarRadiusStandard } from '../theme/config' export const updateBackendConfig = ( collections: Collection[] @@ -135,15 +136,15 @@ export const scrollbarStylesLight = { }, '&::-webkit-scrollbar-track': { background: '#D5DAE2', - borderRadius: '8px' + borderRadius: scrollbarRadiusStandard }, '&::-webkit-scrollbar-thumb': { background: '#9EAABD', - borderRadius: '8px' + borderRadius: scrollbarRadiusStandard }, '&::-webkit-scrollbar-thumb:hover': { background: '#8392AA', - borderRadius: '8px' + borderRadius: scrollbarRadiusStandard } } @@ -153,14 +154,18 @@ export const scrollbarsStylesDark = { }, '&::-webkit-scrollbar-track': { background: '#27272a', - borderRadius: '8px' + borderRadius: scrollbarRadiusStandard }, '&::-webkit-scrollbar-thumb': { background: '#3f3f46', - borderRadius: '8px' + borderRadius: scrollbarRadiusStandard }, '&::-webkit-scrollbar-thumb:hover': { background: '#52525b', - borderRadius: '8px' + borderRadius: scrollbarRadiusStandard } } + +export const DefaultMacroDelay = '20' +export const DefaultDelayDelay = '20' +export const DefaultMouseDelay = '20' diff --git a/src/contexts/applicationContext.tsx b/src/contexts/applicationContext.tsx index 4d578dc0..5fcab8a4 100644 --- a/src/contexts/applicationContext.tsx +++ b/src/contexts/applicationContext.tsx @@ -1,16 +1,16 @@ import { + createContext, ReactNode, - useState, + SetStateAction, + useCallback, + useContext, useEffect, useMemo, - useContext, - createContext, - useCallback, - SetStateAction + useState } from 'react' import { useToast } from '@chakra-ui/react' import { ViewState } from '../constants/enums' -import { AppState, Collection, MacroData, CurrentSelection } from '../types' +import { AppState, Collection, CurrentSelection, MacroData } from '../types' import { updateBackendConfig } from '../constants/utils' import { error } from 'tauri-plugin-log' import { invoke } from '@tauri-apps/api' @@ -35,6 +35,8 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { const [viewState, setViewState] = useState(ViewState.Overview) const [initComplete, setInitComplete] = useState(false) const [collections, setCollections] = useState([]) + const [searchValue, setSearchValue] = useState('') + const [isMacroOutputEnabled, setIsMacroOutputEnabled] = useState(true) const [selection, setSelection] = useState({ collectionIndex: 0, macroIndex: undefined @@ -105,6 +107,20 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { [setSelection] ) + const changeSearchValue = useCallback( + (term: string) => { + setSearchValue(term) + }, + [setSearchValue] + ) + + const changeMacroOutputEnabled = useCallback( + (value: boolean) => { + setIsMacroOutputEnabled(!value) + }, + [setIsMacroOutputEnabled] + ) + const onCollectionAdd = useCallback( (newCollection: Collection) => { let newIndex = 0 @@ -152,7 +168,12 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { onCollectionAdd, onCollectionUpdate, changeSelectedCollectionIndex, - changeSelectedMacroIndex + changeSelectedMacroIndex, + searchValue, + setSearchValue, + isMacroOutputEnabled, + changeMacroOutputEnabled, + changeSearchValue }), [ viewState, @@ -164,7 +185,12 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { onCollectionAdd, onCollectionUpdate, changeSelectedCollectionIndex, - changeSelectedMacroIndex + changeSelectedMacroIndex, + searchValue, + setSearchValue, + isMacroOutputEnabled, + changeMacroOutputEnabled, + changeSearchValue ] ) diff --git a/src/contexts/macroContext.tsx b/src/contexts/macroContext.tsx index 0f23abaf..c7856be5 100644 --- a/src/contexts/macroContext.tsx +++ b/src/contexts/macroContext.tsx @@ -1,21 +1,21 @@ import { - ReactNode, - useState, - useMemo, - useContext, createContext, + ReactNode, useCallback, - useEffect + useContext, + useEffect, + useMemo, + useState } from 'react' import { MacroType, ViewState } from '../constants/enums' import { checkIfElementIsEditable } from '../constants/utils' import { - MacroState, ActionEventType, - Macro, - TriggerEventType, KeyPressEventAction, - MouseEventAction + Macro, + MacroState, + MouseEventAction, + TriggerEventType } from '../types' import { useApplicationContext } from './applicationContext' import { useSelectedCollection, useSelectedMacro } from './selectors' @@ -139,7 +139,7 @@ function MacroProvider({ children }: MacroProviderProps) { macro.trigger.data.length === 0) || (macro.trigger.type === 'MouseEvent' && macro.trigger.data === undefined) || - sequence.length === 0 + sequence.length === 0 ) { return false } diff --git a/src/contexts/settingsContext.tsx b/src/contexts/settingsContext.tsx index 7dbe8ad7..51416f32 100644 --- a/src/contexts/settingsContext.tsx +++ b/src/contexts/settingsContext.tsx @@ -11,7 +11,7 @@ import { } from 'react' import { ApplicationConfig, SettingsState } from '../types' import { updateSettings } from '../constants/utils' -import { error } from "tauri-plugin-log" +import { error } from 'tauri-plugin-log' type SettingsProviderProps = { children: ReactNode } @@ -25,7 +25,7 @@ function useSettingsContext() { return context } -function SettingsProvider({children}: SettingsProviderProps) { +function SettingsProvider({ children }: SettingsProviderProps) { const [initComplete, setInitComplete] = useState(false) const [config, setConfig] = useState({ AutoStart: false, @@ -38,7 +38,7 @@ function SettingsProvider({children}: SettingsProviderProps) { }) const toast = useToast() - const {setColorMode} = useColorMode() + const { setColorMode } = useColorMode() useEffect(() => { invoke('get_config') @@ -50,8 +50,7 @@ function SettingsProvider({children}: SettingsProviderProps) { error(e) toast({ title: 'Error loading settings', - description: - `Unable to load settings: ${e}. Please re-open the app. If that does not work, please contact us on Discord.`, + description: `Unable to load settings: ${e}. Please re-open the app. If that does not work, please contact us on Discord.`, status: 'error', duration: 10000, isClosable: true @@ -65,8 +64,7 @@ function SettingsProvider({children}: SettingsProviderProps) { error(e) toast({ title: 'Error updating settings', - description: - `Unable to update settings: ${e}. Please re-open the app. If that does not work, please contact us on Discord.`, + description: `Unable to update settings: ${e}. Please re-open the app. If that does not work, please contact us on Discord.`, status: 'error', duration: 10000, isClosable: true @@ -76,38 +74,38 @@ function SettingsProvider({children}: SettingsProviderProps) { const updateLaunchOnStartup = useCallback((value: boolean) => { setConfig((config) => { - return {...config, AutoStart: value} + return { ...config, AutoStart: value } }) }, []) const updateMinimizeOnStartup = useCallback((value: boolean) => { setConfig((config) => { - return {...config, MinimizeAtLaunch: value} + return { ...config, MinimizeAtLaunch: value } }) }, []) const updateMinimizeOnClose = useCallback((value: boolean) => { setConfig((config) => { - return {...config, MinimizeToTray: value} + return { ...config, MinimizeToTray: value } }) }, []) const updateAutoAddDelay = useCallback((value: boolean) => { setConfig((config) => { - return {...config, AutoAddDelay: value} + return { ...config, AutoAddDelay: value } }) }, []) const updateDefaultDelayVal = useCallback((value: string) => { setConfig((config) => { - return {...config, DefaultDelayValue: Number(value)} + return { ...config, DefaultDelayValue: Number(value) } }) }, []) const updateAutoSelectElement = useCallback((value: boolean) => { setConfig((config) => { - return {...config, AutoSelectElement: value} + return { ...config, AutoSelectElement: value } }) }, []) const updateTheme = useCallback( (value: string) => { setConfig((config) => { - return {...config, Theme: value} + return { ...config, Theme: value } }) setColorMode(value) }, diff --git a/src/hooks/useRecordingSequence.ts b/src/hooks/useRecordingSequence.ts index e13b5df4..b03d8de9 100644 --- a/src/hooks/useRecordingSequence.ts +++ b/src/hooks/useRecordingSequence.ts @@ -1,9 +1,10 @@ import { useCallback, useEffect, useState } from 'react' -import { KeyType } from '../constants/enums' -import { webCodeHIDLookup } from '../constants/HIDmap' +import { KeyType, MouseButton } from '../constants/enums' +import { webCodeLocationHIDLookup } from '../constants/HIDmap' import { webButtonLookup } from '../constants/MouseMap' import { Keypress, MousePressAction } from '../types' import { error } from 'tauri-plugin-log' +import { useToast } from '@chakra-ui/react' import { invoke } from '@tauri-apps/api' export default function useRecordingSequence( @@ -21,6 +22,9 @@ export default function useRecordingSequence( const [prevItem, setPrevItem] = useState< Keypress | MousePressAction | undefined >(undefined) + + const toast = useToast() + const [eventType, setEventType] = useState<'Down' | 'Up'>('Down') const [prevEventType, setPrevEventType] = useState<'Down' | 'Up'>('Down') @@ -44,8 +48,9 @@ export default function useRecordingSequence( if (event.repeat) { return } + const HIDIdentifier = event.which + '1' + event.location - const HIDcode = webCodeHIDLookup.get(event.code)?.HIDcode + const HIDcode = webCodeLocationHIDLookup.get(HIDIdentifier)?.HIDcode if (HIDcode === undefined) { return } @@ -97,6 +102,19 @@ export default function useRecordingSequence( return } + // We want to stop the recording when the left mouse button is pressed. Currently, always stops the recording + if (enumVal === MouseButton.Left) { + toast({ + title: `Sequence recording stopped`, + description: `To record Mouse Button 1, insert the button from the left panel.`, + status: 'info', + duration: 4000, + isClosable: true + }) + setRecording(false) + return + } + const timeDiff = Math.round(event.timeStamp - prevTimestamp) setPrevTimestamp(event.timeStamp) setPrevEventType(eventType) diff --git a/src/hooks/useRecordingTrigger.ts b/src/hooks/useRecordingTrigger.ts index 41dee3da..3c8bd964 100644 --- a/src/hooks/useRecordingTrigger.ts +++ b/src/hooks/useRecordingTrigger.ts @@ -1,12 +1,9 @@ import { useToast } from '@chakra-ui/react' import { useCallback, useEffect, useState } from 'react' import { MouseButton } from '../constants/enums' -import { webCodeHIDLookup } from '../constants/HIDmap' +import { webCodeLocationHIDLookup } from '../constants/HIDmap' import { webButtonLookup } from '../constants/MouseMap' -import { - checkIfModifierKey, - checkIfKeyShouldContinueTriggerRecording -} from '../constants/utils' +import { checkIfKeyShouldContinueTriggerRecording } from '../constants/utils' import { error } from 'tauri-plugin-log' import { invoke } from '@tauri-apps/api' @@ -43,7 +40,11 @@ export default function useRecordingTrigger( event.preventDefault() event.stopPropagation() - const HIDcode = webCodeHIDLookup.get(event.code)?.HIDcode + // Gets the ID according to the whichID, adds a separator extra digit '1' and then adds location to the end. + const HIDIdentifier = event.which + '1' + event.location + + const HIDcode = webCodeLocationHIDLookup.get(HIDIdentifier)?.HIDcode + if (HIDcode === undefined) { return } diff --git a/src/main.tsx b/src/main.tsx index e44ec03a..2ae49330 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,16 +1,14 @@ import ReactDOM from 'react-dom/client' import App from './App' import { ChakraProvider, ColorModeScript } from '@chakra-ui/react' -import { theme } from './theme/index' +import { theme } from './theme' import { ApplicationProvider } from './contexts/applicationContext' import { SettingsProvider } from './contexts/settingsContext' import '@fontsource/montserrat/800.css' -import { attachConsole } from 'tauri-plugin-log'; - - -// with LogTarget::Webview enabled this function will print logs to the browser console -attachConsole(); +import { attachConsole } from 'tauri-plugin-log' +// with LogTarget::Webview enabled, this function will print logs to the browser console +attachConsole().then(() => {}) ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( diff --git a/src/theme/components/button.ts b/src/theme/components/button.ts index 4fa83aad..9906e167 100644 --- a/src/theme/components/button.ts +++ b/src/theme/components/button.ts @@ -36,6 +36,25 @@ export const Button = defineStyleConfig({ opacity: 0.5 } }), + brandTertiary: (props: StyleFunctionProps) => ({ + bg: mode('primary-light.100', 'primary-dark.800')(props), + transition: 'ease-out 150ms', + _hover: { + bg: mode('primary-light.200', 'primary-dark.700')(props), + _disabled: { + bg: mode('primary-light.100', 'primary-dark.800')(props), + opacity: 0.5 + } + }, + _active: { + bg: mode('primary-accent.400', 'primary-accent.400')(props), + color: 'bg-dark' + }, + _disabled: { + bg: mode('primary-accent.300', 'primary-accent.500')(props), + opacity: 0.5 + } + }), brandAccent: (props: StyleFunctionProps) => ({ bg: mode('primary-accent.300', 'primary-accent.500')(props), color: 'bg-dark', @@ -71,18 +90,22 @@ export const Button = defineStyleConfig({ } }), yellowGradient: () => ({ - bgGradient: 'linear(to-b, primary-accent.300, primary-accent.500)', + // bgGradient: 'linear(to-b, primary-accent.300, primary-accent.500)', + bg: 'primary-accent.500', color: 'bg-dark', _hover: { - bgGradient: 'linear(to-b, primary-accent.200, primary-accent.400)', + // bgGradient: 'linear(to-b, primary-accent.200, primary-accent.400)', + bg: 'primary-accent.200', _disabled: { - opacity: 0.5, - bgGradient: 'linear(to-b, primary-accent.300, primary-accent.500)' + // bgGradient: 'linear(to-b, primary-accent.300, primary-accent.500)' + bg: 'primary-accent.500', + opacity: 0.5 } }, _disabled: { - opacity: 0.5, - bgGradient: 'linear(to-b, primary-accent.300, primary-accent.500)' + // bgGradient: 'linear(to-b, primary-accent.300, primary-accent.500)' + bg: 'primary-accent.500', + opacity: 0.5 } }), brandGhost: (props: StyleFunctionProps) => ({ diff --git a/src/theme/components/tooltip.ts b/src/theme/components/tooltip.ts index 9baaa658..8cf9f67d 100644 --- a/src/theme/components/tooltip.ts +++ b/src/theme/components/tooltip.ts @@ -1,6 +1,7 @@ import type { StyleFunctionProps } from '@chakra-ui/styled-system' import { cssVar, defineStyleConfig } from '@chakra-ui/react' import { mode } from '@chakra-ui/theme-tools' +import { borderRadiusStandard } from "../config"; const $arrowBg = cssVar('popper-arrow-bg') @@ -14,7 +15,7 @@ export const Tooltip = defineStyleConfig({ 'colors.primary-light.800', 'colors.primary-dark.700' )(props), - borderRadius: 'md', + borderRadiusStandard }), brandSecondary: (props: StyleFunctionProps) => ({ bg: mode('primary-light.800', 'primary-dark.900')(props), @@ -26,7 +27,7 @@ export const Tooltip = defineStyleConfig({ )(props), border: '1px solid', borderColor: mode('primary-light.500', 'primary-dark.600')(props), - borderRadius: 'md', + borderRadiusStandard }), } }) diff --git a/src/theme/config.ts b/src/theme/config.ts index 1a69a572..a3f8b84f 100644 --- a/src/theme/config.ts +++ b/src/theme/config.ts @@ -1,6 +1,10 @@ -import { ThemeConfig } from "@chakra-ui/react"; +import { ThemeConfig } from '@chakra-ui/react' export const config: ThemeConfig = { initialColorMode: 'light', useSystemColorMode: false } + +export const borderRadiusStandard: string = '6px' + +export const scrollbarRadiusStandard: string = '8px' diff --git a/src/theme/shadows.ts b/src/theme/shadows.ts index f27938ac..b37d0750 100644 --- a/src/theme/shadows.ts +++ b/src/theme/shadows.ts @@ -1,8 +1,8 @@ export const shadows = { xs: '0px 0px 4px 1px rgba(0, 0, 0, 0.16)', - 'white-xs': '0px 0px 4px 1px rgba(125, 125, 125, 0.16)', + 'white-xs': '', sm: '0px 2px 4px rgba(0, 0, 0, 0.16)', - 'white-sm': '0px 2px 4px rgba(125, 125, 125, 0.16)', + 'white-sm': '', md: '0px 4px 8px rgba(0, 0, 0, 0.16)', - 'white-md': '0px 4px 8px rgba(125, 125, 125, 0.16)' + 'white-md': '' } diff --git a/src/types.d.ts b/src/types.d.ts index 3b0c5c06..8621b656 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -22,6 +22,10 @@ export type AppState = { ) => void changeSelectedCollectionIndex: (index: number) => void changeSelectedMacroIndex: (index: number | undefined) => void + searchValue: string + isMacroOutputEnabled: boolean + changeMacroOutputEnabled: (value: boolean) => void + setSearchValue: (term: string) => void } export type MacroState = { diff --git a/src/views/MacroSettingsModal.tsx b/src/views/MacroSettingsModal.tsx new file mode 100644 index 00000000..c3031171 --- /dev/null +++ b/src/views/MacroSettingsModal.tsx @@ -0,0 +1,108 @@ +import { + Divider, + Flex, + HStack, + Modal, + ModalBody, + ModalCloseButton, + ModalContent, + ModalOverlay, + Text, + useColorModeValue, + VStack +} from '@chakra-ui/react' +import { useEffect, useMemo, useState } from 'react' + +import useScrollbarStyles from '../hooks/useScrollbarStyles' +import useMainBgColour from '../hooks/useMainBgColour' +import NotificationMacroSettingsPanel from '../components/macrosettings/NotificationMacroSettingsPanel' +import DefaultMacroSettings from '../components/macrosettings/DefaultMacroSettings' +import MacroSettingsLeftPanel from '../components/macrosettings/MacroSettingsLeftPanel' +import { macroSettingInfoLookup } from '../constants/MacroSettingsMap' + +type Props = { + isOpen: boolean + onClose: () => void +} + +export default function MacroSettingsModal({ isOpen, onClose }: Props) { + const [pageIndex, setPageIndex] = useState(0) + const rightPanelBg = useMainBgColour() + const leftPanelBg = useColorModeValue('primary-light.50', 'bg-dark') + + useEffect(() => { + setPageIndex(0) + }, [isOpen]) + + const SelectedPageComponent = useMemo(() => { + switch (pageIndex) { + case 0: + return + case 1: + return + default: + return <> + } + }, [pageIndex]) + + return ( + + + + + + + + + + {macroSettingInfoLookup.get(pageIndex)?.displayString + + ' Settings'} + + + {SelectedPageComponent} + + + + + + + + ) +} diff --git a/src/views/Macroview.tsx b/src/views/Macroview.tsx index 59883bde..d008b6f3 100644 --- a/src/views/Macroview.tsx +++ b/src/views/Macroview.tsx @@ -1,4 +1,4 @@ -import { VStack, HStack } from '@chakra-ui/react' +import { HStack, VStack } from '@chakra-ui/react' import EditArea from '../components/macroview/rightPanel/EditArea' import SelectElementArea from '../components/macroview/leftPanel/SelectElementArea' import SequencingArea from '../components/macroview/centerPanel/SequencingArea' @@ -8,10 +8,13 @@ import { useEffect } from 'react' type Props = { isEditing: boolean - onOpenSettingsModal: () => void + onOpenMacroSettingsModal: () => void } -export default function Macroview({ isEditing, onOpenSettingsModal }: Props) { +export default function Macroview({ + isEditing, + onOpenMacroSettingsModal +}: Props) { const { changeIsUpdatingMacro } = useMacroContext() useEffect(() => { @@ -32,7 +35,7 @@ export default function Macroview({ isEditing, onOpenSettingsModal }: Props) { > {/** Bottom Panels */} - + diff --git a/src/views/Overview.tsx b/src/views/Overview.tsx index 76cc6109..3c4d03c0 100644 --- a/src/views/Overview.tsx +++ b/src/views/Overview.tsx @@ -7,12 +7,9 @@ type Props = { } export default function Overview({ onOpenSettingsModal }: Props) { - return ( - + ) diff --git a/src/views/SettingsModal.tsx b/src/views/SettingsModal.tsx index 672afdfc..3f95523c 100644 --- a/src/views/SettingsModal.tsx +++ b/src/views/SettingsModal.tsx @@ -1,14 +1,14 @@ import { + Flex, + HStack, Modal, - ModalOverlay, - ModalContent, ModalBody, ModalCloseButton, - HStack, - VStack, + ModalContent, + ModalOverlay, Text, useColorModeValue, - Flex + VStack } from '@chakra-ui/react' import { useEffect, useMemo, useState } from 'react' import { settingInfoLookup } from '../constants/SettingsMap' diff --git a/wooting-macro-backend/src/lib.rs b/wooting-macro-backend/src/lib.rs index 2c68d720..099e081e 100644 --- a/wooting-macro-backend/src/lib.rs +++ b/wooting-macro-backend/src/lib.rs @@ -121,7 +121,7 @@ impl Macro { async fn execute(&self, send_channel: UnboundedSender) -> Result<()> { for action in &self.sequence { match action { - ActionEventType::KeyPressEventAction { data } => match data.key_type { + ActionEventType::KeyPressEventAction { data } => match data.keytype { key_press::KeyType::Down => { // One key press down send_channel @@ -304,6 +304,7 @@ fn keypress_executor_sender(mut rchan_execute: UnboundedReceiver *event, None => { error!("Failed to receive an event!"); + thread::sleep(time::Duration::from_millis(200)); continue; } }; diff --git a/yarn.lock b/yarn.lock index 675eab0f..424c3b78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2595,15 +2595,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.14.0" +"@typescript-eslint/eslint-plugin@npm:^6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.15.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.14.0 - "@typescript-eslint/type-utils": 6.14.0 - "@typescript-eslint/utils": 6.14.0 - "@typescript-eslint/visitor-keys": 6.14.0 + "@typescript-eslint/scope-manager": 6.15.0 + "@typescript-eslint/type-utils": 6.15.0 + "@typescript-eslint/utils": 6.15.0 + "@typescript-eslint/visitor-keys": 6.15.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -2616,44 +2616,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: ec688fd71b21576bfe0e4176889fddf3c13d8b07792461b84017d689ed11a9bffbf4d2ab61e9bdb254e43d2c1e159d5c2fc21bdfa6a6c2d64f9e1956a668fbe8 + checksum: f7ae7e01f9d1bd6150598ea1a191348a7ba08b25f146d3bc3b19d434bdb8071cf831577a31c62935e67716addb37b0eda02f4a47bfefc1bb5458843256ec0933 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/parser@npm:6.14.0" +"@typescript-eslint/parser@npm:^6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/parser@npm:6.15.0" dependencies: - "@typescript-eslint/scope-manager": 6.14.0 - "@typescript-eslint/types": 6.14.0 - "@typescript-eslint/typescript-estree": 6.14.0 - "@typescript-eslint/visitor-keys": 6.14.0 + "@typescript-eslint/scope-manager": 6.15.0 + "@typescript-eslint/types": 6.15.0 + "@typescript-eslint/typescript-estree": 6.15.0 + "@typescript-eslint/visitor-keys": 6.15.0 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 5fbe8d7431654c14ba6c9782d3728026ad5c90e02c9c4319f45df972e653cf5c15ba320dce70cdffa9fb7ce4c4263c37585e7bc1c909d1252d0a599880963063 + checksum: 6f71b48f208e4d56025cbe3a5b287fe9c31484469e8b2a14a0ab5453cb56223a3c099beb70d298e0ce80de8a23e90aec65865ff8e939233cd0f1c3ffba12f3db languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/scope-manager@npm:6.14.0" +"@typescript-eslint/scope-manager@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/scope-manager@npm:6.15.0" dependencies: - "@typescript-eslint/types": 6.14.0 - "@typescript-eslint/visitor-keys": 6.14.0 - checksum: 0b577d42db925426a9838fe61703c226e18b697374fbe20cf9b93ba30fe58bf4a7f7f42491a4d24b7f3cc12d9a189fe3524c0e9b7708727e710d95b908250a14 + "@typescript-eslint/types": 6.15.0 + "@typescript-eslint/visitor-keys": 6.15.0 + checksum: 12316149aae3ad5c7e3411ed7da7fb7d9324df83482d64a93eecbd11063451660cea0fa42ceb026984df7974d770d5f7bc6c77c33e95bc0db0c44e4413f8b756 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/type-utils@npm:6.14.0" +"@typescript-eslint/type-utils@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/type-utils@npm:6.15.0" dependencies: - "@typescript-eslint/typescript-estree": 6.14.0 - "@typescript-eslint/utils": 6.14.0 + "@typescript-eslint/typescript-estree": 6.15.0 + "@typescript-eslint/utils": 6.15.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -2661,23 +2661,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 09988f25279598840673c41ba44b03756f2dfb31284ab72af97c170711a0f31e5c53d6b120aa83f31438565e82aae1a1ca4d1ed0de4890654dd6a6a33d88202c + checksum: bd582fc6cca3b9048200fd30a042131cbb50e800acca1d31618ca4a9d9b6bc29fefd6920f7622a546c07a4d1a1c73745acfa09890e732a8a124731c3d5a821d1 languageName: node linkType: hard -"@typescript-eslint/types@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/types@npm:6.14.0" - checksum: 624e6c5227f596dcc9757348d09c5a09b846a62938b8b4409614cf8108013b64ed8b270c32e87ea8890dd09ed896b82e92872c3574dbf07dcda11a168d69dd1f +"@typescript-eslint/types@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/types@npm:6.15.0" + checksum: 604cf287a339a55c9a82a6e301cf353bb256427b6e29b12ee8901b37d34581761a0dac3ae7e9d78925854e260e5d690ec472b54ca972339820f3db8512864875 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.14.0" +"@typescript-eslint/typescript-estree@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.15.0" dependencies: - "@typescript-eslint/types": 6.14.0 - "@typescript-eslint/visitor-keys": 6.14.0 + "@typescript-eslint/types": 6.15.0 + "@typescript-eslint/visitor-keys": 6.15.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -2686,34 +2686,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 495d7616463685bfd8138ffa9fbc0a7f9130ff8a3f6f85775960b4f0a3fdc259ae53b104cdfe562b60310860b5a6c8387307790734555084aa087e3bb9c28a69 + checksum: fbd11a5acaee3166174fad4cc78cff2ad646411a60ca14e5a50598373302c7bedd76d073ed385b002eb3d6d2a44aea2dd5c74aa65fbef8441a2e079064e67640 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/utils@npm:6.14.0" +"@typescript-eslint/utils@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/utils@npm:6.15.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.14.0 - "@typescript-eslint/types": 6.14.0 - "@typescript-eslint/typescript-estree": 6.14.0 + "@typescript-eslint/scope-manager": 6.15.0 + "@typescript-eslint/types": 6.15.0 + "@typescript-eslint/typescript-estree": 6.15.0 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 36e8501cb85647947189f31017c36d6f6ac7ef0399fa0e18eb64f1b83e00f1e8ace1d9ac5015ef4d9c1b820179f1def8d61d7ea9e5d61433eb848cf5c49dc8b0 + checksum: 02aefaeb1539e0a5e5cbbc4d4f92ce505f433b7f8403cb10522c0a6965572a0ea94d32d487113fa64a33967ae7d0de5a62ffea83721100596e54c5ef04288cbe languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.14.0" +"@typescript-eslint/visitor-keys@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.15.0" dependencies: - "@typescript-eslint/types": 6.14.0 + "@typescript-eslint/types": 6.15.0 eslint-visitor-keys: ^3.4.1 - checksum: fc593c4e94d5739be7bd88e42313a301bc9806fad758b6a0a1bafd296ff41522be602caf4976beec84e363b0f56585bb98df3c157f70de984de721798501fd8a + checksum: 1bccc4d4eea6fd10a4ab1daa9e1aaaf790d5f4dd5d02c6e3eb6e83414c086d8d5f14ac44c9fb587b2f7e0dad3e7aeae603158d89dec9ae89652024331bb84fea languageName: node linkType: hard @@ -6458,8 +6458,8 @@ __metadata: "@types/prettier": ^3.0.0 "@types/react": ^18.2.45 "@types/react-dom": ^18.2.18 - "@typescript-eslint/eslint-plugin": ^6.14.0 - "@typescript-eslint/parser": ^6.14.0 + "@typescript-eslint/eslint-plugin": ^6.15.0 + "@typescript-eslint/parser": ^6.15.0 "@vitejs/plugin-react": ^4.2.1 emoji-mart: ^5.5.2 eslint: ^8.56.0 From 54d33bd54f8cca0cc89cc9139f75b10300e7351d Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Tue, 19 Dec 2023 17:02:32 +0100 Subject: [PATCH 11/86] Added patch notes --- src/components/settings/PatchNotesPanel.tsx | 44 +++++++-------------- 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/src/components/settings/PatchNotesPanel.tsx b/src/components/settings/PatchNotesPanel.tsx index 8d0d3b4b..1cf1080d 100644 --- a/src/components/settings/PatchNotesPanel.tsx +++ b/src/components/settings/PatchNotesPanel.tsx @@ -17,7 +17,7 @@ export default function PatchNotesPanel() { return ( - January 16th, 2023 + December 21st, 2023, v. 1.1 @@ -36,12 +36,9 @@ export default function PatchNotesPanel() { fontFamily="Montserrat" textColor={highlightedTextColour} > - Perform keystrokes, open applications, folders, and websites, - paste text with emojis, and more.  + New UI.  - Create simple macros that can be triggered by specific keyboard keys - or a single mouse button. You can also optionally set a name and an - icon, and/or delete it later. + New, smoother UI with animations and nicer colors. - Create groups of macros that can be easily toggled on/off as a - group.  + Macro search.  - Collections allow you to easily organize and manage your macros. - Group by game, task, etc. You can optionally set a name and an icon - for the collection, and/or delete it later. + You can now search your macros from the main window across all + collections. - Adjust how the application behaves.  + Security updates and bugfixes.  - You can adjust some window settings, as well as some functionality - settings that affect your experience creating a macro. + We made sure the app is more secure than ever. Now you can also use + any layout for a trigger key. - Blind your eyes, or don't.  - - You can select between one of two themes, light and dark.  - - Dark mode is better, definitely not biased... + Gaming.  + Macros now work in games! Don't use them in multiplayer games + though, for your own sake.  - Enable and disable individual macros, collections, or the entire - app without closing it.  - - If you find yourself in a situation where you'd like to turn off one - or more macros, you have a breadth of options to choose from. - - *Be aware that disabling Macro Output (aka the entire app), will - not be enough if you plan on using the app and playing certain - games. For peace of mind, when playing competitive games, it is - recommended that you close the app. + Keycombos.  + Key combos should now work properly, so you can now do the + CTRL+SHIFT+KEY combos you always wanted. From b38ae03e7fb431ed4f5cbd7198f6f799590aed3c Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Tue, 19 Dec 2023 17:13:08 +0100 Subject: [PATCH 12/86] Update version numbers --- package.json | 20 +- src-tauri/Cargo.lock | 382 +++++++++++------- src-tauri/Cargo.toml | 11 +- src-tauri/tauri.conf.json | 2 +- .../rightPanel/editForms/DelayForm.tsx | 2 +- wooting-macro-backend/Cargo.lock | 370 ++++++++++------- wooting-macro-backend/Cargo.toml | 6 +- yarn.lock | 279 +++++++------ 8 files changed, 629 insertions(+), 443 deletions(-) diff --git a/package.json b/package.json index d0cf0792..115cbe94 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "wooting-macros", "private": true, - "version": "1.0.2", + "version": "1.1.0-0", "type": "module", "scripts": { "dev": "vite", @@ -20,13 +20,13 @@ "@dnd-kit/utilities": "^3.2.2", "@emoji-mart/data": "1.1.2", "@emoji-mart/react": "1.1.1", - "@emotion/react": "^11.11.1", + "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", "@fontsource/montserrat": "^5.0.16", "@formkit/auto-animate": "0.8.1", - "@tauri-apps/api": "^1.5.2", + "@tauri-apps/api": "^1.5.3", "emoji-mart": "^5.5.2", - "framer-motion": "^10.16.16", + "framer-motion": "^10.17.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-icons": "^4.12.0", @@ -34,14 +34,14 @@ "yarn": "^1.22.21" }, "devDependencies": { - "@tauri-apps/cli": "^1.5.8", - "@types/eslint": "^8.44.9", - "@types/node": "^20.10.5", + "@tauri-apps/cli": "^1.5.9", + "@types/eslint": "^8.56.1", + "@types/node": "^20.10.6", "@types/prettier": "^3.0.0", - "@types/react": "^18.2.45", + "@types/react": "^18.2.46", "@types/react-dom": "^18.2.18", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", + "@typescript-eslint/eslint-plugin": "^6.17.0", + "@typescript-eslint/parser": "^6.17.0", "@vitejs/plugin-react": "^4.2.1", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 2d6fcc86..10a8e962 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if", "once_cell", @@ -103,9 +103,28 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" + +[[package]] +name = "arboard" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aafb29b107435aa276664c1db8954ac27a6e105cdad3c88287a199eb0e313c08" +dependencies = [ + "clipboard-win 4.5.0", + "core-graphics 0.22.3", + "image", + "log", + "objc", + "objc-foundation", + "objc_id", + "parking_lot", + "thiserror", + "winapi", + "x11rb", +] [[package]] name = "arrayvec" @@ -130,7 +149,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" dependencies = [ "concurrent-queue", - "event-listener 4.0.0", + "event-listener 4.0.2", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -216,7 +235,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.2", "event-listener-strategy", "pin-project-lite", ] @@ -246,7 +265,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -275,13 +294,13 @@ checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -375,7 +394,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -456,7 +475,7 @@ dependencies = [ "proc-macro-crate 2.0.0", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", "syn_derive", ] @@ -483,9 +502,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" dependencies = [ "memchr", "regex-automata 0.4.3", @@ -669,9 +688,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.5" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +checksum = "6100bc57b6209840798d95cb2775684849d332f7bd788db2a8c8caf7ef82a41a" dependencies = [ "smallvec", "target-lexicon", @@ -704,13 +723,13 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" dependencies = [ "glob", "libc", - "libloading 0.7.4", + "libloading 0.8.1", ] [[package]] @@ -729,6 +748,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + [[package]] name = "cocoa" version = "0.24.1" @@ -823,7 +853,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d35364349bf9e9e1c3a035ddcb00d188d23a3c40c50244c03c27a99fc6a65ae" dependencies = [ - "clipboard-win", + "clipboard-win 3.1.1", "objc", "objc-foundation", "objc_id", @@ -949,9 +979,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" +checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2" dependencies = [ "cfg-if", "crossbeam-utils", @@ -970,21 +1000,20 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.16" +version = "0.9.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" +checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.9.0", ] [[package]] name = "crossbeam-utils" -version = "0.8.17" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" dependencies = [ "cfg-if", ] @@ -1023,7 +1052,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -1033,7 +1062,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" dependencies = [ "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -1063,7 +1092,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -1074,7 +1103,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -1091,9 +1120,9 @@ checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "deranged" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", "serde", @@ -1293,7 +1322,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -1314,7 +1343,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -1356,6 +1385,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + [[package]] name = "evdev-rs" version = "0.6.1" @@ -1398,9 +1437,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "4.0.0" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +checksum = "218a870470cce1469024e9fb66b901aa983929d81304a1cdb299f28118e550d5" dependencies = [ "concurrent-queue", "parking", @@ -1413,7 +1452,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.2", "pin-project-lite", ] @@ -1434,9 +1473,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "fdeflate" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd" dependencies = [ "simd-adler32", ] @@ -1516,7 +1555,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -1558,24 +1597,24 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -1584,9 +1623,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -1618,32 +1657,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-core", "futures-io", @@ -2016,7 +2055,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.7", ] [[package]] @@ -2157,16 +2196,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -2231,6 +2270,8 @@ dependencies = [ "color_quant", "num-rational", "num-traits", + "png", + "tiff", ] [[package]] @@ -2321,13 +2362,13 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" dependencies = [ "hermit-abi", "rustix 0.38.28", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2417,6 +2458,12 @@ dependencies = [ "libc", ] +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" + [[package]] name = "js-sys" version = "0.3.66" @@ -2617,9 +2664,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -2664,9 +2711,9 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memmap2" @@ -3013,9 +3060,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -3104,9 +3151,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.61" +version = "0.10.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" +checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -3125,7 +3172,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -3136,9 +3183,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.97" +version = "0.9.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" +checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" dependencies = [ "cc", "libc", @@ -3175,12 +3222,12 @@ dependencies = [ [[package]] name = "os_pipe" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" +checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3365,7 +3412,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -3412,7 +3459,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -3440,9 +3487,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" [[package]] name = "plist" @@ -3570,9 +3617,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" dependencies = [ "unicode-ident", ] @@ -3617,9 +3664,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -4034,11 +4081,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -4104,38 +4151,38 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.193" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "6fbd975230bada99c8bb618e0c365c2eefa219158d5c6c29610fd09ff1833257" dependencies = [ "itoa 1.0.10", "ryu", @@ -4144,20 +4191,20 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" dependencies = [ "serde", ] @@ -4200,7 +4247,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -4429,6 +4476,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + [[package]] name = "string_cache" version = "0.8.7" @@ -4524,9 +4577,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.41" +version = "2.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" dependencies = [ "proc-macro2", "quote", @@ -4542,7 +4595,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -4598,7 +4651,7 @@ version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" dependencies = [ - "cfg-expr 0.15.5", + "cfg-expr 0.15.6", "heck 0.4.1", "pkg-config", "toml 0.8.8", @@ -4684,15 +4737,15 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" [[package]] name = "tauri" -version = "1.5.3" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d563b672acde8d0cc4c1b1f5b855976923f67e8d6fe1eba51df0211e197be2" +checksum = "fd27c04b9543776a972c86ccf70660b517ecabbeced9fb58d8b961a13ad129af" dependencies = [ "anyhow", "base64 0.21.5", @@ -4751,9 +4804,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defbfc551bd38ab997e5f8e458f87396d2559d05ce32095076ad6c30f7fc5f9c" +checksum = "e9914a4715e0b75d9f387a285c7e26b5bbfeb1249ad9f842675a82481565c532" dependencies = [ "anyhow", "cargo_toml", @@ -4770,9 +4823,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b3475e55acec0b4a50fb96435f19631fb58cbcd31923e1a213de5c382536bbb" +checksum = "a1554c5857f65dbc377cefb6b97c8ac77b1cb2a90d30d3448114d5d6b48a77fc" dependencies = [ "base64 0.21.5", "brotli", @@ -4796,9 +4849,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acea6445eececebd72ed7720cfcca46eee3b5bad8eb408be8f7ef2e3f7411500" +checksum = "277abf361a3a6993ec16bcbb179de0d6518009b851090a01adfea12ac89fa875" dependencies = [ "heck 0.4.1", "proc-macro2", @@ -4835,9 +4888,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07f8e9e53e00e9f41212c115749e87d5cd2a9eebccafca77a19722eeecd56d43" +checksum = "cf2d0652aa2891ff3e9caa2401405257ea29ab8372cce01f186a5825f1bd0e76" dependencies = [ "gtk", "http", @@ -4856,10 +4909,11 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "803a01101bc611ba03e13329951a1bde44287a54234189b9024b78619c1bc206" +checksum = "6cae61fbc731f690a4899681c9052dde6d05b159b44563ace8186fc1bfb7d158" dependencies = [ + "arboard", "cocoa 0.24.1", "gtk", "percent-encoding", @@ -4876,9 +4930,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a52165bb340e6f6a75f1f5eeeab1bb49f861c12abe3a176067d53642b5454986" +checksum = "ece74810b1d3d44f29f732a7ae09a63183d63949bbdd59c61f8ed2a1b70150db" dependencies = [ "brotli", "ctor", @@ -4926,15 +4980,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall", "rustix 0.38.28", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -4965,22 +5019,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -4993,6 +5047,17 @@ dependencies = [ "once_cell", ] +[[package]] +name = "tiff" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + [[package]] name = "time" version = "0.3.31" @@ -5041,9 +5106,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.0" +version = "1.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" dependencies = [ "backtrace", "bytes", @@ -5066,7 +5131,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -5224,7 +5289,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -5491,7 +5556,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", "wasm-bindgen-shared", ] @@ -5525,7 +5590,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5740,6 +5805,12 @@ dependencies = [ "windows-metadata", ] +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + [[package]] name = "winapi" version = "0.3.9" @@ -5831,7 +5902,7 @@ version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows-core", + "windows-core 0.51.1", "windows-targets 0.48.5", ] @@ -5854,6 +5925,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-implement" version = "0.39.0" @@ -6160,9 +6240,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.30" +version = "0.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" +checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c" dependencies = [ "memchr", ] @@ -6198,7 +6278,7 @@ dependencies = [ [[package]] name = "wooting-macro-backend" -version = "1.0.2" +version = "1.1.0-pre-release" dependencies = [ "anyhow", "copypasta", @@ -6225,7 +6305,7 @@ dependencies = [ [[package]] name = "wooting-macros" -version = "1.0.2" +version = "1.1.0-pre-release" dependencies = [ "anyhow", "auto-launch", @@ -6343,9 +6423,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dae5072fe1f8db8f8d29059189ac175196e410e40ba42d5d4684ae2f750995" +checksum = "914566e6413e7fa959cc394fb30e563ba80f3541fbd40816d4c05a0fc3f2a0f1" dependencies = [ "libc", "linux-raw-sys 0.4.12", @@ -6442,22 +6522,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.31" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.31" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 0fad02b7..f6d99c58 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,12 +1,15 @@ [package] name = "wooting-macros" -version = "1.0.2" +version = "1.1.0-pre-release" +edition = "2021" description = "Macro software made by Wooting." -authors = ["Jeroen N", "Erik S", "Simon W", "David M", "Khang N"] +authors = ["Jeroen N", "Erik S", "Simon W", "David M <1900179+medzernik@users.noreply.github.com>", "Khang N", "Pola M"] license = "GPL-3.0-only" repository = "https://github.com/WootingKb/wooting-macros" -edition = "2021" - +readme = "../README.md" +homepage = "https://wooting.io/wootomation" +keywords = ["input", "macros", "wooting"] +publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [build-dependencies] diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 651b5fb9..67a7215c 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -7,7 +7,7 @@ }, "package": { "productName": "Wootomation", - "version": "1.0.2" + "version": "1.1.0-0" }, "tauri": { "allowlist": { diff --git a/src/components/macroview/rightPanel/editForms/DelayForm.tsx b/src/components/macroview/rightPanel/editForms/DelayForm.tsx index 595466b8..e4584252 100644 --- a/src/components/macroview/rightPanel/editForms/DelayForm.tsx +++ b/src/components/macroview/rightPanel/editForms/DelayForm.tsx @@ -85,7 +85,7 @@ export default function DelayForm({ data: duration } updateElement(temp, selectedElementId) - }, [delayDuration, selectedElement, selectedElementId, toast, updateElement]) + }, [config.config.DefaultDelayValue, delayDuration, selectedElement, selectedElementId, toast, updateElement]) useEffect(() => { if (resetTriggered) { diff --git a/wooting-macro-backend/Cargo.lock b/wooting-macro-backend/Cargo.lock index 8771d50f..d5333925 100644 --- a/wooting-macro-backend/Cargo.lock +++ b/wooting-macro-backend/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if", "once_cell", @@ -92,9 +92,28 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" + +[[package]] +name = "arboard" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "aafb29b107435aa276664c1db8954ac27a6e105cdad3c88287a199eb0e313c08" +dependencies = [ + "clipboard-win 4.5.0", + "core-graphics 0.22.3", + "image", + "log", + "objc", + "objc-foundation", + "objc_id", + "parking_lot", + "thiserror", + "winapi", + "x11rb", +] [[package]] name = "arrayvec" @@ -119,7 +138,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" dependencies = [ "concurrent-queue", - "event-listener 4.0.0", + "event-listener 4.0.2", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -205,7 +224,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.2", "event-listener-strategy", "pin-project-lite", ] @@ -235,7 +254,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -264,13 +283,13 @@ checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -353,7 +372,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -425,9 +444,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" dependencies = [ "memchr", "regex-automata 0.4.3", @@ -558,9 +577,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.5" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +checksum = "6100bc57b6209840798d95cb2775684849d332f7bd788db2a8c8caf7ef82a41a" dependencies = [ "smallvec", "target-lexicon", @@ -587,13 +606,13 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" dependencies = [ "glob", "libc", - "libloading 0.7.4", + "libloading 0.8.1", ] [[package]] @@ -612,6 +631,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + [[package]] name = "cocoa" version = "0.24.1" @@ -695,7 +725,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d35364349bf9e9e1c3a035ddcb00d188d23a3c40c50244c03c27a99fc6a65ae" dependencies = [ - "clipboard-win", + "clipboard-win 3.1.1", "objc", "objc-foundation", "objc_id", @@ -821,9 +851,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" +checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2" dependencies = [ "cfg-if", "crossbeam-utils", @@ -842,21 +872,20 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.16" +version = "0.9.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" +checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.9.0", ] [[package]] name = "crossbeam-utils" -version = "0.8.17" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" dependencies = [ "cfg-if", ] @@ -895,7 +924,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -905,7 +934,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" dependencies = [ "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -935,7 +964,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -946,7 +975,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -963,9 +992,9 @@ checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "deranged" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", "serde", @@ -1132,7 +1161,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -1153,7 +1182,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -1195,6 +1224,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + [[package]] name = "evdev-rs" version = "0.6.1" @@ -1237,9 +1276,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "4.0.0" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +checksum = "218a870470cce1469024e9fb66b901aa983929d81304a1cdb299f28118e550d5" dependencies = [ "concurrent-queue", "parking", @@ -1252,7 +1291,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.2", "pin-project-lite", ] @@ -1273,9 +1312,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "fdeflate" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd" dependencies = [ "simd-adler32", ] @@ -1345,7 +1384,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -1381,24 +1420,24 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -1407,9 +1446,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -1441,32 +1480,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-core", "futures-io", @@ -1977,16 +2016,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -2051,6 +2090,8 @@ dependencies = [ "color_quant", "num-rational", "num-traits", + "png", + "tiff", ] [[package]] @@ -2141,13 +2182,13 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" dependencies = [ "hermit-abi", "rustix 0.38.28", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2237,6 +2278,12 @@ dependencies = [ "libc", ] +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" + [[package]] name = "js-sys" version = "0.3.66" @@ -2434,9 +2481,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -2481,9 +2528,9 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memmap2" @@ -2815,9 +2862,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -2906,9 +2953,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.61" +version = "0.10.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" +checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -2927,7 +2974,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -2938,9 +2985,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.97" +version = "0.9.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" +checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" dependencies = [ "cc", "libc", @@ -2977,12 +3024,12 @@ dependencies = [ [[package]] name = "os_pipe" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" +checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3167,7 +3214,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -3214,7 +3261,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -3242,9 +3289,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" [[package]] name = "plist" @@ -3363,9 +3410,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" dependencies = [ "unicode-ident", ] @@ -3390,9 +3437,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -3747,11 +3794,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3811,38 +3858,38 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.193" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "6fbd975230bada99c8bb618e0c365c2eefa219158d5c6c29610fd09ff1833257" dependencies = [ "itoa 1.0.10", "ryu", @@ -3851,20 +3898,20 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" dependencies = [ "serde", ] @@ -3907,7 +3954,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -4130,6 +4177,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + [[package]] name = "string_cache" version = "0.8.7" @@ -4225,9 +4278,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.41" +version = "2.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" dependencies = [ "proc-macro2", "quote", @@ -4287,7 +4340,7 @@ version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" dependencies = [ - "cfg-expr 0.15.5", + "cfg-expr 0.15.6", "heck 0.4.1", "pkg-config", "toml 0.8.8", @@ -4367,15 +4420,15 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" [[package]] name = "tauri" -version = "1.5.3" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d563b672acde8d0cc4c1b1f5b855976923f67e8d6fe1eba51df0211e197be2" +checksum = "fd27c04b9543776a972c86ccf70660b517ecabbeced9fb58d8b961a13ad129af" dependencies = [ "anyhow", "bytes", @@ -4430,9 +4483,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b3475e55acec0b4a50fb96435f19631fb58cbcd31923e1a213de5c382536bbb" +checksum = "a1554c5857f65dbc377cefb6b97c8ac77b1cb2a90d30d3448114d5d6b48a77fc" dependencies = [ "base64 0.21.5", "brotli", @@ -4456,9 +4509,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acea6445eececebd72ed7720cfcca46eee3b5bad8eb408be8f7ef2e3f7411500" +checksum = "277abf361a3a6993ec16bcbb179de0d6518009b851090a01adfea12ac89fa875" dependencies = [ "heck 0.4.1", "proc-macro2", @@ -4470,9 +4523,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07f8e9e53e00e9f41212c115749e87d5cd2a9eebccafca77a19722eeecd56d43" +checksum = "cf2d0652aa2891ff3e9caa2401405257ea29ab8372cce01f186a5825f1bd0e76" dependencies = [ "gtk", "http", @@ -4491,10 +4544,11 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "803a01101bc611ba03e13329951a1bde44287a54234189b9024b78619c1bc206" +checksum = "6cae61fbc731f690a4899681c9052dde6d05b159b44563ace8186fc1bfb7d158" dependencies = [ + "arboard", "cocoa 0.24.1", "gtk", "percent-encoding", @@ -4511,9 +4565,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a52165bb340e6f6a75f1f5eeeab1bb49f861c12abe3a176067d53642b5454986" +checksum = "ece74810b1d3d44f29f732a7ae09a63183d63949bbdd59c61f8ed2a1b70150db" dependencies = [ "brotli", "ctor", @@ -4551,15 +4605,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall", "rustix 0.38.28", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -4590,22 +4644,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -4618,6 +4672,17 @@ dependencies = [ "once_cell", ] +[[package]] +name = "tiff" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + [[package]] name = "time" version = "0.3.31" @@ -4664,9 +4729,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.0" +version = "1.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" dependencies = [ "backtrace", "bytes", @@ -4689,7 +4754,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -4822,7 +4887,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] @@ -5057,7 +5122,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", "wasm-bindgen-shared", ] @@ -5091,7 +5156,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5306,6 +5371,12 @@ dependencies = [ "windows-metadata", ] +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + [[package]] name = "winapi" version = "0.3.9" @@ -5397,7 +5468,7 @@ version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows-core", + "windows-core 0.51.1", "windows-targets 0.48.5", ] @@ -5420,6 +5491,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-implement" version = "0.39.0" @@ -5726,9 +5806,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.30" +version = "0.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" +checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c" dependencies = [ "memchr", ] @@ -5745,7 +5825,7 @@ dependencies = [ [[package]] name = "wooting-macro-backend" -version = "1.0.2" +version = "1.1.0-pre-release" dependencies = [ "anyhow", "copypasta", @@ -5862,9 +5942,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dae5072fe1f8db8f8d29059189ac175196e410e40ba42d5d4684ae2f750995" +checksum = "914566e6413e7fa959cc394fb30e563ba80f3541fbd40816d4c05a0fc3f2a0f1" dependencies = [ "libc", "linux-raw-sys 0.4.12", @@ -5961,22 +6041,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.31" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.31" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.46", ] [[package]] diff --git a/wooting-macro-backend/Cargo.toml b/wooting-macro-backend/Cargo.toml index cb46963f..255df55c 100644 --- a/wooting-macro-backend/Cargo.toml +++ b/wooting-macro-backend/Cargo.toml @@ -1,11 +1,11 @@ [package] name = "wooting-macro-backend" -version = "1.0.2" +version = "1.1.0-pre-release" edition = "2021" description = "Macro software backend made by Wooting." -authors = ["Jeroen N", "Erik S", "Simon W", "David M", "Khang N"] +authors = ["Jeroen N", "Erik S", "Simon W", "David M <1900179+medzernik@users.noreply.github.com>", "Khang N"] license = "GPL-3.0-only" - +publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] diff --git a/yarn.lock b/yarn.lock index 424c3b78..3df1bd81 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1750,14 +1750,14 @@ __metadata: languageName: node linkType: hard -"@emotion/react@npm:^11.11.1": - version: 11.11.1 - resolution: "@emotion/react@npm:11.11.1" +"@emotion/react@npm:^11.11.3": + version: 11.11.3 + resolution: "@emotion/react@npm:11.11.3" dependencies: "@babel/runtime": ^7.18.3 "@emotion/babel-plugin": ^11.11.0 "@emotion/cache": ^11.11.0 - "@emotion/serialize": ^1.1.2 + "@emotion/serialize": ^1.1.3 "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 "@emotion/utils": ^1.2.1 "@emotion/weak-memoize": ^0.3.1 @@ -1767,7 +1767,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: aec3c36650f5f0d3d4445ff44d73dd88712b1609645b6af3e6d08049cfbc51f1785fe13dea1a1d4ab1b0800d68f2339ab11e459687180362b1ef98863155aae5 + checksum: 2e4b223591569f0a41686d5bd72dc8778629b7be33267e4a09582979e6faee4d7218de84e76294ed827058d4384d75557b5d71724756539c1f235e9a69e62b2e languageName: node linkType: hard @@ -1784,6 +1784,19 @@ __metadata: languageName: node linkType: hard +"@emotion/serialize@npm:^1.1.3": + version: 1.1.3 + resolution: "@emotion/serialize@npm:1.1.3" + dependencies: + "@emotion/hash": ^0.9.1 + "@emotion/memoize": ^0.8.1 + "@emotion/unitless": ^0.8.1 + "@emotion/utils": ^1.2.1 + csstype: ^3.0.2 + checksum: 5a756ce7e2692322683978d8ed2e84eadd60bd6f629618a82c5018c84d98684b117e57fad0174f68ec2ec0ac089bb2e0bcc8ea8c2798eb904b6d3236aa046063 + languageName: node + linkType: hard + "@emotion/sheet@npm:^1.2.2": version: 1.2.2 resolution: "@emotion/sheet@npm:1.2.2" @@ -2305,97 +2318,97 @@ __metadata: languageName: node linkType: hard -"@tauri-apps/api@npm:^1.5.2": - version: 1.5.2 - resolution: "@tauri-apps/api@npm:1.5.2" - checksum: fa1fc158fec8f80fc6f0ac06ef693cea6d3edbb08abc1f163e81d98d01f6015497a9d38511fb5049d26cd1842adfb215b3bde32323571d559a81c325c3b49a58 +"@tauri-apps/api@npm:^1.5.3": + version: 1.5.3 + resolution: "@tauri-apps/api@npm:1.5.3" + checksum: 396f6f0630ab2cff0700f016eb84a8150cb8f16ec280e43975952448a0243503c0a0421ffa02ed7b79accef354e044dbd457ec9f73bd98273cf920610474bfbb languageName: node linkType: hard -"@tauri-apps/cli-darwin-arm64@npm:1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli-darwin-arm64@npm:1.5.8" +"@tauri-apps/cli-darwin-arm64@npm:1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli-darwin-arm64@npm:1.5.9" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@tauri-apps/cli-darwin-x64@npm:1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli-darwin-x64@npm:1.5.8" +"@tauri-apps/cli-darwin-x64@npm:1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli-darwin-x64@npm:1.5.9" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.8" +"@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.9" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@tauri-apps/cli-linux-arm64-gnu@npm:1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli-linux-arm64-gnu@npm:1.5.8" +"@tauri-apps/cli-linux-arm64-gnu@npm:1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli-linux-arm64-gnu@npm:1.5.9" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@tauri-apps/cli-linux-arm64-musl@npm:1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli-linux-arm64-musl@npm:1.5.8" +"@tauri-apps/cli-linux-arm64-musl@npm:1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli-linux-arm64-musl@npm:1.5.9" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@tauri-apps/cli-linux-x64-gnu@npm:1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli-linux-x64-gnu@npm:1.5.8" +"@tauri-apps/cli-linux-x64-gnu@npm:1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli-linux-x64-gnu@npm:1.5.9" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@tauri-apps/cli-linux-x64-musl@npm:1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli-linux-x64-musl@npm:1.5.8" +"@tauri-apps/cli-linux-x64-musl@npm:1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli-linux-x64-musl@npm:1.5.9" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@tauri-apps/cli-win32-arm64-msvc@npm:1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli-win32-arm64-msvc@npm:1.5.8" +"@tauri-apps/cli-win32-arm64-msvc@npm:1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli-win32-arm64-msvc@npm:1.5.9" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@tauri-apps/cli-win32-ia32-msvc@npm:1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli-win32-ia32-msvc@npm:1.5.8" +"@tauri-apps/cli-win32-ia32-msvc@npm:1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli-win32-ia32-msvc@npm:1.5.9" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@tauri-apps/cli-win32-x64-msvc@npm:1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli-win32-x64-msvc@npm:1.5.8" +"@tauri-apps/cli-win32-x64-msvc@npm:1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli-win32-x64-msvc@npm:1.5.9" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@tauri-apps/cli@npm:^1.5.8": - version: 1.5.8 - resolution: "@tauri-apps/cli@npm:1.5.8" +"@tauri-apps/cli@npm:^1.5.9": + version: 1.5.9 + resolution: "@tauri-apps/cli@npm:1.5.9" dependencies: - "@tauri-apps/cli-darwin-arm64": 1.5.8 - "@tauri-apps/cli-darwin-x64": 1.5.8 - "@tauri-apps/cli-linux-arm-gnueabihf": 1.5.8 - "@tauri-apps/cli-linux-arm64-gnu": 1.5.8 - "@tauri-apps/cli-linux-arm64-musl": 1.5.8 - "@tauri-apps/cli-linux-x64-gnu": 1.5.8 - "@tauri-apps/cli-linux-x64-musl": 1.5.8 - "@tauri-apps/cli-win32-arm64-msvc": 1.5.8 - "@tauri-apps/cli-win32-ia32-msvc": 1.5.8 - "@tauri-apps/cli-win32-x64-msvc": 1.5.8 + "@tauri-apps/cli-darwin-arm64": 1.5.9 + "@tauri-apps/cli-darwin-x64": 1.5.9 + "@tauri-apps/cli-linux-arm-gnueabihf": 1.5.9 + "@tauri-apps/cli-linux-arm64-gnu": 1.5.9 + "@tauri-apps/cli-linux-arm64-musl": 1.5.9 + "@tauri-apps/cli-linux-x64-gnu": 1.5.9 + "@tauri-apps/cli-linux-x64-musl": 1.5.9 + "@tauri-apps/cli-win32-arm64-msvc": 1.5.9 + "@tauri-apps/cli-win32-ia32-msvc": 1.5.9 + "@tauri-apps/cli-win32-x64-msvc": 1.5.9 dependenciesMeta: "@tauri-apps/cli-darwin-arm64": optional: true @@ -2419,7 +2432,7 @@ __metadata: optional: true bin: tauri: tauri.js - checksum: c62a7f139fd8e29963ebc798f6c5092b84a2ac03d77d42cc2653675882cada3915206273e4efde87f5d734d2f477e42da4432fe698a0d7ce90e73c0471b605e8 + checksum: 044288c79d45937b687b376515adae1b4734328430d6d08de6f17c8faf17eabbef42d6d2b8f30155db4f81ad665bcccff6f4968086f714250d7a6107024903c9 languageName: node linkType: hard @@ -2471,13 +2484,13 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:^8.44.9": - version: 8.44.9 - resolution: "@types/eslint@npm:8.44.9" +"@types/eslint@npm:^8.56.1": + version: 8.56.1 + resolution: "@types/eslint@npm:8.56.1" dependencies: "@types/estree": "*" "@types/json-schema": "*" - checksum: 6f8889e94e67a5e43c15f5a2530798f864ace08c270bfb3f153cb705da4e30a80e0e9a0fc05317c8642c8dda909d528968172089eb4d52aca9f212761df25d90 + checksum: 1a4c7334c2f0cfead7b9d25c574c7b3d0b44242958703caa868ed38990a96b5d96477e6fceb7be54fbadd6fb61c97b778b9df58531ced3ec4b022d3e54254dc3 languageName: node linkType: hard @@ -2518,12 +2531,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.10.5": - version: 20.10.5 - resolution: "@types/node@npm:20.10.5" +"@types/node@npm:^20.10.6": + version: 20.10.6 + resolution: "@types/node@npm:20.10.6" dependencies: undici-types: ~5.26.4 - checksum: e216b679f545a8356960ce985a0e53c3a58fff0eacd855e180b9e223b8db2b5bd07b744a002b8c1f0c37f9194648ab4578533b5c12df2ec10cc02f61d20948d2 + checksum: ada40e4ccbda3697dca88f8d13f4c996c493be6fbc15f5f5d3b91096d56bd700786a2c148a92a2b4c5d1f133379e63f754a786b3aebfc6a7d09fc7ea16dc017b languageName: node linkType: hard @@ -2570,14 +2583,14 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^18.2.45": - version: 18.2.45 - resolution: "@types/react@npm:18.2.45" +"@types/react@npm:^18.2.46": + version: 18.2.46 + resolution: "@types/react@npm:18.2.46" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 40b256bdce67b026348022b4f8616a693afdad88cf493b77f7b4e6c5f4b0e4ba13a6068e690b9b94572920840ff30d501ea3d8518e1f21cc8fb8204d4b140c8a + checksum: cb0e4dc7f41988a059e1246a19ec377101f5b16097ec4bf7000ef3c431ec0c8c873f40e95075821f908db1f4e3352775f0f18cea53dcad14dce67c0f5110f2bd languageName: node linkType: hard @@ -2595,15 +2608,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.15.0" +"@typescript-eslint/eslint-plugin@npm:^6.17.0": + version: 6.17.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.17.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.15.0 - "@typescript-eslint/type-utils": 6.15.0 - "@typescript-eslint/utils": 6.15.0 - "@typescript-eslint/visitor-keys": 6.15.0 + "@typescript-eslint/scope-manager": 6.17.0 + "@typescript-eslint/type-utils": 6.17.0 + "@typescript-eslint/utils": 6.17.0 + "@typescript-eslint/visitor-keys": 6.17.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -2616,44 +2629,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: f7ae7e01f9d1bd6150598ea1a191348a7ba08b25f146d3bc3b19d434bdb8071cf831577a31c62935e67716addb37b0eda02f4a47bfefc1bb5458843256ec0933 + checksum: 169646a705fdd1bc2a0d78678dbf3557ff3e534e9d4a11f7b5bba1d9f5cbec821f8c16b260413203efc8d6e0c0a3d7f9332bb1476e3dac80e60aa16eb9a0ad11 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/parser@npm:6.15.0" +"@typescript-eslint/parser@npm:^6.17.0": + version: 6.17.0 + resolution: "@typescript-eslint/parser@npm:6.17.0" dependencies: - "@typescript-eslint/scope-manager": 6.15.0 - "@typescript-eslint/types": 6.15.0 - "@typescript-eslint/typescript-estree": 6.15.0 - "@typescript-eslint/visitor-keys": 6.15.0 + "@typescript-eslint/scope-manager": 6.17.0 + "@typescript-eslint/types": 6.17.0 + "@typescript-eslint/typescript-estree": 6.17.0 + "@typescript-eslint/visitor-keys": 6.17.0 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 6f71b48f208e4d56025cbe3a5b287fe9c31484469e8b2a14a0ab5453cb56223a3c099beb70d298e0ce80de8a23e90aec65865ff8e939233cd0f1c3ffba12f3db + checksum: c48864aebf364332540f520d84630a6bb3e2ddc84492d75c14a453964b669a37f1fd43b60469e3683e618e8e8d3d7747baffe92e408599d5df6869cae86ac9e1 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/scope-manager@npm:6.15.0" +"@typescript-eslint/scope-manager@npm:6.17.0": + version: 6.17.0 + resolution: "@typescript-eslint/scope-manager@npm:6.17.0" dependencies: - "@typescript-eslint/types": 6.15.0 - "@typescript-eslint/visitor-keys": 6.15.0 - checksum: 12316149aae3ad5c7e3411ed7da7fb7d9324df83482d64a93eecbd11063451660cea0fa42ceb026984df7974d770d5f7bc6c77c33e95bc0db0c44e4413f8b756 + "@typescript-eslint/types": 6.17.0 + "@typescript-eslint/visitor-keys": 6.17.0 + checksum: 6eabac1e52cd25714ab176c7bbf9919d065febf4580620eb067ab1b41607f5e592857bd831a2ab41daa873af4011217dbcae55ed248855e381127f1cabcd2d2c languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/type-utils@npm:6.15.0" +"@typescript-eslint/type-utils@npm:6.17.0": + version: 6.17.0 + resolution: "@typescript-eslint/type-utils@npm:6.17.0" dependencies: - "@typescript-eslint/typescript-estree": 6.15.0 - "@typescript-eslint/utils": 6.15.0 + "@typescript-eslint/typescript-estree": 6.17.0 + "@typescript-eslint/utils": 6.17.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -2661,59 +2674,60 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: bd582fc6cca3b9048200fd30a042131cbb50e800acca1d31618ca4a9d9b6bc29fefd6920f7622a546c07a4d1a1c73745acfa09890e732a8a124731c3d5a821d1 + checksum: bb6f824c1c7f8d25a21b7218a5bcb74e58c38121f85418eb1639f2931c6149285c2ede96dd677a3e7dc64886cc7640d74be6001d970c3ac9c9a4d889315c5d15 languageName: node linkType: hard -"@typescript-eslint/types@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/types@npm:6.15.0" - checksum: 604cf287a339a55c9a82a6e301cf353bb256427b6e29b12ee8901b37d34581761a0dac3ae7e9d78925854e260e5d690ec472b54ca972339820f3db8512864875 +"@typescript-eslint/types@npm:6.17.0": + version: 6.17.0 + resolution: "@typescript-eslint/types@npm:6.17.0" + checksum: a199516230b505f85de1b99cdf22c526cbae7604fa2dd0dd24e8bba5de45aeaee231263e7e59843af7b226cb91c4ba5447d06517a1a73b511a94c6b483af0d5b languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.15.0" +"@typescript-eslint/typescript-estree@npm:6.17.0": + version: 6.17.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.17.0" dependencies: - "@typescript-eslint/types": 6.15.0 - "@typescript-eslint/visitor-keys": 6.15.0 + "@typescript-eslint/types": 6.17.0 + "@typescript-eslint/visitor-keys": 6.17.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 + minimatch: 9.0.3 semver: ^7.5.4 ts-api-utils: ^1.0.1 peerDependenciesMeta: typescript: optional: true - checksum: fbd11a5acaee3166174fad4cc78cff2ad646411a60ca14e5a50598373302c7bedd76d073ed385b002eb3d6d2a44aea2dd5c74aa65fbef8441a2e079064e67640 + checksum: 4bf7811ddae66361cad55f7a6fcf9975eb77456ceb2eca5d7a6228387737845bdfe1b9eef4c76d5d6b7c7d6029a8f62bc67b509c0724cd37395ae16eb07dd7ab languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/utils@npm:6.15.0" +"@typescript-eslint/utils@npm:6.17.0": + version: 6.17.0 + resolution: "@typescript-eslint/utils@npm:6.17.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.15.0 - "@typescript-eslint/types": 6.15.0 - "@typescript-eslint/typescript-estree": 6.15.0 + "@typescript-eslint/scope-manager": 6.17.0 + "@typescript-eslint/types": 6.17.0 + "@typescript-eslint/typescript-estree": 6.17.0 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 02aefaeb1539e0a5e5cbbc4d4f92ce505f433b7f8403cb10522c0a6965572a0ea94d32d487113fa64a33967ae7d0de5a62ffea83721100596e54c5ef04288cbe + checksum: 2eea8fd3763b2ab9d86503c68b4d61df81071fd38851b8ba920d53b055c352d13e192a3d15ca853f11aee818c61e8af65946e963aa0e9b18d19e3254881bded0 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.15.0" +"@typescript-eslint/visitor-keys@npm:6.17.0": + version: 6.17.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.17.0" dependencies: - "@typescript-eslint/types": 6.15.0 + "@typescript-eslint/types": 6.17.0 eslint-visitor-keys: ^3.4.1 - checksum: 1bccc4d4eea6fd10a4ab1daa9e1aaaf790d5f4dd5d02c6e3eb6e83414c086d8d5f14ac44c9fb587b2f7e0dad3e7aeae603158d89dec9ae89652024331bb84fea + checksum: e98755087bd067388d9a9182375e53f590183ca656d02b3d05d9718bab2ac571832fd16691060c7c979fd941e9d4b7923d8975632923697de0691f50fc97c8ac languageName: node linkType: hard @@ -3921,9 +3935,9 @@ __metadata: languageName: node linkType: hard -"framer-motion@npm:^10.16.16": - version: 10.16.16 - resolution: "framer-motion@npm:10.16.16" +"framer-motion@npm:^10.17.0": + version: 10.17.0 + resolution: "framer-motion@npm:10.17.0" dependencies: "@emotion/is-prop-valid": ^0.8.2 tslib: ^2.4.0 @@ -3938,7 +3952,7 @@ __metadata: optional: true react-dom: optional: true - checksum: 992d755faab7171aecd4b548ea4c3baf6a9172b9348a98033e594a46a9f3f90c6f5854898d48884c3ecf7db4fc2ae3f05e27e125b4c5b397e836d765265577c1 + checksum: 43ce547f4cfeb6dce02d2f0d7a1c531b24b51a60a4659b4eeaf50378d8a1963016f2ae50e69ee2cf2a903a2ebcae99da6ace01b77afd0f934eaa3a8b2afe7bde languageName: node linkType: hard @@ -4900,6 +4914,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:9.0.3": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + "minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -6447,26 +6470,26 @@ __metadata: "@dnd-kit/utilities": ^3.2.2 "@emoji-mart/data": 1.1.2 "@emoji-mart/react": 1.1.1 - "@emotion/react": ^11.11.1 + "@emotion/react": ^11.11.3 "@emotion/styled": ^11.11.0 "@fontsource/montserrat": ^5.0.16 "@formkit/auto-animate": 0.8.1 - "@tauri-apps/api": ^1.5.2 - "@tauri-apps/cli": ^1.5.8 - "@types/eslint": ^8.44.9 - "@types/node": ^20.10.5 + "@tauri-apps/api": ^1.5.3 + "@tauri-apps/cli": ^1.5.9 + "@types/eslint": ^8.56.1 + "@types/node": ^20.10.6 "@types/prettier": ^3.0.0 - "@types/react": ^18.2.45 + "@types/react": ^18.2.46 "@types/react-dom": ^18.2.18 - "@typescript-eslint/eslint-plugin": ^6.15.0 - "@typescript-eslint/parser": ^6.15.0 + "@typescript-eslint/eslint-plugin": ^6.17.0 + "@typescript-eslint/parser": ^6.17.0 "@vitejs/plugin-react": ^4.2.1 emoji-mart: ^5.5.2 eslint: ^8.56.0 eslint-config-prettier: ^9.1.0 eslint-plugin-react: ^7.33.2 eslint-plugin-react-hooks: ^4.6.0 - framer-motion: ^10.16.16 + framer-motion: ^10.17.0 prettier: ^3.1.1 react: ^18.2.0 react-dom: ^18.2.0 From 82f986977dfdb95da70d8f2c231565f4caa653c6 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:01:34 +0100 Subject: [PATCH 13/86] Added context with anyhow to main --- src-tauri/src/main.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index a6856c8e..4bfc5656 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -22,7 +22,7 @@ use tauri_plugin_log::fern::colors::{Color, ColoredLevelConfig}; use wooting_macro_backend::config::*; use wooting_macro_backend::*; -use anyhow::Result; +use anyhow::{Context, Error, Result}; #[tauri::command] /// Gets the application config from the current state and sends to frontend. @@ -77,12 +77,12 @@ async fn control_grabbing( /// Spawn the backend thread. /// Note: this doesn't work on macOS since we cannot give the thread the proper permissions /// (will crash on key grab/listen) -async fn main() { +async fn main() -> Result<(), Error> { let log_level: log::LevelFilter = option_env!("MACRO_LOG_LEVEL") .and_then(|s| log::LevelFilter::from_str(s).ok()) .unwrap_or(log::LevelFilter::Info); - MacroBackend::generate_directories().expect("unable to generate config directories"); + MacroBackend::generate_directories().context("unable to generate config directories")?; let backend = MacroBackend::default(); @@ -126,10 +126,12 @@ async fn main() { .set_app_path(current_exe.as_path().to_str().unwrap()) .set_use_launch_agent(true) .build() - .expect("App name is empty, or unsupported OS is used."); + .context("App name is empty, or unsupported OS is used.")?; match set_autolaunch { - true => auto_start.enable().expect("Registry key failed to write."), + true => auto_start + .enable() + .context("Registry key failed to write.")?, false => { if let Err(e) = auto_start.disable() { match e { @@ -262,5 +264,7 @@ async fn main() { .build(), ) .run(tauri::generate_context!()) - .expect("error while running tauri application"); + .context("error while running tauri application")?; + + Ok(()) } From cd13ae41e803b9f8e3d46df53c952f807e653249 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:02:28 +0100 Subject: [PATCH 14/86] Remove unnecessary quotes Co-authored-by: Simon W --- src/components/macroview/rightPanel/editForms/ClipboardForm.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/macroview/rightPanel/editForms/ClipboardForm.tsx b/src/components/macroview/rightPanel/editForms/ClipboardForm.tsx index 51405574..2b1f6cfa 100644 --- a/src/components/macroview/rightPanel/editForms/ClipboardForm.tsx +++ b/src/components/macroview/rightPanel/editForms/ClipboardForm.tsx @@ -126,7 +126,7 @@ export default function ClipboardForm({ whiteSpace="nowrap" fontWeight="bold" > - {'Clipboard'} + Clipboard From 9cac5c86f53aacbdb43852fd5febf478f3cde0eb Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:04:12 +0100 Subject: [PATCH 15/86] removed unneccesary function call --- src/components/macroview/rightPanel/EditArea.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/macroview/rightPanel/EditArea.tsx b/src/components/macroview/rightPanel/EditArea.tsx index 4ebf194e..abdb8ed3 100644 --- a/src/components/macroview/rightPanel/EditArea.tsx +++ b/src/components/macroview/rightPanel/EditArea.tsx @@ -12,7 +12,6 @@ import SystemEventActionForm from './editForms/SystemEventActionForm' export default function EditArea() { const selectedElement = useSelectedElement() const { selectedElementId } = useMacroContext() - useColorModeValue('primary-light.500', 'primary-dark.500') const SelectedElementFormComponent = useMemo(() => { if (!selectedElement || selectedElementId === undefined) { From 9b9342f203d5054ebf2ba687e0e4b0b869a20dec Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:20:12 +0100 Subject: [PATCH 16/86] Made config reading error in main clearer --- src-tauri/src/main.rs | 2 +- wooting-macro-backend/src/config.rs | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 4bfc5656..4a6c047b 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -214,7 +214,7 @@ async fn main() -> Result<(), Error> { .on_window_event(move |event| { if let WindowEvent::CloseRequested { api, .. } = event.event() { if ApplicationConfig::read_data() - .expect("Error reading config") + .unwrap_or_else(|err| panic!("Error reading config data: {}", err.to_string())) .minimize_to_tray { event.window().hide().unwrap(); diff --git a/wooting-macro-backend/src/config.rs b/wooting-macro-backend/src/config.rs index ec08eb21..e2f53956 100644 --- a/wooting-macro-backend/src/config.rs +++ b/wooting-macro-backend/src/config.rs @@ -52,9 +52,7 @@ pub trait ConfigFile: Default + serde::Serialize + for<'de> serde::Deserialize<' Self::default().write_to_file()?; Ok(Self::default()) } - _ => { - panic!("Filesystem error, cannot proceed. {}", err); - } + _ => Err(anyhow::format_err!("filesystem error")), }, } } From fe0679fe2ec3d74f903e6c21cba8c6bbb67780d7 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:20:51 +0100 Subject: [PATCH 17/86] added grammar correction, fits ok --- src/components/macroview/leftPanel/SelectElementArea.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/macroview/leftPanel/SelectElementArea.tsx b/src/components/macroview/leftPanel/SelectElementArea.tsx index 4d7daa5a..25d1ffe6 100644 --- a/src/components/macroview/leftPanel/SelectElementArea.tsx +++ b/src/components/macroview/leftPanel/SelectElementArea.tsx @@ -33,7 +33,7 @@ export default function SelectElementArea() { maxW="full" maxH="32px" variant="brand" - placeholder="Search for element..." + placeholder="Search for an element..." _placeholder={{ opacity: 1, color: borderColour }} onChange={(event) => setSearchValue(event.target.value)} sx={{ From 52430832490a73c9d784ec8058f8ed5b21337590 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:25:55 +0100 Subject: [PATCH 18/86] Better autostart enable handling --- src-tauri/src/main.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 4a6c047b..f9bedeab 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -129,9 +129,10 @@ async fn main() -> Result<(), Error> { .context("App name is empty, or unsupported OS is used.")?; match set_autolaunch { - true => auto_start - .enable() - .context("Registry key failed to write.")?, + true => auto_start.enable().unwrap_or_else(|err| { + error!("error enabling autostart: {}", err.to_string()) + }), + false => { if let Err(e) = auto_start.disable() { match e { @@ -139,9 +140,9 @@ async fn main() -> Result<(), Error> { std::io::ErrorKind::NotFound => { trace!("Autostart is already removed, finished checking.") } - _ => error!("{}", err), + _ => error!("error disabling autostart: {}", err), }, - _ => error!("{}", e), + _ => error!("error disabling autostart: {}", e), } } } From 1cbb2eb81395844e6711a75ae1c62665308a3e07 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:31:35 +0100 Subject: [PATCH 19/86] Removed trigger modal unnecessary parentheses --- src/components/macroview/topArea/TriggerModal.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/macroview/topArea/TriggerModal.tsx b/src/components/macroview/topArea/TriggerModal.tsx index 5f222c60..5a1d6289 100644 --- a/src/components/macroview/topArea/TriggerModal.tsx +++ b/src/components/macroview/topArea/TriggerModal.tsx @@ -160,8 +160,12 @@ export default function TriggerModal({ isOpen, onClose }: Props) { - {`1x non-modifier, up to 3x modifiers in any order.`} - {`non-modifier key must be the last in sequence.`} + + 1x non-modifier, up to 3x modifiers in any order. + + + non-modifier key must be the last in sequence. + - + Date: Mon, 29 Jan 2024 14:23:35 +0100 Subject: [PATCH 45/86] Tweak the fontsize behavior on reset buttons --- src/components/macroview/rightPanel/editForms/DelayForm.tsx | 2 +- src/components/macroview/rightPanel/editForms/KeyPressForm.tsx | 2 +- .../macroview/rightPanel/editForms/MousePressForm.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/macroview/rightPanel/editForms/DelayForm.tsx b/src/components/macroview/rightPanel/editForms/DelayForm.tsx index 4e7bc9ba..083e5237 100644 --- a/src/components/macroview/rightPanel/editForms/DelayForm.tsx +++ b/src/components/macroview/rightPanel/editForms/DelayForm.tsx @@ -151,7 +151,7 @@ export default function DelayForm({ size={['sm', 'md']} onClick={onResetClick} > - Reset to Default + Reset to Default diff --git a/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx b/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx index 044d10cc..5e2ad117 100644 --- a/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx +++ b/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx @@ -225,7 +225,7 @@ export default function KeyPressForm({ size={['sm', 'md']} onClick={onResetClick} > - Reset to Default + Reset to Default diff --git a/src/components/macroview/rightPanel/editForms/MousePressForm.tsx b/src/components/macroview/rightPanel/editForms/MousePressForm.tsx index bd86e214..65ef4524 100644 --- a/src/components/macroview/rightPanel/editForms/MousePressForm.tsx +++ b/src/components/macroview/rightPanel/editForms/MousePressForm.tsx @@ -269,7 +269,7 @@ export default function MousePressForm({ size={['sm', 'md']} onClick={onResetClick} > - Reset to Default + Reset to Default From 1c8c649c35ccfc4a330ad131ba631519f185e9df Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:27:50 +0100 Subject: [PATCH 46/86] Tweaked to use encode function for HID lookup --- src/constants/HIDmap.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constants/HIDmap.ts b/src/constants/HIDmap.ts index a9f74b35..1742fb89 100644 --- a/src/constants/HIDmap.ts +++ b/src/constants/HIDmap.ts @@ -1345,7 +1345,7 @@ export const webCodeLocationHIDLookup = new Map( Hid.all .filter((hid) => hid.whichID !== undefined) .map((hid) => [ - hid.whichID.toString() + '|' + (hid.locationID?.toString() ?? 0), + webCodeLocationHidEncode(hid.whichID, hid.locationID ?? 0), hid ]) ) From 5830c56f2667220c804acb4b1dd463fcc54cf649 Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:30:23 +0100 Subject: [PATCH 47/86] Removed dead code --- src/theme/shadows.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/theme/shadows.ts b/src/theme/shadows.ts index b37d0750..4b53d7a5 100644 --- a/src/theme/shadows.ts +++ b/src/theme/shadows.ts @@ -1,8 +1,5 @@ export const shadows = { xs: '0px 0px 4px 1px rgba(0, 0, 0, 0.16)', - 'white-xs': '', sm: '0px 2px 4px rgba(0, 0, 0, 0.16)', - 'white-sm': '', md: '0px 4px 8px rgba(0, 0, 0, 0.16)', - 'white-md': '' } From f80d476a0706253f4164e241766865ef35ef95bd Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Mon, 29 Jan 2024 17:30:43 +0100 Subject: [PATCH 48/86] added debug mode check for frontend key actions Tweaks --- src-tauri/src/main.rs | 25 ++++++--- src/App.tsx | 21 ++++++-- .../rightPanel/editForms/KeyPressForm.tsx | 53 +++++++++---------- src/constants/utils.ts | 3 ++ src/contexts/applicationContext.tsx | 21 ++++++-- src/types.d.ts | 6 ++- 6 files changed, 82 insertions(+), 47 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 18da0b32..20860b8a 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -5,25 +5,23 @@ extern crate core; -use log::*; - -use std::env::current_exe; -use std::path::PathBuf; use std::str::FromStr; use std::time; +use anyhow::{Context, Error, Result}; use byte_unit::{Byte, Unit}; - +use log::*; use tauri::{ CustomMenuItem, Manager, SystemTray, SystemTrayEvent, SystemTrayMenu, SystemTrayMenuItem, WindowEvent, }; use tauri_plugin_log::fern::colors::{Color, ColoredLevelConfig}; -use wooting_macro_backend::config::*; use wooting_macro_backend::*; +use wooting_macro_backend::config::*; -use anyhow::{Context, Error, Result}; +// This is the debug envvar you may wish to set if you want advanced access to debug info from Wootomation. +const DEBUG_ENVVAR: &str = "MACRO_LOG_LEVEL"; #[tauri::command] /// Gets the application config from the current state and sends to frontend. @@ -64,6 +62,15 @@ async fn set_macros( .map_err(|err| err.to_string()) } +#[tauri::command] +async fn is_debug() -> bool { + if let Ok(result) = std::env::var(DEBUG_ENVVAR) { + return log::LevelFilter::from_str(result.as_str()).unwrap() >= log::LevelFilter::Debug; + } else { + false + } +} + #[tauri::command] /// Allows the frontend to disable the macro execution scanning completely. async fn control_grabbing( @@ -109,6 +116,7 @@ fn init_autostart(app_name: &str, set_autolaunch: bool) -> Result<(), Error> { /// Note: this doesn't work on macOS since we cannot give the thread the proper permissions /// (will crash on key grab/listen) async fn main() -> Result<(), Error> { + // The optionENV only takes a string literal and can't be forced to take a const of any type. let log_level: log::LevelFilter = option_env!("MACRO_LOG_LEVEL") .and_then(|s| log::LevelFilter::from_str(s).ok()) .unwrap_or(log::LevelFilter::Info); @@ -147,7 +155,8 @@ async fn main() -> Result<(), Error> { set_macros, get_config, set_config, - control_grabbing + control_grabbing, + is_debug ]) .setup(move |app| { let app_name = &app.package_info().name; diff --git a/src/App.tsx b/src/App.tsx index 63c83e84..68e7a75c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -12,7 +12,7 @@ import MacroSettingsModal from './views/MacroSettingsModal' import SettingsModal from './views/SettingsModal' function App() { - const { viewState, initComplete } = useApplicationContext() + const { viewState, initComplete, appDebugMode } = useApplicationContext() const { isOpen: isOpenSettings, onOpen: onOpenSettings, @@ -24,17 +24,28 @@ function App() { onClose: onCloseMacroSettings } = useDisclosure() - useEffect(() => { - document.addEventListener('contextmenu', (event) => event.preventDefault()) // disables Tauri right click context menu - // TODO: Add disable for ctrl+r and f5, but only when in debug mode - envvar RUST_LOG='debug' + if (appDebugMode !== null && !appDebugMode) { + // Disables Tauri right click context menu + document.addEventListener('contextmenu', (event) => event.preventDefault()) + // Ctrl + f is disabled with this event listener to whether the debug mode is on document.addEventListener('keydown', (event) => { if (event.ctrlKey && event.key.toLowerCase() === 'f') { event.preventDefault() } + if (event.ctrlKey && event.key.toLowerCase() === 'r') { + event.preventDefault() + } + if (event.key.toLowerCase() === 'f5') { + event.preventDefault() + } }) document.addEventListener('selectstart', (event) => event.preventDefault()) + console.log("prevented default action because debug is: ", appDebugMode) + } + + useEffect(() => { init({ data }) - }, []) + }) if (!initComplete) { return ( diff --git a/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx b/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx index 5e2ad117..3046f6ba 100644 --- a/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx +++ b/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx @@ -41,7 +41,11 @@ export default function KeyPressForm({ const bg = useColorModeValue('primary-light.50', 'primary-dark.700') const kebabColour = useColorModeValue('primary-light.500', 'primary-dark.500') const toast = useToast() - const [resetTriggered, setResetTriggered] = useState(false) + + // const setKeypressDurationDebug = (value) => { + // console.log(`setKeypressDuration is called with value: ${value}`); + // setKeypressDuration(value); + // }; useEffect(() => { if ( @@ -52,8 +56,8 @@ export default function KeyPressForm({ const typeString = selectedElement.data.keytype as keyof typeof KeyType setKeypressType(KeyType[typeString]) - setKeypressDuration(selectedElement.data.press_duration) - }, [bg, kebabColour, selectedElement]) + setKeypressDuration(keypressDuration) + }, [bg, kebabColour, selectedElement, keypressDuration]) const onKeypressDurationChange = useCallback( (event: React.ChangeEvent) => { @@ -85,13 +89,23 @@ export default function KeyPressForm({ data: { ...selectedElement.data, press_duration: duration } } updateElement(temp, selectedElementId) - }, [ - keypressDuration, - selectedElement, - selectedElementId, - toast, - updateElement - ]) + }, [keypressDuration, selectedElement, selectedElementId, toast, updateElement]) + + const onResetClick = useCallback(() => { + toast({ + title: 'Default duration applied', + description: `Applied default duration of ${DefaultMacroDelay}ms`, + status: 'info', + duration: 4000, + isClosable: true + }) + setKeypressDuration(DefaultMacroDelay) + const temp: KeyPressEventAction = { + ...selectedElement, + data: { ...selectedElement.data, press_duration: DefaultMacroDelay } + } + updateElement(temp, selectedElementId) + }, [toast, selectedElement, updateElement, selectedElementId]) const onKeypressTypeChange = useCallback( (newType: KeyType) => { @@ -105,25 +119,6 @@ export default function KeyPressForm({ [selectedElement, selectedElementId, updateElement] ) - useEffect(() => { - if (resetTriggered) { - toast({ - title: 'Default duration applied', - description: `Applied default duration of ${DefaultMacroDelay}ms`, - status: 'info', - duration: 4000, - isClosable: true - }) - onInputBlur() - setResetTriggered(false) - } - }, [onInputBlur, resetTriggered, toast]) - - const onResetClick = () => { - setKeypressDuration(DefaultMacroDelay) - setResetTriggered(true) - } - return ( <> diff --git a/src/constants/utils.ts b/src/constants/utils.ts index 6ef82a4b..4fc2d18e 100644 --- a/src/constants/utils.ts +++ b/src/constants/utils.ts @@ -28,6 +28,9 @@ export const updateMacroOutput = (value: boolean): Promise => { frontendBool: !value }) } +export const isDebug = (): Promise => { + return invoke('is_debug', {}) +} export const checkIfMouseButtonArray = ( items: number[] | MouseButton[] diff --git a/src/contexts/applicationContext.tsx b/src/contexts/applicationContext.tsx index fad6fbde..5efadd46 100644 --- a/src/contexts/applicationContext.tsx +++ b/src/contexts/applicationContext.tsx @@ -11,7 +11,7 @@ import { import { useToast } from '@chakra-ui/react' import { ViewState } from '../constants/enums' import { AppState, Collection, CurrentSelection, MacroData } from '../types' -import { updateBackendConfig } from '../constants/utils' +import { isDebug, updateBackendConfig } from '../constants/utils' import { error } from 'tauri-plugin-log' import { invoke } from '@tauri-apps/api' @@ -41,6 +41,19 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { collectionIndex: 0, macroIndex: undefined }) + const [appDebugMode, setAppDebugMode] = useState(null) + + useEffect(() => { + isDebug() + .then((value: boolean) => { + console.error('THIS IS THE VALUE FROM RUST: ', value) + setAppDebugMode(value) + }) + .catch((error) => { + console.log('Debug mode disabled: ', error) + }) + }) + const toast = useToast() useEffect(() => { @@ -171,7 +184,8 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { setSearchValue, isMacroOutputEnabled, changeMacroOutputEnabled, - changeSearchValue + changeSearchValue, + appDebugMode }), [ viewState, @@ -188,7 +202,8 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { setSearchValue, isMacroOutputEnabled, changeMacroOutputEnabled, - changeSearchValue + changeSearchValue, + appDebugMode ] ) diff --git a/src/types.d.ts b/src/types.d.ts index 8621b656..83294f5e 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -1,4 +1,4 @@ -import { MacroType, ViewState, MouseButton } from './constants/enums' +import { MacroType, MouseButton, ViewState } from './constants/enums' import { HidInfo } from './constants/HIDmap' import { PluginEventInfo } from './constants/PluginsEventMap' @@ -26,6 +26,7 @@ export type AppState = { isMacroOutputEnabled: boolean changeMacroOutputEnabled: (value: boolean) => void setSearchValue: (term: string) => void + appDebugMode: boolean | null } export type MacroState = { @@ -167,7 +168,7 @@ export type SystemAction = | { type: 'Open'; action: DirectoryAction } | { type: 'Volume'; action: VolumeAction } | { type: 'Clipboard'; action: ClipboardAction } - // | { type: 'Brightness'; action: MonitorBrightnessAction } +// | { type: 'Brightness'; action: MonitorBrightnessAction } export type DirectoryAction = | { type: 'Directory'; data: string } @@ -198,6 +199,7 @@ export interface KeyboardKeyCategory { name: string elements: HidInfo[] } + export interface PluginCategory { name: string elements: PluginEventInfo[] From b3396669c4823f0dedcc920222c5c841febf284d Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Tue, 30 Jan 2024 12:28:21 +0100 Subject: [PATCH 49/86] remove log --- src/contexts/applicationContext.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/contexts/applicationContext.tsx b/src/contexts/applicationContext.tsx index 5efadd46..7d06e227 100644 --- a/src/contexts/applicationContext.tsx +++ b/src/contexts/applicationContext.tsx @@ -46,7 +46,6 @@ function ApplicationProvider({ children }: ApplicationProviderProps) { useEffect(() => { isDebug() .then((value: boolean) => { - console.error('THIS IS THE VALUE FROM RUST: ', value) setAppDebugMode(value) }) .catch((error) => { From 4f582e99ad655dc65d498bdaebf3e2248711d34a Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Tue, 30 Jan 2024 12:58:36 +0100 Subject: [PATCH 50/86] Final version of updated reset in forms --- .../rightPanel/editForms/DelayForm.tsx | 43 ++++++++----------- .../rightPanel/editForms/KeyPressForm.tsx | 15 ++++--- .../rightPanel/editForms/MousePressForm.tsx | 40 ++++++++++------- 3 files changed, 52 insertions(+), 46 deletions(-) diff --git a/src/components/macroview/rightPanel/editForms/DelayForm.tsx b/src/components/macroview/rightPanel/editForms/DelayForm.tsx index 083e5237..9ccb4e80 100644 --- a/src/components/macroview/rightPanel/editForms/DelayForm.tsx +++ b/src/components/macroview/rightPanel/editForms/DelayForm.tsx @@ -35,7 +35,6 @@ export default function DelayForm({ const bg = useColorModeValue('primary-light.50', 'primary-dark.700') const kebabColour = useColorModeValue('primary-light.500', 'primary-dark.500') const toast = useToast() - const [resetTriggered, setResetTriggered] = useState(false) useEffect(() => { if ( @@ -75,34 +74,30 @@ export default function DelayForm({ data: duration } updateElement(temp, selectedElementId) + }, [delayDuration, selectedElement, selectedElementId, toast, updateElement]) + + const onResetClick = useCallback(() => { + toast({ + title: 'Default duration applied', + description: `Applied default duration of ${config.config.DefaultDelayValue}ms`, + status: 'info', + duration: 4000, + isClosable: true + }) + setDelayDuration(config.config.DefaultDelayValue) + const temp: DelayEventAction = { + ...selectedElement, + data: config.config.DefaultDelayValue + } + updateElement(temp, selectedElementId) }, [ + toast, config.config.DefaultDelayValue, - delayDuration, selectedElement, - selectedElementId, - toast, - updateElement + updateElement, + selectedElementId ]) - useEffect(() => { - if (resetTriggered) { - toast({ - title: 'Default duration applied', - description: `Applied default duration of ${config.config.DefaultDelayValue}ms`, - status: 'info', - duration: 4000, - isClosable: true - }) - onInputBlur() - setResetTriggered(false) - } - }, [config.config.DefaultDelayValue, onInputBlur, resetTriggered, toast]) - - const onResetClick = () => { - setDelayDuration(config.config.DefaultDelayValue) - setResetTriggered(true) - } - return ( <> diff --git a/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx b/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx index 3046f6ba..5980cbfe 100644 --- a/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx +++ b/src/components/macroview/rightPanel/editForms/KeyPressForm.tsx @@ -42,11 +42,6 @@ export default function KeyPressForm({ const kebabColour = useColorModeValue('primary-light.500', 'primary-dark.500') const toast = useToast() - // const setKeypressDurationDebug = (value) => { - // console.log(`setKeypressDuration is called with value: ${value}`); - // setKeypressDuration(value); - // }; - useEffect(() => { if ( selectedElement === undefined || @@ -89,7 +84,13 @@ export default function KeyPressForm({ data: { ...selectedElement.data, press_duration: duration } } updateElement(temp, selectedElementId) - }, [keypressDuration, selectedElement, selectedElementId, toast, updateElement]) + }, [ + keypressDuration, + selectedElement, + selectedElementId, + toast, + updateElement + ]) const onResetClick = useCallback(() => { toast({ @@ -99,7 +100,9 @@ export default function KeyPressForm({ duration: 4000, isClosable: true }) + setKeypressDuration(DefaultMacroDelay) + const temp: KeyPressEventAction = { ...selectedElement, data: { ...selectedElement.data, press_duration: DefaultMacroDelay } diff --git a/src/components/macroview/rightPanel/editForms/MousePressForm.tsx b/src/components/macroview/rightPanel/editForms/MousePressForm.tsx index 65ef4524..ecc77e0d 100644 --- a/src/components/macroview/rightPanel/editForms/MousePressForm.tsx +++ b/src/components/macroview/rightPanel/editForms/MousePressForm.tsx @@ -43,7 +43,6 @@ export default function MousePressForm({ const bg = useColorModeValue('primary-light.50', 'primary-dark.700') const kebabColour = useColorModeValue('primary-light.500', 'primary-dark.500') const toast = useToast() - const [resetTriggered, setResetTriggered] = useState(false) useEffect(() => { const typeString: keyof typeof KeyType = selectedElement.data.data @@ -168,24 +167,33 @@ export default function MousePressForm({ [selectedElement, selectedElementId, updateElement] ) - useEffect(() => { - if (resetTriggered) { - toast({ - title: 'Default duration applied', - description: `Applied default duration of ${DefaultMouseDelay}ms`, - status: 'info', - duration: 4000, - isClosable: true - }) - setResetTriggered(false) - onInputBlur() + const onResetClick = useCallback(() => { + if (selectedElement.data.data.type !== 'DownUp') { + return } - }, [resetTriggered, onInputBlur, toast]) - const onResetClick = () => { + toast({ + title: 'Default duration applied', + description: `Applied default duration of ${DefaultMouseDelay}ms`, + status: 'info', + duration: 4000, + isClosable: true + }) + setMousepressDuration(DefaultMouseDelay) - setResetTriggered(true) - } + + const temp: MouseEventAction = { + ...selectedElement, + data: { + ...selectedElement.data, + data: { + ...selectedElement.data.data, + duration: DefaultMouseDelay + } + } + } + updateElement(temp, selectedElementId) + }, [toast, selectedElement, updateElement, selectedElementId]) return ( <> From 7fcc1d4b167343ebc5386440a57ec7e1d003917c Mon Sep 17 00:00:00 2001 From: medzernik <1900179+medzernik@users.noreply.github.com> Date: Tue, 30 Jan 2024 14:53:12 +0100 Subject: [PATCH 51/86] Rewrote the search logic to be more generic --- .../macroview/leftPanel/SelectElementArea.tsx | 8 +++---- src/components/overview/CollectionPanel.tsx | 4 ++-- src/components/overview/LeftPanel.tsx | 13 +++++------ src/components/overview/MacroCard.tsx | 8 +++---- src/contexts/applicationContext.tsx | 23 +++++++++++-------- src/types.d.ts | 3 ++- 6 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/components/macroview/leftPanel/SelectElementArea.tsx b/src/components/macroview/leftPanel/SelectElementArea.tsx index 25d1ffe6..3b5a4a0c 100644 --- a/src/components/macroview/leftPanel/SelectElementArea.tsx +++ b/src/components/macroview/leftPanel/SelectElementArea.tsx @@ -5,17 +5,17 @@ import { useColorModeValue, VStack } from '@chakra-ui/react' -import { useState } from 'react' import useMainBgColour from '../../../hooks/useMainBgColour' import SelectAreaAccordion from './AccordionComponents/SelectAreaAccordion' +import { useApplicationContext } from '../../../contexts/applicationContext' export default function SelectElementArea() { - const [searchValue, setSearchValue] = useState('') const borderColour = useColorModeValue( 'primary-light.500', 'primary-dark.500' ) const cancelSearchButtonColour = useColorModeValue('#A0AEC0', '#52525b') + const { changeSearchValue, searchValue } = useApplicationContext() return ( @@ -35,7 +35,7 @@ export default function SelectElementArea() { variant="brand" placeholder="Search for an element..." _placeholder={{ opacity: 1, color: borderColour }} - onChange={(event) => setSearchValue(event.target.value)} + onChange={(event) => changeSearchValue(event.target.value)} sx={{ '&::-webkit-search-cancel-button': { WebkitAppearance: 'none', @@ -48,7 +48,7 @@ export default function SelectElementArea() { }} /> - + ) } diff --git a/src/components/overview/CollectionPanel.tsx b/src/components/overview/CollectionPanel.tsx index 27e552d4..ede41d02 100644 --- a/src/components/overview/CollectionPanel.tsx +++ b/src/components/overview/CollectionPanel.tsx @@ -25,7 +25,7 @@ export default function CollectionPanel() { selection, onCollectionUpdate, onSelectedCollectionDelete, - searchValue + isSearching } = useApplicationContext() const currentCollection = useSelectedCollection() const { @@ -101,7 +101,7 @@ export default function CollectionPanel() { borderBottom="1px" borderColor={borderColour} > - {searchValue.length === 0 ? ( + {isSearching ? ( setSearchValue(event.target.value)} + onChange={(event) => changeSearchValue(event.target.value)} /> ) } @@ -64,7 +63,7 @@ export default function LeftPanel({ onOpenSettingsModal }: Props) { changeSelectedCollectionIndex, isMacroOutputEnabled, changeMacroOutputEnabled, - searchValue + isSearching } = useApplicationContext() const [parent] = useAutoAnimate() const toast = useToast() @@ -106,12 +105,12 @@ export default function LeftPanel({ onOpenSettingsModal }: Props) { spacing={1} sx={useScrollbarStyles()} > - {searchValue.length === 0 && + {isSearching && collections.map((collection: Collection, index: number) => ( changeSelectedCollectionIndex(index)} @@ -126,7 +125,7 @@ export default function LeftPanel({ onOpenSettingsModal }: Props) { } /> ))} - {searchValue.length === 0 && ( + {isSearching && (