From 060f1faa10390a000ae2425ff69a27766a4151f0 Mon Sep 17 00:00:00 2001 From: Pauline Date: Wed, 17 Jul 2024 02:41:47 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20fix=20some=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/desktop/package.json | 4 +- crates/core/src/api/cluster/create.rs | 4 +- crates/core/src/api/cluster/mod.rs | 5 +- crates/core/src/api/metadata.rs | 40 +- .../core/src/api/package/import/modrinth.rs | 2 +- crates/core/src/constants.rs | 29 +- crates/core/src/game/arguments.rs | 5 +- crates/core/src/game/mod.rs | 26 +- crates/core/src/store/dirs.rs | 2 +- crates/core/src/store/metadata.rs | 195 +++-- crates/core/src/store/minecraft.rs | 15 +- crates/core/src/store/mod.rs | 5 +- crates/core/src/store/oneconfig.rs | 4 +- package.json | 8 +- packages/scripts/package.json | 2 +- pnpm-lock.yaml | 804 +++++++++++------- 16 files changed, 699 insertions(+), 451 deletions(-) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index b6bc8330..c1f75041 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -29,7 +29,7 @@ "@tauri-apps/plugin-clipboard-manager": "2.1.0-beta.5", "@tauri-apps/plugin-shell": "github:tauri-apps/tauri-plugin-shell#v2", "@thisbeyond/solid-dnd": "^0.7.5", - "@unocss/reset": "^0.61.3", + "@unocss/reset": "^0.61.4", "@untitled-theme/icons-solid": "^0.10.4", "overlayscrollbars": "^2.9.2", "overlayscrollbars-solid": "^0.5.5", @@ -44,7 +44,7 @@ "@types/uuid": "^10.0.0", "jsdom": "^24.1.0", "sass": "^1.77.8", - "unocss": "^0.61.3", + "unocss": "^0.61.4", "vite-plugin-solid": "^2.10.2", "vite-plugin-solid-svg": "^0.8.1", "vite-tsconfig-paths": "^4.3.2" diff --git a/crates/core/src/api/cluster/create.rs b/crates/core/src/api/cluster/create.rs index b761eb30..22940ebf 100644 --- a/crates/core/src/api/cluster/create.rs +++ b/crates/core/src/api/cluster/create.rs @@ -226,7 +226,9 @@ pub(crate) async fn get_loader_version( _ => return Err(CreateClusterError::MissingManifest(loader.to_string()).into()), }; - let loader_meta = loader_meta.to_owned().ok_or(anyhow::anyhow!("couldn't get game versions"))?; + let loader_meta = loader_meta + .to_owned() + .ok_or(anyhow::anyhow!("couldn't get game versions"))?; let loaders = &loader_meta .game_versions diff --git a/crates/core/src/api/cluster/mod.rs b/crates/core/src/api/cluster/mod.rs index 5d5b62e9..83c74c6a 100644 --- a/crates/core/src/api/cluster/mod.rs +++ b/crates/core/src/api/cluster/mod.rs @@ -313,7 +313,10 @@ pub async fn get_optimal_java_version(path: &ClusterPath) -> crate::Result crate::Result { let state = State::get().await?; - let meta = state.metadata.read().await.minecraft.clone().ok_or(anyhow::anyhow!("couldn't get minecraft metadata"))?; + let meta = state + .metadata + .read() + .await + .minecraft + .clone() + .ok_or(anyhow::anyhow!("couldn't get minecraft metadata"))?; Ok(meta) } @@ -17,7 +23,13 @@ pub async fn get_minecraft_versions() -> crate::Result { #[tracing::instrument] pub async fn get_fabric_versions() -> crate::Result { let state = State::get().await?; - let meta = state.metadata.read().await.fabric.clone().ok_or(anyhow::anyhow!("couldn't get fabric metadata"))?; + let meta = state + .metadata + .read() + .await + .fabric + .clone() + .ok_or(anyhow::anyhow!("couldn't get fabric metadata"))?; Ok(meta) } @@ -26,7 +38,13 @@ pub async fn get_fabric_versions() -> crate::Result { #[tracing::instrument] pub async fn get_quilt_versions() -> crate::Result { let state = State::get().await?; - let meta = state.metadata.read().await.quilt.clone().ok_or(anyhow::anyhow!("couldn't get quilt metadata"))?; + let meta = state + .metadata + .read() + .await + .quilt + .clone() + .ok_or(anyhow::anyhow!("couldn't get quilt metadata"))?; Ok(meta) } @@ -35,7 +53,13 @@ pub async fn get_quilt_versions() -> crate::Result { #[tracing::instrument] pub async fn get_forge_versions() -> crate::Result { let state = State::get().await?; - let meta = state.metadata.read().await.forge.clone().ok_or(anyhow::anyhow!("couldn't get forge metadata"))?; + let meta = state + .metadata + .read() + .await + .forge + .clone() + .ok_or(anyhow::anyhow!("couldn't get forge metadata"))?; Ok(meta) } @@ -44,7 +68,13 @@ pub async fn get_forge_versions() -> crate::Result { #[tracing::instrument] pub async fn get_neoforge_versions() -> crate::Result { let state = State::get().await?; - let meta = state.metadata.read().await.neoforge.clone().ok_or(anyhow::anyhow!("couldn't get neoforge metadata"))?; + let meta = state + .metadata + .read() + .await + .neoforge + .clone() + .ok_or(anyhow::anyhow!("couldn't get neoforge metadata"))?; Ok(meta) } diff --git a/crates/core/src/api/package/import/modrinth.rs b/crates/core/src/api/package/import/modrinth.rs index 327a61c3..ab7ae0de 100644 --- a/crates/core/src/api/package/import/modrinth.rs +++ b/crates/core/src/api/package/import/modrinth.rs @@ -1,8 +1,8 @@ //! Launcher Import: Modrinth App //! Source Code available at https://github.com/modrinth/code -use std::path::PathBuf; use serde::{Deserialize, Serialize}; +use std::path::PathBuf; use crate::prelude::ClusterPath; use crate::utils::io; diff --git a/crates/core/src/constants.rs b/crates/core/src/constants.rs index d7b4c721..043d7c57 100644 --- a/crates/core/src/constants.rs +++ b/crates/core/src/constants.rs @@ -3,19 +3,26 @@ //! Public constant variables and strings that are used throughout the launcher. //! Can be shared publically, any encrypted secrets should be stored in [`crate::store::credentials`]. -// Basic Metadata +// =========== Core Metadata =========== +/// The name of the launcher. pub const NAME: &str = "OneLauncher"; -pub const VERSION: &str = "0.1.0"; +/// The version of the launcher +pub const VERSION: &str = "0.1.0"; // todo: env +/// The ID of the launcher. +pub const ID: &str = "org.polyfrost.launcher"; -// Authentication and HTTP (TODO: env?) -pub const APP_CONFIG_DIR: &str = "org.polyfrost.launcher"; +// =========== Authentication =========== +/// The Discord RPC client ID. pub const DISCORD_RPC_CLIENT_ID: &str = "1234567890000000"; -// Microsoft Authentication -pub const CLIENT_ID: &str = "9419b7ee-1448-4d1b-b52a-550d8f36ab56"; +/// Microsoft client ID. pub const MICROSOFT_CLIENT_ID: &str = ""; +/// Microsoft login redirect URI. +pub const REDIRECT_URL: &str = "https://login.live.com/oauth20_desktop.srf"; +/// Microsoft login xboxlive scopes to get tokens. +pub const SCOPES: &str = "service::user.auth.xboxlive.com::MBI_SSL"; -// OS constants which match Minecraft's/Mojang's scheme +// =========== Hacky Mojang-spec OS constants =========== #[cfg(target_os = "windows")] pub const TARGET_OS: &str = "windows"; @@ -31,13 +38,7 @@ pub const NATIVE_ARCH: &str = "32"; #[cfg(target_arch = "x86_64")] pub const NATIVE_ARCH: &str = "64"; -// TODO: Add more architectures #[cfg(all(not(target_arch = "x86_64"), not(target_arch = "x86")))] pub const NATIVE_ARCH: &str = "64"; -// Minecraft library splitter -#[cfg(target_os = "windows")] -pub const LIBRARY_SPLITTER: &str = ";"; - -#[cfg(not(target_os = "windows"))] -pub const LIBRARY_SPLITTER: &str = ":"; +// TODO: Add more architectures diff --git a/crates/core/src/game/arguments.rs b/crates/core/src/game/arguments.rs index 2fed9085..970ce19b 100644 --- a/crates/core/src/game/arguments.rs +++ b/crates/core/src/game/arguments.rs @@ -207,9 +207,10 @@ fn parse_minecraft_argument( .replace("${auth_player_name}", username) .replace("${auth_xuid}", "10") .replace("${auth_uuid}", &uuid.simple().to_string()) - .replace("${client_id}", crate::constants::CLIENT_ID) + .replace("${uuid}", &uuid.simple().to_string()) + .replace("${clientid}", crate::constants::MICROSOFT_CLIENT_ID) .replace("${user_properties}", "{}") - .replace("${user_type", "msa") + .replace("${user_type}", "msa") .replace("${version_name}", version) .replace("${asset_index_name}", asset_index) .replace( diff --git a/crates/core/src/game/mod.rs b/crates/core/src/game/mod.rs index 8de032f8..18dbdfd2 100644 --- a/crates/core/src/game/mod.rs +++ b/crates/core/src/game/mod.rs @@ -72,11 +72,9 @@ pub async fn install_minecraft( let metadata = state.metadata.read().await; let version_manifest = metadata.minecraft.to_owned(); - let versions = version_manifest - .ok_or(anyhow::anyhow!( - "couldn't get minecraft manifest" - ))? - .versions; + let versions = version_manifest + .ok_or(anyhow::anyhow!("couldn't get minecraft manifest"))? + .versions; let version_idx = versions .iter() @@ -87,11 +85,7 @@ pub async fn install_minecraft( ))?; let version = &versions[version_idx]; - let updated = version_idx - <= versions - .iter() - .position(|g| g.id == "22w16a") - .unwrap_or(0); // LWJGL patching + let updated = version_idx <= versions.iter().position(|g| g.id == "22w16a").unwrap_or(0); // LWJGL patching let version_jar = cluster .meta .loader_version @@ -277,9 +271,9 @@ pub async fn launch_minecraft( let instance_path = &io::canonicalize(instance_path)?; let version_manifest = metadata.minecraft.to_owned(); - let versions = version_manifest - .ok_or(anyhow::anyhow!("couldn't get minecraft manifest"))? - .versions; + let versions = version_manifest + .ok_or(anyhow::anyhow!("couldn't get minecraft manifest"))? + .versions; let version_index = versions .iter() @@ -290,11 +284,7 @@ pub async fn launch_minecraft( ))?; let version = &versions[version_index]; - let updated = version_index - <= versions - .iter() - .position(|x| x.id == "22w16a") - .unwrap_or(0); + let updated = version_index <= versions.iter().position(|x| x.id == "22w16a").unwrap_or(0); let version_jar = cluster .meta .loader_version diff --git a/crates/core/src/store/dirs.rs b/crates/core/src/store/dirs.rs index 79ea023c..38aa9b36 100644 --- a/crates/core/src/store/dirs.rs +++ b/crates/core/src/store/dirs.rs @@ -30,7 +30,7 @@ impl Directories { /// Bootstrap the initial settings directory on first startup. pub fn init_settings_dir() -> Option { Self::env_path("ONELAUNCHER_CONFIG") - .or_else(|| Some(dirs::config_dir()?.join(constants::APP_CONFIG_DIR))) + .or_else(|| Some(dirs::config_dir()?.join(constants::ID))) } /// Bootstrap the initial settings directory on first startup. diff --git a/crates/core/src/store/metadata.rs b/crates/core/src/store/metadata.rs index 29d6acc5..af8ed387 100644 --- a/crates/core/src/store/metadata.rs +++ b/crates/core/src/store/metadata.rs @@ -36,61 +36,61 @@ impl Metadata { format!("{METADATA_URL}/{name}/v{version}/manifest.json") } - /// Fetch all available metadata types that are currently [`None`] and get a new [`Metadata`] structure. - /// Useful for when reading from cache and a certain object not existing - pub async fn fetch_errored(&mut self, semaphore: &FetchSemaphore) -> crate::Result { - let mut did_change = false; - if self.minecraft.is_none() { - self.minecraft = Self::fetch_minecraft(semaphore).await; + /// Fetch all available metadata types that are currently [`None`] and get a new [`Metadata`] structure. + /// Useful for when reading from cache and a certain object not existing + pub async fn fetch_errored(&mut self, semaphore: &FetchSemaphore) -> crate::Result { + let mut did_change = false; + if self.minecraft.is_none() { + self.minecraft = Self::fetch_minecraft(semaphore).await; - if self.minecraft.is_some() { - did_change = true; - } - } + if self.minecraft.is_some() { + did_change = true; + } + } - if self.fabric.is_none() { - self.fabric = Self::fetch_fabric(semaphore).await; + if self.fabric.is_none() { + self.fabric = Self::fetch_fabric(semaphore).await; - if self.fabric.is_some() { - did_change = true; - } - } + if self.fabric.is_some() { + did_change = true; + } + } - if self.quilt.is_none() { - self.quilt = Self::fetch_quilt(semaphore).await; + if self.quilt.is_none() { + self.quilt = Self::fetch_quilt(semaphore).await; - if self.quilt.is_some() { - did_change = true; - } - } + if self.quilt.is_some() { + did_change = true; + } + } - if self.neoforge.is_none() { - self.neoforge = Self::fetch_neoforge(semaphore).await; + if self.neoforge.is_none() { + self.neoforge = Self::fetch_neoforge(semaphore).await; - if self.neoforge.is_some() { - did_change = true; - } - } + if self.neoforge.is_some() { + did_change = true; + } + } - if self.forge.is_none() { - self.forge = Self::fetch_forge(semaphore).await; + if self.forge.is_none() { + self.forge = Self::fetch_forge(semaphore).await; - if self.forge.is_some() { - did_change = true; - } - } + if self.forge.is_some() { + did_change = true; + } + } - Ok(did_change) - } + Ok(did_change) + } /// Fetch all available metadata types and get a new [`Metadata`] structure. pub async fn fetch(semaphore: &FetchSemaphore) -> crate::Result { let (minecraft, fabric, quilt, neoforge, forge) = tokio::join! { Self::fetch_minecraft(semaphore), - Self::fetch_fabric(semaphore), - Self::fetch_quilt(semaphore), - Self::fetch_neoforge(semaphore), - Self::fetch_forge(semaphore) + Self::fetch_fabric(semaphore), + Self::fetch_quilt(semaphore), + Self::fetch_neoforge(semaphore), + Self::fetch_forge(semaphore) }; Ok(Self { @@ -102,30 +102,45 @@ impl Metadata { }) } - async fn fetch_minecraft(semaphore: &FetchSemaphore) -> Option { - let url = Self::get_manifest("minecraft", interpulse::api::minecraft::CURRENT_FORMAT_VERSION); - fetch_version_manifest(Some(&url), semaphore).await.ok() - } + async fn fetch_minecraft(semaphore: &FetchSemaphore) -> Option { + let url = Self::get_manifest( + "minecraft", + interpulse::api::minecraft::CURRENT_FORMAT_VERSION, + ); + fetch_version_manifest(Some(&url), semaphore).await.ok() + } - async fn fetch_fabric(semaphore: &FetchSemaphore) -> Option { - let url = Self::get_manifest("fabric", interpulse::api::modded::CURRENT_FABRIC_FORMAT_VERSION); - fetch_modded_manifest(&url, semaphore).await.ok() - } - - async fn fetch_quilt(semaphore: &FetchSemaphore) -> Option { - let url = Self::get_manifest("quilt", interpulse::api::modded::CURRENT_QUILT_FORMAT_VERSION); - fetch_modded_manifest(&url, semaphore).await.ok() - } + async fn fetch_fabric(semaphore: &FetchSemaphore) -> Option { + let url = Self::get_manifest( + "fabric", + interpulse::api::modded::CURRENT_FABRIC_FORMAT_VERSION, + ); + fetch_modded_manifest(&url, semaphore).await.ok() + } - async fn fetch_neoforge(semaphore: &FetchSemaphore) -> Option { - let url = Self::get_manifest("neoforge", interpulse::api::modded::CURRENT_NEOFORGE_FORMAT_VERSION); - fetch_modded_manifest(&url, semaphore).await.ok() - } + async fn fetch_quilt(semaphore: &FetchSemaphore) -> Option { + let url = Self::get_manifest( + "quilt", + interpulse::api::modded::CURRENT_QUILT_FORMAT_VERSION, + ); + fetch_modded_manifest(&url, semaphore).await.ok() + } - async fn fetch_forge(semaphore: &FetchSemaphore) -> Option { - let url = Self::get_manifest("forge", interpulse::api::modded::CURRENT_FORGE_FORMAT_VERSION); - fetch_modded_manifest(&url, semaphore).await.ok() - } + async fn fetch_neoforge(semaphore: &FetchSemaphore) -> Option { + let url = Self::get_manifest( + "neoforge", + interpulse::api::modded::CURRENT_NEOFORGE_FORMAT_VERSION, + ); + fetch_modded_manifest(&url, semaphore).await.ok() + } + + async fn fetch_forge(semaphore: &FetchSemaphore) -> Option { + let url = Self::get_manifest( + "forge", + interpulse::api::modded::CURRENT_FORGE_FORMAT_VERSION, + ); + fetch_modded_manifest(&url, semaphore).await.ok() + } /// Initialize the core Metadata manager. #[tracing::instrument(skip(io_semaphore, fetch_semaphore))] @@ -134,21 +149,21 @@ impl Metadata { dirs: &Directories, online: bool, io_semaphore: &IoSemaphore, - fetch_semaphore: &FetchSemaphore, + fetch_semaphore: &FetchSemaphore, ) -> crate::Result { let mut metadata = None; let path = dirs.caches_dir().await.join("metadata.json"); let backup = dirs.caches_dir().await.join("metadata.json.bak"); - let mut should_write = false; + let mut should_write = false; if let Ok(mut metadata_json) = read_json::(&path, io_semaphore).await { - should_write = metadata_json.fetch_errored(fetch_semaphore).await?; + should_write = metadata_json.fetch_errored(fetch_semaphore).await?; metadata = Some(metadata_json); } else if online { let res = async { let fetch_data = Self::fetch(fetch_semaphore).await?; - should_write = true; + should_write = true; metadata = Some(fetch_data); Ok::<(), crate::Error>(()) @@ -166,18 +181,20 @@ impl Metadata { copy(&backup, &path).await?; } - if should_write { - write( - &path, - &serde_json::to_vec(&metadata).unwrap_or_default(), - io_semaphore, - ).await?; - write( - &backup, - &serde_json::to_vec(&metadata).unwrap_or_default(), - io_semaphore, - ).await?; - } + if should_write { + write( + &path, + &serde_json::to_vec(&metadata).unwrap_or_default(), + io_semaphore, + ) + .await?; + write( + &backup, + &serde_json::to_vec(&metadata).unwrap_or_default(), + io_semaphore, + ) + .await?; + } if let Some(meta) = metadata { Ok(meta) @@ -189,7 +206,7 @@ impl Metadata { /// Update and backup all available metadata. pub async fn update() { let res = async { - let state = State::get().await?; + let state = State::get().await?; let fetch_data = Metadata::fetch(&state.fetch_semaphore).await?; let path = state.directories.caches_dir().await.join("metadata.json"); @@ -230,13 +247,12 @@ async fn fetch_version_manifest( url: Option<&str>, semaphore: &FetchSemaphore, ) -> crate::Result { - let url = url.unwrap_or(interpulse::api::minecraft::VERSION_MANIFEST_URL); + let url = url.unwrap_or(interpulse::api::minecraft::VERSION_MANIFEST_URL); Ok(serde_json::from_slice( - &fetch(url, None, semaphore).await - .map_err(|err| { - tracing::error!("couldn't fetch version manifest at '{}'", url); - err - })?, + &fetch(url, None, semaphore).await.map_err(|err| { + tracing::error!("couldn't fetch version manifest at '{}'", url); + err + })?, )?) } @@ -245,10 +261,9 @@ async fn fetch_modded_manifest( semaphore: &FetchSemaphore, ) -> crate::Result { Ok(serde_json::from_slice( - &fetch(url, None, semaphore).await - .map_err(|err| { - tracing::error!("couldn't fetch modded manifest at '{}'", url); - err - })? - )?) + &fetch(url, None, semaphore).await.map_err(|err| { + tracing::error!("couldn't fetch modded manifest at '{}'", url); + err + })?, + )?) } diff --git a/crates/core/src/store/minecraft.rs b/crates/core/src/store/minecraft.rs index fe016206..3ecfad40 100644 --- a/crates/core/src/store/minecraft.rs +++ b/crates/core/src/store/minecraft.rs @@ -13,6 +13,8 @@ use std::collections::HashMap; use std::fmt::Write; use uuid::Uuid; +use crate::constants::{MICROSOFT_CLIENT_ID, SCOPES, REDIRECT_URL}; + const AUTH_STORE: &str = "authentication.json"; /// The core state of Microsoft authentication for the launcher @@ -310,11 +312,6 @@ impl MinecraftState { } } -/// Microsoft login redirect URI. -const REDIRECT_URL: &str = "https://login.live.com/oauth20_desktop.srf"; -/// Microsoft login xboxlive scopes to get tokens. -const SCOPES: &str = "service::user.auth.xboxlive.com::MBI_SSL"; - /// A [`reqwest::Request`] with a [`DateTime`] attached to it. struct RequestWithDate { pub date: DateTime, @@ -450,7 +447,7 @@ async fn sisu_authenticate( "https://sisu.xboxlive.com/authenticate", "/authenticate", json!({ - "AppId": crate::constants::MICROSOFT_CLIENT_ID, + "AppId": MICROSOFT_CLIENT_ID, "DeviceToken": token, "Offers": [SCOPES], "Query": { @@ -503,7 +500,7 @@ async fn oauth_token( verify: &str, ) -> Result, MinecraftAuthError> { let mut query = HashMap::new(); - query.insert("client_id", crate::constants::MICROSOFT_CLIENT_ID); + query.insert("client_id", MICROSOFT_CLIENT_ID); query.insert("code", code); query.insert("code_verifier", verify); query.insert("grant_type", "authorization_code"); @@ -551,7 +548,7 @@ async fn oauth_refresh( refresh_token: &str, ) -> Result, MinecraftAuthError> { let mut query = HashMap::new(); - query.insert("client_id", crate::constants::MICROSOFT_CLIENT_ID); + query.insert("client_id", MICROSOFT_CLIENT_ID); query.insert("refresh_token", refresh_token); query.insert("grant_type", "refresh_token"); query.insert("redirect_uri", REDIRECT_URL); @@ -618,7 +615,7 @@ async fn sisu_authorize( "/authorize", json!({ "AccessToken": format!("t={access_token}"), - "AppId": crate::constants::MICROSOFT_CLIENT_ID, + "AppId": MICROSOFT_CLIENT_ID, "DeviceToken": device_token, "ProofKey": { // kibty (kty) diff --git a/crates/core/src/store/mod.rs b/crates/core/src/store/mod.rs index 3992502e..38f978bb 100644 --- a/crates/core/src/store/mod.rs +++ b/crates/core/src/store/mod.rs @@ -131,8 +131,9 @@ impl State { let is_offline = !http::check_internet_connection(3).await; - // TODO: Make this run in the background, this delays launcher startup by a couple seconds - let metadata_in = Metadata::initialize(&directories, !is_offline, &io_semaphore, &fetch_semaphore); + // TODO: Make this run in the background, this delays launcher startup by a couple seconds + let metadata_in = + Metadata::initialize(&directories, !is_offline, &io_semaphore, &fetch_semaphore); let clusters_in = Clusters::initialize(&directories, &mut watcher); let users_in = MinecraftState::initialize(&directories, &io_semaphore); let (metadata, clusters, users) = crate::ingress_join! { diff --git a/crates/core/src/store/oneconfig.rs b/crates/core/src/store/oneconfig.rs index 4e2ffc7f..758beec9 100644 --- a/crates/core/src/store/oneconfig.rs +++ b/crates/core/src/store/oneconfig.rs @@ -7,7 +7,7 @@ use uuid::Uuid; /// Wrapper over an [`async_tungstenite::WebSocketStream`] to connect to the OneConfig server. pub struct OneConfig { /// The public tokio socket connection. - socket: async_tungstenite::WebSocketStream, + pub socket: async_tungstenite::WebSocketStream, } /// A WebSocket packet while updating a mod to display a GUI in game. @@ -23,7 +23,7 @@ pub struct ModUpdatePacket { impl OneConfig { /// Initializes a OneConfig socket connection on localhost port `4023`. - pub async fn new(cluster: ClusterPath) -> crate::Result { + pub async fn initialize(cluster: ClusterPath) -> crate::Result { let (socket, _) = async_tungstenite::tokio::connect_async(format!( "wss://localhost:4023/oneconfig/ws?cluster={cluster}" )) diff --git a/package.json b/package.json index 908204e5..de2b9004 100644 --- a/package.json +++ b/package.json @@ -22,17 +22,17 @@ "release:node": "pnpm bumpp -r" }, "devDependencies": { - "@flowr/eslint-config": "^3.8.7", + "@flowr/eslint-config": "^3.8.8", "@types/node": "^20.14.10", - "@vitest/ui": "^2.0.2", + "@vitest/ui": "^2.0.3", "bumpp": "^9.4.1", "eslint": "^9.7.0", "eslint-plugin-solid": "^0.14.1", "ts-node": "^10.9.2", "tsx": "^4.16.2", "typescript": "^5.5.3", - "vite": "^5.3.3", - "vitest": "^2.0.2" + "vite": "^5.3.4", + "vitest": "^2.0.3" }, "pnpm": { "patchDependencies": { diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 20b4b1ea..e05e47b5 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -17,7 +17,7 @@ "tauri": "tsx tauri.ts" }, "dependencies": { - "@flowr/utils": "^3.8.7", + "@flowr/utils": "^3.8.8", "@iarna/toml": "^2.2.5", "execa": "^9.3.0", "semver": "^7.6.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7622b9af..7e5dee31 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,14 +9,14 @@ importers: .: devDependencies: '@flowr/eslint-config': - specifier: ^3.8.7 - version: 3.8.7(@unocss/eslint-plugin@0.61.3(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-solid@0.14.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-vue@9.27.0(eslint@9.7.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.7.0))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2)(jsdom@24.1.0)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.7.0)) + specifier: ^3.8.8 + version: 3.8.8(@unocss/eslint-plugin@0.61.4(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-solid@0.14.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-vue@9.27.0(eslint@9.7.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.7.0))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.0.3(@types/node@20.14.10)(@vitest/ui@2.0.3)(jsdom@24.1.0)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.7.0)) '@types/node': specifier: ^20.14.10 version: 20.14.10 '@vitest/ui': - specifier: ^2.0.2 - version: 2.0.2(vitest@2.0.2) + specifier: ^2.0.3 + version: 2.0.3(vitest@2.0.3) bumpp: specifier: ^9.4.1 version: 9.4.1 @@ -36,11 +36,11 @@ importers: specifier: ^5.5.3 version: 5.5.3 vite: - specifier: ^5.3.3 - version: 5.3.3(@types/node@20.14.10)(sass@1.77.8) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.14.10)(sass@1.77.8) vitest: - specifier: ^2.0.2 - version: 2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2(vitest@2.0.2))(jsdom@24.1.0)(sass@1.77.8) + specifier: ^2.0.3 + version: 2.0.3(@types/node@20.14.10)(@vitest/ui@2.0.3)(jsdom@24.1.0)(sass@1.77.8) apps/desktop: dependencies: @@ -87,8 +87,8 @@ importers: specifier: ^0.7.5 version: 0.7.5(solid-js@1.8.18) '@unocss/reset': - specifier: ^0.61.3 - version: 0.61.3 + specifier: ^0.61.4 + version: 0.61.4 '@untitled-theme/icons-solid': specifier: ^0.10.4 version: 0.10.4(solid-js@1.8.18) @@ -116,7 +116,7 @@ importers: version: 2.0.0-beta.20 '@testing-library/jest-dom': specifier: ^6.4.6 - version: 6.4.6(vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2(vitest@2.0.2))(jsdom@24.1.0)(sass@1.77.8)) + version: 6.4.6(vitest@2.0.3(@types/node@20.14.11)(@vitest/ui@2.0.3(vitest@2.0.3))(jsdom@24.1.0)(sass@1.77.8)) '@types/uuid': specifier: ^10.0.0 version: 10.0.0 @@ -127,17 +127,17 @@ importers: specifier: ^1.77.8 version: 1.77.8 unocss: - specifier: ^0.61.3 - version: 0.61.3(postcss@8.4.39)(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)) + specifier: ^0.61.4 + version: 0.61.4(postcss@8.4.39)(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)) vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(@testing-library/jest-dom@6.4.6(vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2(vitest@2.0.2))(jsdom@24.1.0)(sass@1.77.8)))(solid-js@1.8.18)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)) + version: 2.10.2(@testing-library/jest-dom@6.4.6(vitest@2.0.3(@types/node@20.14.11)(@vitest/ui@2.0.3(vitest@2.0.3))(jsdom@24.1.0)(sass@1.77.8)))(solid-js@1.8.18)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)) vite-plugin-solid-svg: specifier: ^0.8.1 - version: 0.8.1(solid-js@1.8.18)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)) + version: 0.8.1(solid-js@1.8.18)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.5.3)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)) + version: 4.3.2(typescript@5.5.3)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)) packages/client: dependencies: @@ -172,8 +172,8 @@ importers: packages/scripts: dependencies: '@flowr/utils': - specifier: ^3.8.7 - version: 3.8.7 + specifier: ^3.8.8 + version: 3.8.8 '@iarna/toml': specifier: ^2.2.5 version: 2.2.5 @@ -224,6 +224,14 @@ packages: resolution: {integrity: sha512-6AWcmZC/MZCO0yKys4uhg5NlxL0ESF3K6IAaoQ+xSXvPyPyxNWRafP+GDbI88Oh68O7QkJgmEtedWPM9U0pZNg==} engines: {node: '>=6.9.0'} + '@babel/core@7.24.9': + resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.24.10': + resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.24.8': resolution: {integrity: sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==} engines: {node: '>=6.9.0'} @@ -272,6 +280,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.24.9': + resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.24.7': resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} @@ -369,6 +383,10 @@ packages: resolution: {integrity: sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==} engines: {node: '>=6.9.0'} + '@babel/types@7.24.9': + resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + engines: {node: '>=6.9.0'} + '@clack/core@0.3.4': resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} @@ -559,8 +577,8 @@ packages: resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@flowr/eslint-config@3.8.7': - resolution: {integrity: sha512-OE/lqaN8MSuEsCpWnRvOkTWgpGO+1rQKhmfKEDFV/f+AXUgzdBQqkjxtIQ1xqBG/sOEYwnQAKrFZvopWoFiy6A==} + '@flowr/eslint-config@3.8.8': + resolution: {integrity: sha512-i3K/LDXRz52Rh+N4sRBlM6qmSDsWdFhDP5CXO4xFPSUZ4JjMiq0CdbqAgB1eI5N8FDryzdHADqi1KL2MEOGMww==} engines: {node: '>=20'} peerDependencies: '@eslint-react/eslint-plugin': ^1.5.8 @@ -617,8 +635,8 @@ packages: vue-eslint-parser: optional: true - '@flowr/utils@3.8.7': - resolution: {integrity: sha512-MLkaK/+wRSp9GrkwE6QE/ilUeYfWTl+6Satp2UQYeb+o1nMuRvCqYeqdVc0xtbdkAubi7YYKL1XMRFcQphpexg==} + '@flowr/utils@3.8.8': + resolution: {integrity: sha512-sFfejpDzjUFd6Rc0NeLPR3PQSUmRWLZhjqNWcAQqYHbNH507Cl2HhhmcRO1cYghE0/qECCUTDHUqsC7Yd4dYJw==} engines: {node: '>=20'} '@fontsource/poppins@5.0.14': @@ -1057,6 +1075,9 @@ packages: '@types/node@20.14.10': resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} + '@types/node@20.14.11': + resolution: {integrity: sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1094,12 +1115,16 @@ packages: resolution: {integrity: sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@7.16.1': + resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.0.0-alpha.41': resolution: {integrity: sha512-iNxuQ0TMVfFiMJ2al4bGd/mY9+aLtBxnHfo7B2xoVzR6cRFgUdBLlMa//MSIjSmVRpCEqNLQnkxpJb96tFG+xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.0.0-alpha.42': - resolution: {integrity: sha512-3nS6VEzxUPEMvqadRaGkjZuL+fsjNf5lCYbvS0IQYzqJl7338yhxvPCraHmXe/xlB08p+5BAd6JYAbkTeSXxJw==} + '@typescript-eslint/scope-manager@8.0.0-alpha.44': + resolution: {integrity: sha512-0w0pDILwfwRXSz9lQBXnJmeGaIbSBgl4vAw/lB2kCnOKYl2SXCVbdNOHPwxWigvQ08QVpuaKy+wEjbFKr9Xwfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/type-utils@8.0.0-alpha.41': @@ -1115,12 +1140,16 @@ packages: resolution: {integrity: sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@7.16.1': + resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.0.0-alpha.41': resolution: {integrity: sha512-n0P2FP3YC3pD3yoiCf4lHqbUP45xlnOk8HkjB+LtKSUZZWLLJ8k1ZXZtQj7MEX22tytCMj//Bmq403xFuCwfIg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.0.0-alpha.42': - resolution: {integrity: sha512-cvfuxLiSVi6EfsgE/1A07JD67pnv+Grf9YMhGAKUsokIvsMcusLSI1h2On6qoyZghJuFXkH3hiMsg7DtxZBtsw==} + '@typescript-eslint/types@8.0.0-alpha.44': + resolution: {integrity: sha512-FNBBUTJBNbIaTJhhBbSNxKv+qS8lrwwnpBg36APp5fhDRu8K/YFQZP/VEa19nKBz+8+QUK7R6wV9DHYjj56S7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.16.0': @@ -1132,6 +1161,15 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@7.16.1': + resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/typescript-estree@8.0.0-alpha.41': resolution: {integrity: sha512-adCr+vbLYTFhwhIwjIjjMxTdUYiPA2Jlyuhnbj092IzgLHtT79bvuwcgPWeTyLbFb/13SMKmOEka00xHiqLpig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1141,8 +1179,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.0.0-alpha.42': - resolution: {integrity: sha512-rIHLylSgsfY5hTE68hd8UXcacZxOq4DWAitRKF8xs33hEBDyxInj4FtUglYU420HvFqyVFtVdB7WEFY4cFQ+iA==} + '@typescript-eslint/typescript-estree@8.0.0-alpha.44': + resolution: {integrity: sha512-IyLELYPMFaleWpEVrcYhSfgFXFx4/505P4/vi9Dfp6s6T2xapyAdti6WL9iZbnXk72SL5M0wMp3V73nHn8ce1A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1156,14 +1194,20 @@ packages: peerDependencies: eslint: ^8.56.0 + '@typescript-eslint/utils@7.16.1': + resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + '@typescript-eslint/utils@8.0.0-alpha.41': resolution: {integrity: sha512-DTxc9VdERS6iloiw1P5tgRDqRArmp/sIuvgdHBvGh2SiltEFc3VjLGnHHGSTr6GfH7tjFWvcCnCtxx+pjWfp5Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/utils@8.0.0-alpha.42': - resolution: {integrity: sha512-ousp9L07jDosMqnayZNF8QOJB2FDZP7lSN2lUI7BknV5B1beUoPizWZl0yDHxrk64ldZu5JoqkhAbOcbPNJu5Q==} + '@typescript-eslint/utils@8.0.0-alpha.44': + resolution: {integrity: sha512-gOSA4Yo1jufcOuV68yX3hzpwzufd/Ru6KYL04od1T1c5tt6cvN3i5D5Tc3BBJ3xYFE7ge821mJbUJMTc+BMaWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1172,101 +1216,105 @@ packages: resolution: {integrity: sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@7.16.1': + resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.0.0-alpha.41': resolution: {integrity: sha512-uetCAUBVC+YarBdZnWzDDgX11PpAEGV8Cw31I3d1xNrhx6/bJGThKX+holEmd3amMdnr4w/XUKH/4YuQOgtjDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.0.0-alpha.42': - resolution: {integrity: sha512-Bf/BObckzDnCS9AslkTsuH1vU+h4rppUrmPbTbhGlPurmss6Lt/Ft9H8vQ8wXeN8rk0drRhML2Feo6aODLeKdA==} + '@typescript-eslint/visitor-keys@8.0.0-alpha.44': + resolution: {integrity: sha512-geWzLM8S6vYGdhA01mWJyGh2V/7VRzAmsD6ZKuc/rLkeJhYjvkMY0g0uMDw/7wmNLeRrpjHnL8HJklrpAlrb9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unocss/astro@0.61.3': - resolution: {integrity: sha512-VTgO+nm7PW7/VJt1kf1/4qTqMp4X4CdNG1XjYRGmCTONW+yHhFUEC1NAXt7t2wKEvCYSf5ObmjYowr2qM+GafQ==} + '@unocss/astro@0.61.4': + resolution: {integrity: sha512-+k0P9cHuh2D9UCScVbEXTtseoQOWN9I2RhzTiZn5t9RDZGjI6EuY/dFyRPjgj51Gb9LVkOW58mhrR6rwes/5hQ==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: vite: optional: true - '@unocss/cli@0.61.3': - resolution: {integrity: sha512-yj4whI4PwwK9cZXVrtl10AkZlyl9+569xYX+g89cBxqG2wpnbfBvug/hsvw3DyPG6i2MxKAv3Z78uruKnzCIjw==} + '@unocss/cli@0.61.4': + resolution: {integrity: sha512-7UV/JaZzN7jVpnAWfKART5JtnSa6dW5Ti2WG4Cd4Vbu0znOy37zhnlJLI7U73aYoZBha6Y5r9YkkR+heG3a+Hg==} engines: {node: '>=14'} hasBin: true - '@unocss/config@0.61.3': - resolution: {integrity: sha512-ZSSj5ST8XhiKoi2hLtVcyS8YJxn+Ug/WfasQ2wwOArcYfVFzZUoOQKbLo85hFuI7NV5Fh/aQREoVaJQI111jDA==} + '@unocss/config@0.61.4': + resolution: {integrity: sha512-QUyod6oDpOA0ZRc8oieHSfmglAiAIAnKPX4NtIoIrrr+ptcho/o8sPCOXx94nnjE3CGKQjyvrkvMn1aUhs6YWA==} engines: {node: '>=14'} - '@unocss/core@0.61.3': - resolution: {integrity: sha512-9vixY1i5E0DQFtHJz/pHyFlFsiXJgL1bKHuocbl+GUi09lY/gE9TRm2qr2JOJx/BF720tMv9VxYI8Zq3EyPOXA==} + '@unocss/core@0.61.4': + resolution: {integrity: sha512-239uKXaCaMA7BCIRB2OkMVhK6Q4jlYc/DUP1sYjPUnkoZoBfBMj1LDtAU9L9Y0utwqKaH3OuG3mRswZ5gGvJFg==} - '@unocss/eslint-plugin@0.61.3': - resolution: {integrity: sha512-Ss6xw5KDoccRDGC+BcZeB3ePAqgUJkf6idMOx/BG3cJATatk0Ydkr/o3KwEg7XDD5JIkACcTSz7YWRJ0z0s7YA==} + '@unocss/eslint-plugin@0.61.4': + resolution: {integrity: sha512-2kW+kBQqpWFn9Pt10SD+VU8ezQwvCBTMm1FFRz3MLzKGVYIqQPSwhBQnbOACBkKFkmJl1W5RxWBf0feNz/mFaw==} engines: {node: '>=14'} - '@unocss/extractor-arbitrary-variants@0.61.3': - resolution: {integrity: sha512-8yFAavi4PXTZTyJqsSQJuZNdaERMyLP4Gs4IzBDt8zjmUrXmYfgV+bKif2eE52QKvtb5/Jsij3fgfMsJouln7A==} + '@unocss/extractor-arbitrary-variants@0.61.4': + resolution: {integrity: sha512-cL2zNJ+D83vhkdI+hfdIqS+g11+naymoaTCsdTacTLI5tIB2YqxHBdY5rHhivizORFlBaPgJfprDZu8cOO0LJg==} - '@unocss/inspector@0.61.3': - resolution: {integrity: sha512-F2WfVYdzM+CnocVSptBh945G85+RcxGd0KDm6q+Ctjs5NrHtT0TzX83USMLSjfFzTz/j+Q/kR1WOJWjKynVTXQ==} + '@unocss/inspector@0.61.4': + resolution: {integrity: sha512-gUlvu4PUA3PvtS74mioTSBgr4w/2KrqxmNwTuy78++UNmaTUoOVrsWj7yNVgYJF5osSdHpx02Z8cr0FVMpwjTg==} - '@unocss/postcss@0.61.3': - resolution: {integrity: sha512-i76kuYbrvqkVhdfD37mnVqiBJiq9azGzbKZHFIjFWApOxFLak1OTHX5TIwxPspFm8u7U7kmU03JCnqyxWIE0wQ==} + '@unocss/postcss@0.61.4': + resolution: {integrity: sha512-IiS902mzc9sE2v8D6Mkvzbai74xkOGo45hFC225LUDfxWpPv10PFT56dstAzIQVaHyjPyxQ8hzhiPpa5TGzaqQ==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 - '@unocss/preset-attributify@0.61.3': - resolution: {integrity: sha512-TSgje5WDfoicTOoh/Od6qlizkZd68vXTdtT7jYEvjCm2mV7EgDJpX+sj2eVv0rPuaARtIqs1b4yG7w3HA6BBnQ==} + '@unocss/preset-attributify@0.61.4': + resolution: {integrity: sha512-rW3BtbI9LEtvv3gu7/uQuHXmm2ur3EIP1WGQYOoOIkpUHnbS4WQabFc5yEvduhgv6Tk4nrPj6txsTHUCNf9bfg==} - '@unocss/preset-icons@0.61.3': - resolution: {integrity: sha512-XNti2mgfbRCClzKxy7eMPukgk/mepyGGJNqtONnZmOkzkyhx6KQ2/luhMYnz5xONMG/aseoXMc4Zc1VzOqePRA==} + '@unocss/preset-icons@0.61.4': + resolution: {integrity: sha512-+CGp1AwelOIpD2ZXdPhLe8mMz3h3AScm4h2F1IC1uh/mudLKOJDoHP6VaLwPF0Uwmsg7g7cVNjzcVX54cBYfdg==} - '@unocss/preset-mini@0.61.3': - resolution: {integrity: sha512-QY9P7jcLePkmCGQSqX+ha4Rh2YhY9b9P8gtLFnjzqcdmSxvDFkT7Kf5Un/u/jwV+zCz/5t4F88vWLzBM6js6yQ==} + '@unocss/preset-mini@0.61.4': + resolution: {integrity: sha512-rNM7UdyRmcIr/VnYssxDMW56YdePW3qLBBWSHafJvrvIgJ9pDqndDqYE8gDbC23KBP8/xGy1wHnVqISHnV/2mQ==} - '@unocss/preset-tagify@0.61.3': - resolution: {integrity: sha512-ir+gZJ20hZKapsrxWRTjFjyVJmmUcnkvhk1AiMgoG62MP6GzBQgbkAiy2TzJIEU0zQb8pYhtZ5KePtno+1vcaQ==} + '@unocss/preset-tagify@0.61.4': + resolution: {integrity: sha512-RXbMDVzTRl4s6uHgZnzFZeX1ApKuKKNOquCyIPAjT+Gemx8Nm2DzYqxaJD9sUyTrPyXg1VchdvNofVPfm3d+qA==} - '@unocss/preset-typography@0.61.3': - resolution: {integrity: sha512-0b1JSk5/oi4DT86dO2sdscZlih4fVo//U6bh1cROAfLlYJsHlAEZau8IxLADcgBAYwCGtY94npfp6y60R37T/A==} + '@unocss/preset-typography@0.61.4': + resolution: {integrity: sha512-mM84hqSM6ow4ZnU5o7a2frCwStcUefQfriIiS/F631ZHL0SeNpZ+Sj5Guc6RISqFthVd8OAhTgHuEQGPjVYkGQ==} - '@unocss/preset-uno@0.61.3': - resolution: {integrity: sha512-ULP0hLBTNJuB0iQqaYaJZYbC4jwQYy0C6H7un3o4R+KsqIuyDanme2VsY51U5mN/pp7K6QJK6qE8EHVvtjCLHQ==} + '@unocss/preset-uno@0.61.4': + resolution: {integrity: sha512-vPuakEw5EkYworsXgSGVhjkPTPQqw8VO9IPALGemNA1Qugpw8PYDcER5NVipH2KRYunOCIf7NcbUNJ45C6Upcw==} - '@unocss/preset-web-fonts@0.61.3': - resolution: {integrity: sha512-uBQKjIY+vUWCEqcgjEzdxok8svOmNNHDk1r+qh/Y5VLPWvPdA+Bb5iIwrxib3zzQvkT+au/utCeTGKGgIVhcXA==} + '@unocss/preset-web-fonts@0.61.4': + resolution: {integrity: sha512-qNoaH40ElQndG129JORALob9tarYsLm1km9ui8dmLhh21HsLBQZXDtJlePGb7+/SJ34uG1CPP5KuKoutRtQBcg==} - '@unocss/preset-wind@0.61.3': - resolution: {integrity: sha512-THdTNAYEtvLz/jhHNgkpLFxC+LNn4W2VqDmpmK/fVMgSlhOYJ8IoQlt8nwgBRbNkEksvgItq8gL/t5+2sHGHhA==} + '@unocss/preset-wind@0.61.4': + resolution: {integrity: sha512-g66jNBUl7gIPigWWV5gAfDaQU23BlrfgtFS28zhMnJ2roWBNFy34Dbt0Ya1gjJRlNGol/0C1z3Hb3M4Sc3YBEA==} - '@unocss/reset@0.61.3': - resolution: {integrity: sha512-WegQ6Plmr/H0D9wuKCVjhUMzi/xAn55A0mJgUnKl1pJHTZetRdK29u0bnpVQzynmlh/Lh4YtD+X4r8DVkASgPw==} + '@unocss/reset@0.61.4': + resolution: {integrity: sha512-YX/6dpnyFHwdSXSHveH/Gye3uYea+46Hi3nSP6wxJL2buliSSo8oo6CSI0Ji1l9vXH9jMjI5KhfhXWIGWfz0gQ==} - '@unocss/rule-utils@0.61.3': - resolution: {integrity: sha512-XwzXE6YUAEc1+4TvJruZfntIM7eo+HdQDMlMI289w9YLLAXw973fp00E9U1dR16JRt1BWzlCnnY1RHAqSiXCVw==} + '@unocss/rule-utils@0.61.4': + resolution: {integrity: sha512-fHHk22xJCgOCkq1tqCXPnhAhzSPQP2toUVdHZZyuX+NiEaUvH/UEMVI9wtdCKjaI3AESJ6i9dv+KX4KXznK9gA==} engines: {node: '>=14'} - '@unocss/scope@0.61.3': - resolution: {integrity: sha512-yElJs2uUiBHyTHKLqWZRK5zvY+7XIqoFXc1Fkv+fxiGy1+4u+zLGoGA66bUWwbjDFLiFgEqwUBJ2+SzDC4Q0Ig==} + '@unocss/scope@0.61.4': + resolution: {integrity: sha512-OU75+G35r/OCFoMzpDntQXaaE+5+yasXLCDHP9MjhQ0laqDvOvmxWOwnceG8fuJQi3YpbDOsDOy7N2eb8aJmew==} - '@unocss/transformer-attributify-jsx-babel@0.61.3': - resolution: {integrity: sha512-Ubr2/XhB61C2EqrH0TnbJ9bGREvrORyotdRxpCCAzkBWh3i+J+kPrdGCFUgB+wHFcUPUuOKou+8o0rhWVY7mjw==} + '@unocss/transformer-attributify-jsx-babel@0.61.4': + resolution: {integrity: sha512-fyoqt3cqg49L/FsmcLtavsrYrimM0OSFIou2ApFNqoXGumrxt4R4luqaUl4Vwdppv0uzVneTc5lk4+jjS++8KA==} - '@unocss/transformer-attributify-jsx@0.61.3': - resolution: {integrity: sha512-KK4pi7xsxjRKk/RSFxkdl1JODsefD1YMaqgs6HM2KCdXctqUXd6RYQez7IfQwxnAeZupgatwoFe2CZd0Bbhq2g==} + '@unocss/transformer-attributify-jsx@0.61.4': + resolution: {integrity: sha512-Jg0qlRr9g3AWsA58EVzEL0Gtbmr5jcwS9v3EKF/jIJBibY64xfPT9OsTlUZIjHN0Hmh6TOEitCOMsLjs2lh8kg==} - '@unocss/transformer-compile-class@0.61.3': - resolution: {integrity: sha512-qHxJtRo+yjC0d+IIoNrOxnO8j5bdw7R4XDpR8+MKpGZgVQRmEGwl7Ej0PUGTudVknYGUdPmDTZGr693bzhwzQg==} + '@unocss/transformer-compile-class@0.61.4': + resolution: {integrity: sha512-LgJheTah+UeDo3SBO2yME542tX4ME6hOdK88oqPdDglO8TTXBzj39UYleRAkdEa9RNS2EL30Pc0vGbHqqgxfYg==} - '@unocss/transformer-directives@0.61.3': - resolution: {integrity: sha512-FNJCOlXwi62tVXr4B8lDkHGxOIhNJw2qQpM5jeohLT7xpGPOmVvscWaWI0h6fjSREFwnnbRNif4YPLe/rB6PsA==} + '@unocss/transformer-directives@0.61.4': + resolution: {integrity: sha512-iHQa14Rkkgi1VcM2eBZr0QwVO9j+BzK914guFawI7cud6f7OekZ6adSHf3ebTarjcmE96N+13uVfksI505Su0g==} - '@unocss/transformer-variant-group@0.61.3': - resolution: {integrity: sha512-F7v05kfVDhIJ4lu3fjgkwV2GWoeJX4aszER8iqhwWz+0jVUaJRYAxzsVqE299uJ0ut07d+Di+JB7M4ZBRoH3qw==} + '@unocss/transformer-variant-group@0.61.4': + resolution: {integrity: sha512-fBzCaOnJsS7iSXnAyC2EMUTkjAL1CttPURzK+5lKv+1aLT7tcHNM3bUo45WJqVFHWdKJ+i4wz6jIFwKn+c5Erg==} - '@unocss/vite@0.61.3': - resolution: {integrity: sha512-Z2kq/hSv1RC3PYAaoXOGB0PEWXCVsgYtdnuFXR/8Tp0Yj2Wdeq906/s411/sqMUvXIaIhm2O9WaDfe0ISoV0sg==} + '@unocss/vite@0.61.4': + resolution: {integrity: sha512-wIaXMVkt1mL8DqRIWrMMA17SAtUAsSvUIpWVFq1azcqdsF9bE/MgtXcKA0UDixc2wfrUMgdWuIVDKSepzbxOHg==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -1275,28 +1323,28 @@ packages: peerDependencies: solid-js: '>=1.8.15' - '@vitest/expect@2.0.2': - resolution: {integrity: sha512-nKAvxBYqcDugYZ4nJvnm5OR8eDJdgWjk4XM9owQKUjzW70q0icGV2HVnQOyYsp906xJaBDUXw0+9EHw2T8e0mQ==} + '@vitest/expect@2.0.3': + resolution: {integrity: sha512-X6AepoOYePM0lDNUPsGXTxgXZAl3EXd0GYe/MZyVE4HzkUqyUVC6S3PrY5mClDJ6/7/7vALLMV3+xD/Ko60Hqg==} - '@vitest/pretty-format@2.0.2': - resolution: {integrity: sha512-SBCyOXfGVvddRd9r2PwoVR0fonQjh9BMIcBMlSzbcNwFfGr6ZhOhvBzurjvi2F4ryut2HcqiFhNeDVGwru8tLg==} + '@vitest/pretty-format@2.0.3': + resolution: {integrity: sha512-URM4GLsB2xD37nnTyvf6kfObFafxmycCL8un3OC9gaCs5cti2u+5rJdIflZ2fUJUen4NbvF6jCufwViAFLvz1g==} - '@vitest/runner@2.0.2': - resolution: {integrity: sha512-OCh437Vi8Wdbif1e0OvQcbfM3sW4s2lpmOjAE7qfLrpzJX2M7J1IQlNvEcb/fu6kaIB9n9n35wS0G2Q3en5kHg==} + '@vitest/runner@2.0.3': + resolution: {integrity: sha512-EmSP4mcjYhAcuBWwqgpjR3FYVeiA4ROzRunqKltWjBfLNs1tnMLtF+qtgd5ClTwkDP6/DGlKJTNa6WxNK0bNYQ==} - '@vitest/snapshot@2.0.2': - resolution: {integrity: sha512-Yc2ewhhZhx+0f9cSUdfzPRcsM6PhIb+S43wxE7OG0kTxqgqzo8tHkXFuFlndXeDMp09G3sY/X5OAo/RfYydf1g==} + '@vitest/snapshot@2.0.3': + resolution: {integrity: sha512-6OyA6v65Oe3tTzoSuRPcU6kh9m+mPL1vQ2jDlPdn9IQoUxl8rXhBnfICNOC+vwxWY684Vt5UPgtcA2aPFBb6wg==} - '@vitest/spy@2.0.2': - resolution: {integrity: sha512-MgwJ4AZtCgqyp2d7WcQVE8aNG5vQ9zu9qMPYQHjsld/QVsrvg78beNrXdO4HYkP0lDahCO3P4F27aagIag+SGQ==} + '@vitest/spy@2.0.3': + resolution: {integrity: sha512-sfqyAw/ypOXlaj4S+w8689qKM1OyPOqnonqOc9T91DsoHbfN5mU7FdifWWv3MtQFf0lEUstEwR9L/q/M390C+A==} - '@vitest/ui@2.0.2': - resolution: {integrity: sha512-VwxFTOC2GcNPexQlR9PFb8drWCLA+nLWTWlAS4oba1xbTJYJ8H5vY8OUFOTMb7YQXF0Vsc5IfmLpYkb2dcVgOA==} + '@vitest/ui@2.0.3': + resolution: {integrity: sha512-UAkzHk5veR3NRF7BNUxWlLly7Cw7H+wzP3+eiMIVeKo3Md33Ey20rYsNQn/9McIqOeO02tMzqHhpThmjk1yRzw==} peerDependencies: - vitest: 2.0.2 + vitest: 2.0.3 - '@vitest/utils@2.0.2': - resolution: {integrity: sha512-pxCY1v7kmOCWYWjzc0zfjGTA3Wmn8PKnlPvSrsA643P1NHl1fOyXj2Q9SaNlrlFE+ivCsxM80Ov3AR82RmHCWQ==} + '@vitest/utils@2.0.3': + resolution: {integrity: sha512-c/UdELMuHitQbbc/EVctlBaxoYAwQPQdSNwv7z/vHyBKy2edYZaFgptE27BRueZB7eW8po+cllotMNTDpL3HWg==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -1759,8 +1807,8 @@ packages: vue-eslint-parser: optional: true - eslint-plugin-petal@3.8.7: - resolution: {integrity: sha512-3TNPJOwA3+5iHoVoZgcfgDBMRW8P3ma4WAXSr2Ct83Pgdd2Ym/lqYDw+HymD8zE5o9LcVdo2b7M/SfrWfbd6CA==} + eslint-plugin-petal@3.8.8: + resolution: {integrity: sha512-mClla07bg8K98OMssBhA+4A2LxBR9gTvmavoYEBnM3euXVSpna26IJy0hvM5OIdwW6y7IWEdv0ddlD/dQjoYAg==} engines: {node: '>=20'} peerDependencies: eslint: '*' @@ -2984,6 +3032,9 @@ packages: ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + unconfig@0.3.13: resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==} @@ -3005,11 +3056,11 @@ packages: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} - unocss@0.61.3: - resolution: {integrity: sha512-Mpci+yP9CUnDjSwm0EAq9U76cgiNB5UM0ztXfDjjMiSe+jOS6sZ2A+kZ5JY9ZBRx5TX0Wh4kQBoPQQ1ooxHicg==} + unocss@0.61.4: + resolution: {integrity: sha512-mCj7yiH59/zULY6EspIopA+0DEBbQiPc+PrvIVPwLsuAiaf2FtUGzNsKkmIbBGsXZfXRmikV47xS5dwjiyPsMA==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 0.61.3 + '@unocss/webpack': 0.61.4 vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: '@unocss/webpack': @@ -3045,8 +3096,8 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - vite-node@2.0.2: - resolution: {integrity: sha512-w4vkSz1Wo+NIQg8pjlEn0jQbcM/0D+xVaYjhw3cvarTanLLBh54oNiRbsT8PNK5GfuST0IlVXjsNRoNlqvY/fw==} + vite-node@2.0.3: + resolution: {integrity: sha512-14jzwMx7XTcMB+9BhGQyoEAmSl0eOr3nrnn+Z12WNERtOvLN+d2scbRUvyni05rT3997Bg+rZb47NyP4IQPKXg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -3074,8 +3125,8 @@ packages: vite: optional: true - vite@5.3.3: - resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==} + vite@5.3.4: + resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3110,15 +3161,15 @@ packages: vite: optional: true - vitest@2.0.2: - resolution: {integrity: sha512-WlpZ9neRIjNBIOQwBYfBSr0+of5ZCbxT2TVGKW4Lv0c8+srCFIiRdsP7U009t8mMn821HQ4XKgkx5dVWpyoyLw==} + vitest@2.0.3: + resolution: {integrity: sha512-o3HRvU93q6qZK4rI2JrhKyZMMuxg/JRt30E6qeQs6ueaiz5hr1cPj+Sk2kATgQzMMqsa2DiNI0TIK++1ULx8Jw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.0.2 - '@vitest/ui': 2.0.2 + '@vitest/browser': 2.0.3 + '@vitest/ui': 2.0.3 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -3279,6 +3330,33 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.24.9': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helpers': 7.24.8 + '@babel/parser': 7.24.8 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + convert-source-map: 2.0.0 + debug: 4.3.5 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.24.10': + dependencies: + '@babel/types': 7.24.9 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + '@babel/generator@7.24.8': dependencies: '@babel/types': 7.24.8 @@ -3288,7 +3366,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.24.7': dependencies: - '@babel/types': 7.24.8 + '@babel/types': 7.24.9 '@babel/helper-compilation-targets@7.24.8': dependencies: @@ -3298,15 +3376,15 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.24.8)': + '@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.8) + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 @@ -3329,7 +3407,7 @@ snapshots: '@babel/helper-member-expression-to-functions@7.24.8': dependencies: '@babel/traverse': 7.24.8 - '@babel/types': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color @@ -3355,15 +3433,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.24.7': dependencies: - '@babel/types': 7.24.8 + '@babel/types': 7.24.9 '@babel/helper-plugin-utils@7.24.8': {} - '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.8)': + '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.24.9 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 @@ -3380,7 +3469,7 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: '@babel/traverse': 7.24.8 - '@babel/types': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color @@ -3415,38 +3504,43 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.24.8)': + '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-module-transforms': 7.24.8(@babel/core@7.24.8) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-simple-access': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.24.8)': + '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.8) + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.8) + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.24.7(@babel/core@7.24.8)': + '@babel/preset-typescript@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.8) - '@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.24.8) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.24.9) transitivePeerDependencies: - supports-color @@ -3481,6 +3575,12 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + '@babel/types@7.24.9': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + '@clack/core@0.3.4': dependencies: picocolors: 1.0.1 @@ -3500,7 +3600,7 @@ snapshots: dependencies: '@types/eslint': 8.56.10 '@types/estree': 1.0.5 - '@typescript-eslint/types': 7.16.0 + '@typescript-eslint/types': 7.16.1 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.0.0 @@ -3619,7 +3719,7 @@ snapshots: '@eslint/object-schema@2.1.4': {} - '@flowr/eslint-config@3.8.7(@unocss/eslint-plugin@0.61.3(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-solid@0.14.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-vue@9.27.0(eslint@9.7.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.7.0))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2)(jsdom@24.1.0)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.7.0))': + '@flowr/eslint-config@3.8.8(@unocss/eslint-plugin@0.61.4(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-solid@0.14.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-vue@9.27.0(eslint@9.7.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.7.0))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.0.3(@types/node@20.14.10)(@vitest/ui@2.0.3)(jsdom@24.1.0)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.7.0))': dependencies: '@antfu/install-pkg': 0.3.3 '@clack/prompts': 0.7.0 @@ -3637,12 +3737,12 @@ snapshots: eslint-plugin-markdown: 5.1.0(eslint@9.7.0) eslint-plugin-n: 17.9.0(eslint@9.7.0) eslint-plugin-perfectionist: 2.11.0(eslint@9.7.0)(typescript@5.5.3)(vue-eslint-parser@9.4.3(eslint@9.7.0)) - eslint-plugin-petal: 3.8.7(eslint@9.7.0) + eslint-plugin-petal: 3.8.8(eslint@9.7.0) eslint-plugin-regexp: 2.6.0(eslint@9.7.0) eslint-plugin-toml: 0.11.1(eslint@9.7.0) eslint-plugin-unicorn: 54.0.0(eslint@9.7.0) eslint-plugin-unused-imports: 4.0.0(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0) - eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2)(jsdom@24.1.0)(sass@1.77.8)) + eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.0.3(@types/node@20.14.10)(@vitest/ui@2.0.3)(jsdom@24.1.0)(sass@1.77.8)) eslint-plugin-yml: 1.14.0(eslint@9.7.0) find-up: 7.0.0 globals: 15.8.0 @@ -3652,7 +3752,7 @@ snapshots: toml-eslint-parser: 0.10.0 yaml-eslint-parser: 1.2.3 optionalDependencies: - '@unocss/eslint-plugin': 0.61.3(eslint@9.7.0)(typescript@5.5.3) + '@unocss/eslint-plugin': 0.61.4(eslint@9.7.0)(typescript@5.5.3) eslint-plugin-solid: 0.14.1(eslint@9.7.0)(typescript@5.5.3) eslint-plugin-vue: 9.27.0(eslint@9.7.0) eslint-processor-vue-blocks: 0.1.2(eslint@9.7.0) @@ -3663,7 +3763,7 @@ snapshots: - typescript - vitest - '@flowr/utils@3.8.7': {} + '@flowr/utils@3.8.8': {} '@fontsource/poppins@5.0.14': {} @@ -3886,7 +3986,7 @@ snapshots: '@stylistic/eslint-plugin-plus@2.6.0-beta.0(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 8.0.0-alpha.42(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.0.0-alpha.44(eslint@9.7.0)(typescript@5.5.3) eslint: 9.7.0 transitivePeerDependencies: - supports-color @@ -3896,7 +3996,7 @@ snapshots: dependencies: '@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.7.0) '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 8.0.0-alpha.42(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.0.0-alpha.44(eslint@9.7.0)(typescript@5.5.3) eslint: 9.7.0 transitivePeerDependencies: - supports-color @@ -3987,7 +4087,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.6(vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2(vitest@2.0.2))(jsdom@24.1.0)(sass@1.77.8))': + '@testing-library/jest-dom@6.4.6(vitest@2.0.3(@types/node@20.14.11)(@vitest/ui@2.0.3(vitest@2.0.3))(jsdom@24.1.0)(sass@1.77.8))': dependencies: '@adobe/css-tools': 4.4.0 '@babel/runtime': 7.24.7 @@ -3998,7 +4098,7 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 optionalDependencies: - vitest: 2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2(vitest@2.0.2))(jsdom@24.1.0)(sass@1.77.8) + vitest: 2.0.3(@types/node@20.14.11)(@vitest/ui@2.0.3(vitest@2.0.3))(jsdom@24.1.0)(sass@1.77.8) '@thisbeyond/solid-dnd@0.7.5(solid-js@1.8.18)': dependencies: @@ -4058,6 +4158,11 @@ snapshots: dependencies: undici-types: 5.26.5 + '@types/node@20.14.11': + dependencies: + undici-types: 5.26.5 + optional: true + '@types/normalize-package-data@2.4.4': {} '@types/semver@7.5.8': {} @@ -4102,15 +4207,20 @@ snapshots: '@typescript-eslint/types': 7.16.0 '@typescript-eslint/visitor-keys': 7.16.0 + '@typescript-eslint/scope-manager@7.16.1': + dependencies: + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 + '@typescript-eslint/scope-manager@8.0.0-alpha.41': dependencies: '@typescript-eslint/types': 8.0.0-alpha.41 '@typescript-eslint/visitor-keys': 8.0.0-alpha.41 - '@typescript-eslint/scope-manager@8.0.0-alpha.42': + '@typescript-eslint/scope-manager@8.0.0-alpha.44': dependencies: - '@typescript-eslint/types': 8.0.0-alpha.42 - '@typescript-eslint/visitor-keys': 8.0.0-alpha.42 + '@typescript-eslint/types': 8.0.0-alpha.44 + '@typescript-eslint/visitor-keys': 8.0.0-alpha.44 '@typescript-eslint/type-utils@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3)': dependencies: @@ -4126,9 +4236,11 @@ snapshots: '@typescript-eslint/types@7.16.0': {} + '@typescript-eslint/types@7.16.1': {} + '@typescript-eslint/types@8.0.0-alpha.41': {} - '@typescript-eslint/types@8.0.0-alpha.42': {} + '@typescript-eslint/types@8.0.0-alpha.44': {} '@typescript-eslint/typescript-estree@7.16.0(typescript@5.5.3)': dependencies: @@ -4145,6 +4257,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@7.16.1(typescript@5.5.3)': + dependencies: + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 + debug: 4.3.5 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/typescript-estree@8.0.0-alpha.41(typescript@5.5.3)': dependencies: '@typescript-eslint/types': 8.0.0-alpha.41 @@ -4160,10 +4287,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.0.0-alpha.42(typescript@5.5.3)': + '@typescript-eslint/typescript-estree@8.0.0-alpha.44(typescript@5.5.3)': dependencies: - '@typescript-eslint/types': 8.0.0-alpha.42 - '@typescript-eslint/visitor-keys': 8.0.0-alpha.42 + '@typescript-eslint/types': 8.0.0-alpha.44 + '@typescript-eslint/visitor-keys': 8.0.0-alpha.44 debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 @@ -4186,6 +4313,17 @@ snapshots: - supports-color - typescript + '@typescript-eslint/utils@7.16.1(eslint@9.7.0)(typescript@5.5.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + eslint: 9.7.0 + transitivePeerDependencies: + - supports-color + - typescript + '@typescript-eslint/utils@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) @@ -4197,12 +4335,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.0.0-alpha.42(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/utils@8.0.0-alpha.44(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) - '@typescript-eslint/scope-manager': 8.0.0-alpha.42 - '@typescript-eslint/types': 8.0.0-alpha.42 - '@typescript-eslint/typescript-estree': 8.0.0-alpha.42(typescript@5.5.3) + '@typescript-eslint/scope-manager': 8.0.0-alpha.44 + '@typescript-eslint/types': 8.0.0-alpha.44 + '@typescript-eslint/typescript-estree': 8.0.0-alpha.44(typescript@5.5.3) eslint: 9.7.0 transitivePeerDependencies: - supports-color @@ -4213,33 +4351,38 @@ snapshots: '@typescript-eslint/types': 7.16.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@7.16.1': + dependencies: + '@typescript-eslint/types': 7.16.1 + eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.0.0-alpha.41': dependencies: '@typescript-eslint/types': 8.0.0-alpha.41 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.0.0-alpha.42': + '@typescript-eslint/visitor-keys@8.0.0-alpha.44': dependencies: - '@typescript-eslint/types': 8.0.0-alpha.42 + '@typescript-eslint/types': 8.0.0-alpha.44 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.61.3(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8))': + '@unocss/astro@0.61.4(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8))': dependencies: - '@unocss/core': 0.61.3 - '@unocss/reset': 0.61.3 - '@unocss/vite': 0.61.3(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)) + '@unocss/core': 0.61.4 + '@unocss/reset': 0.61.4 + '@unocss/vite': 0.61.4(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)) optionalDependencies: - vite: 5.3.3(@types/node@20.14.10)(sass@1.77.8) + vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8) transitivePeerDependencies: - rollup - '@unocss/cli@0.61.3(rollup@4.18.1)': + '@unocss/cli@0.61.4(rollup@4.18.1)': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.1) - '@unocss/config': 0.61.3 - '@unocss/core': 0.61.3 - '@unocss/preset-uno': 0.61.3 + '@unocss/config': 0.61.4 + '@unocss/core': 0.61.4 + '@unocss/preset-uno': 0.61.4 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 @@ -4251,18 +4394,18 @@ snapshots: transitivePeerDependencies: - rollup - '@unocss/config@0.61.3': + '@unocss/config@0.61.4': dependencies: - '@unocss/core': 0.61.3 + '@unocss/core': 0.61.4 unconfig: 0.3.13 - '@unocss/core@0.61.3': {} + '@unocss/core@0.61.4': {} - '@unocss/eslint-plugin@0.61.3(eslint@9.7.0)(typescript@5.5.3)': + '@unocss/eslint-plugin@0.61.4(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) - '@unocss/config': 0.61.3 - '@unocss/core': 0.61.3 + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@unocss/config': 0.61.4 + '@unocss/core': 0.61.4 magic-string: 0.30.10 synckit: 0.9.1 transitivePeerDependencies: @@ -4271,121 +4414,121 @@ snapshots: - typescript optional: true - '@unocss/extractor-arbitrary-variants@0.61.3': + '@unocss/extractor-arbitrary-variants@0.61.4': dependencies: - '@unocss/core': 0.61.3 + '@unocss/core': 0.61.4 - '@unocss/inspector@0.61.3': + '@unocss/inspector@0.61.4': dependencies: - '@unocss/core': 0.61.3 - '@unocss/rule-utils': 0.61.3 + '@unocss/core': 0.61.4 + '@unocss/rule-utils': 0.61.4 gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/postcss@0.61.3(postcss@8.4.39)': + '@unocss/postcss@0.61.4(postcss@8.4.39)': dependencies: - '@unocss/config': 0.61.3 - '@unocss/core': 0.61.3 - '@unocss/rule-utils': 0.61.3 + '@unocss/config': 0.61.4 + '@unocss/core': 0.61.4 + '@unocss/rule-utils': 0.61.4 css-tree: 2.3.1 fast-glob: 3.3.2 magic-string: 0.30.10 postcss: 8.4.39 - '@unocss/preset-attributify@0.61.3': + '@unocss/preset-attributify@0.61.4': dependencies: - '@unocss/core': 0.61.3 + '@unocss/core': 0.61.4 - '@unocss/preset-icons@0.61.3': + '@unocss/preset-icons@0.61.4': dependencies: '@iconify/utils': 2.1.25 - '@unocss/core': 0.61.3 + '@unocss/core': 0.61.4 ofetch: 1.3.4 transitivePeerDependencies: - supports-color - '@unocss/preset-mini@0.61.3': + '@unocss/preset-mini@0.61.4': dependencies: - '@unocss/core': 0.61.3 - '@unocss/extractor-arbitrary-variants': 0.61.3 - '@unocss/rule-utils': 0.61.3 + '@unocss/core': 0.61.4 + '@unocss/extractor-arbitrary-variants': 0.61.4 + '@unocss/rule-utils': 0.61.4 - '@unocss/preset-tagify@0.61.3': + '@unocss/preset-tagify@0.61.4': dependencies: - '@unocss/core': 0.61.3 + '@unocss/core': 0.61.4 - '@unocss/preset-typography@0.61.3': + '@unocss/preset-typography@0.61.4': dependencies: - '@unocss/core': 0.61.3 - '@unocss/preset-mini': 0.61.3 + '@unocss/core': 0.61.4 + '@unocss/preset-mini': 0.61.4 - '@unocss/preset-uno@0.61.3': + '@unocss/preset-uno@0.61.4': dependencies: - '@unocss/core': 0.61.3 - '@unocss/preset-mini': 0.61.3 - '@unocss/preset-wind': 0.61.3 - '@unocss/rule-utils': 0.61.3 + '@unocss/core': 0.61.4 + '@unocss/preset-mini': 0.61.4 + '@unocss/preset-wind': 0.61.4 + '@unocss/rule-utils': 0.61.4 - '@unocss/preset-web-fonts@0.61.3': + '@unocss/preset-web-fonts@0.61.4': dependencies: - '@unocss/core': 0.61.3 + '@unocss/core': 0.61.4 ofetch: 1.3.4 - '@unocss/preset-wind@0.61.3': + '@unocss/preset-wind@0.61.4': dependencies: - '@unocss/core': 0.61.3 - '@unocss/preset-mini': 0.61.3 - '@unocss/rule-utils': 0.61.3 + '@unocss/core': 0.61.4 + '@unocss/preset-mini': 0.61.4 + '@unocss/rule-utils': 0.61.4 - '@unocss/reset@0.61.3': {} + '@unocss/reset@0.61.4': {} - '@unocss/rule-utils@0.61.3': + '@unocss/rule-utils@0.61.4': dependencies: - '@unocss/core': 0.61.3 + '@unocss/core': 0.61.4 magic-string: 0.30.10 - '@unocss/scope@0.61.3': {} + '@unocss/scope@0.61.4': {} - '@unocss/transformer-attributify-jsx-babel@0.61.3': + '@unocss/transformer-attributify-jsx-babel@0.61.4': dependencies: - '@babel/core': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.8) - '@babel/preset-typescript': 7.24.7(@babel/core@7.24.8) - '@unocss/core': 0.61.3 + '@babel/core': 7.24.9 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.9) + '@unocss/core': 0.61.4 transitivePeerDependencies: - supports-color - '@unocss/transformer-attributify-jsx@0.61.3': + '@unocss/transformer-attributify-jsx@0.61.4': dependencies: - '@unocss/core': 0.61.3 + '@unocss/core': 0.61.4 - '@unocss/transformer-compile-class@0.61.3': + '@unocss/transformer-compile-class@0.61.4': dependencies: - '@unocss/core': 0.61.3 + '@unocss/core': 0.61.4 - '@unocss/transformer-directives@0.61.3': + '@unocss/transformer-directives@0.61.4': dependencies: - '@unocss/core': 0.61.3 - '@unocss/rule-utils': 0.61.3 + '@unocss/core': 0.61.4 + '@unocss/rule-utils': 0.61.4 css-tree: 2.3.1 - '@unocss/transformer-variant-group@0.61.3': + '@unocss/transformer-variant-group@0.61.4': dependencies: - '@unocss/core': 0.61.3 + '@unocss/core': 0.61.4 - '@unocss/vite@0.61.3(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8))': + '@unocss/vite@0.61.4(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.1) - '@unocss/config': 0.61.3 - '@unocss/core': 0.61.3 - '@unocss/inspector': 0.61.3 - '@unocss/scope': 0.61.3 - '@unocss/transformer-directives': 0.61.3 + '@unocss/config': 0.61.4 + '@unocss/core': 0.61.4 + '@unocss/inspector': 0.61.4 + '@unocss/scope': 0.61.4 + '@unocss/transformer-directives': 0.61.4 chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.3.3(@types/node@20.14.10)(sass@1.77.8) + vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8) transitivePeerDependencies: - rollup @@ -4393,46 +4536,46 @@ snapshots: dependencies: solid-js: 1.8.18 - '@vitest/expect@2.0.2': + '@vitest/expect@2.0.3': dependencies: - '@vitest/spy': 2.0.2 - '@vitest/utils': 2.0.2 + '@vitest/spy': 2.0.3 + '@vitest/utils': 2.0.3 chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/pretty-format@2.0.2': + '@vitest/pretty-format@2.0.3': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.0.2': + '@vitest/runner@2.0.3': dependencies: - '@vitest/utils': 2.0.2 + '@vitest/utils': 2.0.3 pathe: 1.1.2 - '@vitest/snapshot@2.0.2': + '@vitest/snapshot@2.0.3': dependencies: - '@vitest/pretty-format': 2.0.2 + '@vitest/pretty-format': 2.0.3 magic-string: 0.30.10 pathe: 1.1.2 - '@vitest/spy@2.0.2': + '@vitest/spy@2.0.3': dependencies: tinyspy: 3.0.0 - '@vitest/ui@2.0.2(vitest@2.0.2)': + '@vitest/ui@2.0.3(vitest@2.0.3)': dependencies: - '@vitest/utils': 2.0.2 + '@vitest/utils': 2.0.3 fast-glob: 3.3.2 fflate: 0.8.2 flatted: 3.3.1 pathe: 1.1.2 sirv: 2.0.4 tinyrainbow: 1.2.0 - vitest: 2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2(vitest@2.0.2))(jsdom@24.1.0)(sass@1.77.8) + vitest: 2.0.3(@types/node@20.14.10)(@vitest/ui@2.0.3)(jsdom@24.1.0)(sass@1.77.8) - '@vitest/utils@2.0.2': + '@vitest/utils@2.0.3': dependencies: - '@vitest/pretty-format': 2.0.2 + '@vitest/pretty-format': 2.0.3 estree-walker: 3.0.3 loupe: 3.1.1 tinyrainbow: 1.2.0 @@ -4853,7 +4996,7 @@ snapshots: eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3): dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) debug: 4.3.5 doctrine: 3.0.0 eslint: 9.7.0 @@ -4916,7 +5059,7 @@ snapshots: eslint-plugin-perfectionist@2.11.0(eslint@9.7.0)(typescript@5.5.3)(vue-eslint-parser@9.4.3(eslint@9.7.0)): dependencies: - '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) eslint: 9.7.0 minimatch: 9.0.5 natural-compare-lite: 1.4.0 @@ -4926,9 +5069,9 @@ snapshots: - supports-color - typescript - eslint-plugin-petal@3.8.7(eslint@9.7.0): + eslint-plugin-petal@3.8.8(eslint@9.7.0): dependencies: - '@flowr/utils': 3.8.7 + '@flowr/utils': 3.8.8 eslint: 9.7.0 eslint-plugin-regexp@2.6.0(eslint@9.7.0): @@ -4994,13 +5137,13 @@ snapshots: optionalDependencies: '@typescript-eslint/eslint-plugin': 8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2)(jsdom@24.1.0)(sass@1.77.8)): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.0.3(@types/node@20.14.10)(@vitest/ui@2.0.3)(jsdom@24.1.0)(sass@1.77.8)): dependencies: - '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) eslint: 9.7.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) - vitest: 2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2(vitest@2.0.2))(jsdom@24.1.0)(sass@1.77.8) + vitest: 2.0.3(@types/node@20.14.10)(@vitest/ui@2.0.3)(jsdom@24.1.0)(sass@1.77.8) transitivePeerDependencies: - supports-color - typescript @@ -5622,7 +5765,7 @@ snapshots: acorn: 8.12.1 pathe: 1.1.2 pkg-types: 1.1.3 - ufo: 1.5.3 + ufo: 1.5.4 mrmime@2.0.0: {} @@ -5675,7 +5818,7 @@ snapshots: dependencies: destr: 2.0.3 node-fetch-native: 1.6.4 - ufo: 1.5.3 + ufo: 1.5.4 ohash@1.1.3: {} @@ -6180,6 +6323,8 @@ snapshots: ufo@1.5.3: {} + ufo@1.5.4: {} + unconfig@0.3.13: dependencies: '@antfu/utils': 0.7.10 @@ -6198,30 +6343,30 @@ snapshots: universalify@0.2.0: {} - unocss@0.61.3(postcss@8.4.39)(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)): + unocss@0.61.4(postcss@8.4.39)(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)): dependencies: - '@unocss/astro': 0.61.3(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)) - '@unocss/cli': 0.61.3(rollup@4.18.1) - '@unocss/core': 0.61.3 - '@unocss/extractor-arbitrary-variants': 0.61.3 - '@unocss/postcss': 0.61.3(postcss@8.4.39) - '@unocss/preset-attributify': 0.61.3 - '@unocss/preset-icons': 0.61.3 - '@unocss/preset-mini': 0.61.3 - '@unocss/preset-tagify': 0.61.3 - '@unocss/preset-typography': 0.61.3 - '@unocss/preset-uno': 0.61.3 - '@unocss/preset-web-fonts': 0.61.3 - '@unocss/preset-wind': 0.61.3 - '@unocss/reset': 0.61.3 - '@unocss/transformer-attributify-jsx': 0.61.3 - '@unocss/transformer-attributify-jsx-babel': 0.61.3 - '@unocss/transformer-compile-class': 0.61.3 - '@unocss/transformer-directives': 0.61.3 - '@unocss/transformer-variant-group': 0.61.3 - '@unocss/vite': 0.61.3(rollup@4.18.1)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)) + '@unocss/astro': 0.61.4(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)) + '@unocss/cli': 0.61.4(rollup@4.18.1) + '@unocss/core': 0.61.4 + '@unocss/extractor-arbitrary-variants': 0.61.4 + '@unocss/postcss': 0.61.4(postcss@8.4.39) + '@unocss/preset-attributify': 0.61.4 + '@unocss/preset-icons': 0.61.4 + '@unocss/preset-mini': 0.61.4 + '@unocss/preset-tagify': 0.61.4 + '@unocss/preset-typography': 0.61.4 + '@unocss/preset-uno': 0.61.4 + '@unocss/preset-web-fonts': 0.61.4 + '@unocss/preset-wind': 0.61.4 + '@unocss/reset': 0.61.4 + '@unocss/transformer-attributify-jsx': 0.61.4 + '@unocss/transformer-attributify-jsx-babel': 0.61.4 + '@unocss/transformer-compile-class': 0.61.4 + '@unocss/transformer-directives': 0.61.4 + '@unocss/transformer-variant-group': 0.61.4 + '@unocss/vite': 0.61.4(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)) optionalDependencies: - vite: 5.3.3(@types/node@20.14.10)(sass@1.77.8) + vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8) transitivePeerDependencies: - postcss - rollup @@ -6256,13 +6401,13 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-node@2.0.2(@types/node@20.14.10)(sass@1.77.8): + vite-node@2.0.3(@types/node@20.14.10)(sass@1.77.8): dependencies: cac: 6.7.14 debug: 4.3.5 pathe: 1.1.2 tinyrainbow: 1.2.0 - vite: 5.3.3(@types/node@20.14.10)(sass@1.77.8) + vite: 5.3.4(@types/node@20.14.10)(sass@1.77.8) transitivePeerDependencies: - '@types/node' - less @@ -6273,13 +6418,31 @@ snapshots: - supports-color - terser - vite-plugin-solid-svg@0.8.1(solid-js@1.8.18)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)): + vite-node@2.0.3(@types/node@20.14.11)(sass@1.77.8): + dependencies: + cac: 6.7.14 + debug: 4.3.5 + pathe: 1.1.2 + tinyrainbow: 1.2.0 + vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + optional: true + + vite-plugin-solid-svg@0.8.1(solid-js@1.8.18)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)): dependencies: solid-js: 1.8.18 svgo: 3.3.2 - vite: 5.3.3(@types/node@20.14.10)(sass@1.77.8) + vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8) - vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.4.6(vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2(vitest@2.0.2))(jsdom@24.1.0)(sass@1.77.8)))(solid-js@1.8.18)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)): + vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.4.6(vitest@2.0.3(@types/node@20.14.11)(@vitest/ui@2.0.3(vitest@2.0.3))(jsdom@24.1.0)(sass@1.77.8)))(solid-js@1.8.18)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)): dependencies: '@babel/core': 7.24.8 '@types/babel__core': 7.20.5 @@ -6287,25 +6450,25 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.8.18 solid-refresh: 0.6.3(solid-js@1.8.18) - vite: 5.3.3(@types/node@20.14.10)(sass@1.77.8) - vitefu: 0.2.5(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)) + vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8) + vitefu: 0.2.5(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)) optionalDependencies: - '@testing-library/jest-dom': 6.4.6(vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2(vitest@2.0.2))(jsdom@24.1.0)(sass@1.77.8)) + '@testing-library/jest-dom': 6.4.6(vitest@2.0.3(@types/node@20.14.11)(@vitest/ui@2.0.3(vitest@2.0.3))(jsdom@24.1.0)(sass@1.77.8)) transitivePeerDependencies: - supports-color - vite-tsconfig-paths@4.3.2(typescript@5.5.3)(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)): + vite-tsconfig-paths@4.3.2(typescript@5.5.3)(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)): dependencies: debug: 4.3.5 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.5.3) optionalDependencies: - vite: 5.3.3(@types/node@20.14.10)(sass@1.77.8) + vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8) transitivePeerDependencies: - supports-color - typescript - vite@5.3.3(@types/node@20.14.10)(sass@1.77.8): + vite@5.3.4(@types/node@20.14.10)(sass@1.77.8): dependencies: esbuild: 0.21.5 postcss: 8.4.39 @@ -6315,19 +6478,29 @@ snapshots: fsevents: 2.3.3 sass: 1.77.8 - vitefu@0.2.5(vite@5.3.3(@types/node@20.14.10)(sass@1.77.8)): + vite@5.3.4(@types/node@20.14.11)(sass@1.77.8): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.39 + rollup: 4.18.1 optionalDependencies: - vite: 5.3.3(@types/node@20.14.10)(sass@1.77.8) + '@types/node': 20.14.11 + fsevents: 2.3.3 + sass: 1.77.8 - vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@2.0.2(vitest@2.0.2))(jsdom@24.1.0)(sass@1.77.8): + vitefu@0.2.5(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)): + optionalDependencies: + vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8) + + vitest@2.0.3(@types/node@20.14.10)(@vitest/ui@2.0.3)(jsdom@24.1.0)(sass@1.77.8): dependencies: '@ampproject/remapping': 2.3.0 - '@vitest/expect': 2.0.2 - '@vitest/pretty-format': 2.0.2 - '@vitest/runner': 2.0.2 - '@vitest/snapshot': 2.0.2 - '@vitest/spy': 2.0.2 - '@vitest/utils': 2.0.2 + '@vitest/expect': 2.0.3 + '@vitest/pretty-format': 2.0.3 + '@vitest/runner': 2.0.3 + '@vitest/snapshot': 2.0.3 + '@vitest/spy': 2.0.3 + '@vitest/utils': 2.0.3 chai: 5.1.1 debug: 4.3.5 execa: 8.0.1 @@ -6337,12 +6510,12 @@ snapshots: tinybench: 2.8.0 tinypool: 1.0.0 tinyrainbow: 1.2.0 - vite: 5.3.3(@types/node@20.14.10)(sass@1.77.8) - vite-node: 2.0.2(@types/node@20.14.10)(sass@1.77.8) + vite: 5.3.4(@types/node@20.14.10)(sass@1.77.8) + vite-node: 2.0.3(@types/node@20.14.10)(sass@1.77.8) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.14.10 - '@vitest/ui': 2.0.2(vitest@2.0.2) + '@vitest/ui': 2.0.3(vitest@2.0.3) jsdom: 24.1.0 transitivePeerDependencies: - less @@ -6353,6 +6526,41 @@ snapshots: - supports-color - terser + vitest@2.0.3(@types/node@20.14.11)(@vitest/ui@2.0.3(vitest@2.0.3))(jsdom@24.1.0)(sass@1.77.8): + dependencies: + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.3 + '@vitest/pretty-format': 2.0.3 + '@vitest/runner': 2.0.3 + '@vitest/snapshot': 2.0.3 + '@vitest/spy': 2.0.3 + '@vitest/utils': 2.0.3 + chai: 5.1.1 + debug: 4.3.5 + execa: 8.0.1 + magic-string: 0.30.10 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.8.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8) + vite-node: 2.0.3(@types/node@20.14.11)(sass@1.77.8) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.14.11 + '@vitest/ui': 2.0.3(vitest@2.0.3) + jsdom: 24.1.0 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + optional: true + vue-eslint-parser@9.4.3(eslint@9.7.0): dependencies: debug: 4.3.5