From 8ab0ea17cbdb6c900a24307c58ded2175845fe08 Mon Sep 17 00:00:00 2001 From: Pauline Date: Thu, 15 Aug 2024 22:39:12 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20chore:=20some=20version=20bumps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pauline --- .editorconfig | 1 + .gitignore | 16 - .npmrc | 4 + .taplo.toml | 11 + apps/desktop/src/ext/mod.rs | 1 + apps/desktop/src/ext/specta.rs | 15 + apps/desktop/src/ext/updater.rs | 1 + apps/desktop/src/lib.rs | 3 +- apps/frontend/package.json | 14 +- apps/frontend/src/bindings.ts | 858 +++++++++++++ .../frontend/src/{types.ts => types/index.ts} | 0 apps/frontend/src/{ => types}/vite-env.d.ts | 0 .../src/ui/components/overlay/Modal.tsx | 2 +- apps/frontend/src/utils/environment.ts | 12 + apps/frontend/src/utils/index.ts | 2 +- apps/frontend/src/utils/query.ts | 12 + .../src/utils/{PausableTimer.ts => timer.ts} | 0 apps/frontend/src/utils/updater.tsx | 79 ++ apps/frontend/vite.config.ts | 11 +- package.json | 16 +- packages/client/package.json | 2 +- packages/scripts/package.json | 4 +- pnpm-lock.yaml | 1127 ++++++++++------- 23 files changed, 1727 insertions(+), 464 deletions(-) create mode 100644 .taplo.toml create mode 100644 apps/desktop/src/ext/specta.rs create mode 100644 apps/frontend/src/bindings.ts rename apps/frontend/src/{types.ts => types/index.ts} (100%) rename apps/frontend/src/{ => types}/vite-env.d.ts (100%) create mode 100644 apps/frontend/src/utils/environment.ts create mode 100644 apps/frontend/src/utils/query.ts rename apps/frontend/src/utils/{PausableTimer.ts => timer.ts} (100%) create mode 100644 apps/frontend/src/utils/updater.tsx diff --git a/.editorconfig b/.editorconfig index d691fc17..02500264 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,6 +6,7 @@ indent_size = 4 end_of_line = lf trim_trailing_whitespace = true insert_final_newline = true +charset = utf-8 [*.nix] indent_style = space diff --git a/.gitignore b/.gitignore index 94cbe834..e6ecde18 100644 --- a/.gitignore +++ b/.gitignore @@ -1,22 +1,6 @@ -# Nix -result* -repl-result-out* -.direnv - -# auto-generated files -apps/frontend/src/bindings.ts -apps/frontend/ipc - -# Prisma crates/prisma/src/prisma.rs dev.db dev.db-journal - -# Vendor -.eslintcache -# .env* -vendor/ -vender/ .cargo/config.toml # Created by https://www.toptal.com/developers/gitignore/api/git,node,rust,yarn,linux,macos,windows,rust-analyzer,visualstudiocode,intellij+all diff --git a/.npmrc b/.npmrc index 36afb31d..bcdc315f 100644 --- a/.npmrc +++ b/.npmrc @@ -1,5 +1,9 @@ ; make all engine requirements (e.g. node version) strictly kept engine-strict=true +dedupe-peer-dependents=true +# strict-peer-dependencies=true auto-install-peers=true max-old-space-size=4096 enable-pre-post-scripts=true +package-manager-strict=true +package-manager-strict-version=true diff --git a/.taplo.toml b/.taplo.toml new file mode 100644 index 00000000..c04e4513 --- /dev/null +++ b/.taplo.toml @@ -0,0 +1,11 @@ +[formatting] +align_comments = true +align_entries = true +array_auto_collapse = true +array_trailing_comma = true +column_width = 100 +crlf = false +indent_string = ' ' +reorder_arrays = true +reorder_keys = true +trailing_newline = true \ No newline at end of file diff --git a/apps/desktop/src/ext/mod.rs b/apps/desktop/src/ext/mod.rs index 3ab3fc11..5e888795 100644 --- a/apps/desktop/src/ext/mod.rs +++ b/apps/desktop/src/ext/mod.rs @@ -1,3 +1,4 @@ pub mod macos; pub mod menu; pub mod updater; +pub mod specta; diff --git a/apps/desktop/src/ext/specta.rs b/apps/desktop/src/ext/specta.rs new file mode 100644 index 00000000..2dfddc92 --- /dev/null +++ b/apps/desktop/src/ext/specta.rs @@ -0,0 +1,15 @@ +use std::io; +use std::process::Command; +use std::path::Path; + +pub fn formatter(file: &Path) -> io::Result<()> { + Command::new("pnpm") + .arg("eslint") + .arg("--fix") + .arg(file) + .output() + .map(|_| ()) + .map_err(|e| io::Error::new(io::ErrorKind::Other, e)) +} + +const _: specta_typescript::FormatterFn = formatter; diff --git a/apps/desktop/src/ext/updater.rs b/apps/desktop/src/ext/updater.rs index a47f33cf..d1d1a0ff 100644 --- a/apps/desktop/src/ext/updater.rs +++ b/apps/desktop/src/ext/updater.rs @@ -16,6 +16,7 @@ impl Update { } } +// TODO: tauri-specta event? #[derive(Default)] pub struct State { install_lock: Mutex<()>, diff --git a/apps/desktop/src/lib.rs b/apps/desktop/src/lib.rs index e8f01ac0..17f7870c 100644 --- a/apps/desktop/src/lib.rs +++ b/apps/desktop/src/lib.rs @@ -48,7 +48,8 @@ pub async fn run_app) + Send + 'static>( prebuild .export( specta_typescript::Typescript::default() - .bigint(specta_typescript::BigIntExportBehavior::BigInt), + .bigint(specta_typescript::BigIntExportBehavior::BigInt) + .formatter(crate::ext::specta::formatter), "../frontend/src/bindings.ts", ) .expect("failed to export debug bindings!"); diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 960d9322..3ff3772c 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -14,7 +14,8 @@ "sideEffects": false, "scripts": { "dev": "vite", - "build": "vite build" + "build": "vite build", + "typecheck": "tsc --noEmit" }, "dependencies": { "@fontsource/poppins": "^5.0.14", @@ -22,7 +23,9 @@ "@leeoniya/ufuzzy": "^1.0.14", "@onelauncher/client": "workspace:*", "@solid-primitives/refs": "^1.0.8", - "@solidjs/router": "^0.14.1", + "@solidjs/router": "^0.14.3", + "@t3-oss/env-core": "^0.11.0", + "zod": "^3.23.8", "@tanstack/solid-query": "^5.51.21", "@tauri-apps/api": "2.0.0-rc.0", "@tauri-apps/plugin-clipboard-manager": "github:tauri-apps/tauri-plugin-clipboard-manager#v2", @@ -30,12 +33,12 @@ "@tauri-apps/plugin-shell": "github:tauri-apps/tauri-plugin-shell#v2", "@thisbeyond/solid-dnd": "^0.7.5", "@thisbeyond/solid-select": "^0.15.0", - "@unocss/reset": "^0.61.9", + "@unocss/reset": "^0.62.1", "@untitled-theme/icons-solid": "^0.10.5", "overlayscrollbars": "^2.10.0", "overlayscrollbars-solid": "^0.5.5", "pathe": "^1.1.2", - "solid-js": "^1.8.20", + "solid-js": "^1.8.21", "solid-transition-group": "^0.2.3", "uuid": "^10.0.0" }, @@ -43,10 +46,11 @@ "@solidjs/testing-library": "^0.8.9", "@tauri-apps/cli": "2.0.0-rc.3", "@testing-library/jest-dom": "^6.4.8", + "@sentry/vite-plugin": "^2.22.2", "@types/uuid": "^10.0.0", "jsdom": "^24.1.1", "sass": "^1.77.8", - "unocss": "^0.61.9", + "unocss": "^0.62.1", "vite-plugin-solid": "^2.10.2", "vite-plugin-solid-svg": "^0.8.1", "vite-tsconfig-paths": "^5.0.1" diff --git a/apps/frontend/src/bindings.ts b/apps/frontend/src/bindings.ts new file mode 100644 index 00000000..e17b5f9c --- /dev/null +++ b/apps/frontend/src/bindings.ts @@ -0,0 +1,858 @@ + +// This file was generated by [tauri-specta](https://github.com/oscartbeaumont/tauri-specta). Do not edit this file manually. + +/** user-defined commands **/ + + +export const commands = { + async authLogin(): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("auth_login") }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getUsers(): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_users") }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getUser(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_user", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getDefaultUser(fallback: boolean | null): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_default_user", { fallback }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async setDefaultUser(uuid: string | null): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("set_default_user", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async removeUser(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("remove_user", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async createCluster(props: CreateCluster): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("create_cluster", { props }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + /** + * Updates the cluster with the given UUID. The cluster only updates game setting fields + */ + async editGameSettings(uuid: string, newCluster: Cluster): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("edit_game_settings", { uuid, newCluster }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async editClusterMeta(uuid: string, name: string | null, iconPath: string | null): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("edit_cluster_meta", { uuid, name, iconPath }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async removeCluster(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("remove_cluster", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getCluster(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_cluster", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getClusters(): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_clusters") }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getClustersGrouped(): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_clusters_grouped") }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async runCluster(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("run_cluster", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getClusterLogs(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_cluster_logs", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getClusterLog(uuid: string, logName: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_cluster_log", { uuid, logName }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async uploadLog(uuid: string, logName: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("upload_log", { uuid, logName }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getScreenshots(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_screenshots", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getWorlds(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_worlds", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getRunningClusters(): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_running_clusters") }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getProcessesByPath(path: ClusterPath): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_processes_by_path", { path }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async killProcess(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("kill_process", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async isClusterRunning(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("is_cluster_running", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getPidByUuid(uuid: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_pid_by_uuid", { uuid }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getSettings(): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_settings") }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async setSettings(settings: Settings): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("set_settings", { settings }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getMinecraftVersions(): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_minecraft_versions") }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async randomMods(): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("random_mods") }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async getMod(projectId: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("get_mod", { projectId }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async downloadMod(clusterId: string, versionId: string): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("download_mod", { clusterId, versionId }) }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async checkForUpdate(): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("check_for_update") }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + }, + async installUpdate(): Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("install_update") }; + } catch (e) { + if (e instanceof Error) throw e; + else return { status: "error", error: e as any }; + } + } +} + +/** user-defined events **/ + + +export const events = __makeEvents__<{ + clusterPayload: ClusterPayload, + ingressPayload: IngressPayload, + internetPayload: InternetPayload, + messagePayload: MessagePayload, + offlinePayload: OfflinePayload, + processPayload: ProcessPayload +}>({ + clusterPayload: "cluster-payload", + ingressPayload: "ingress-payload", + internetPayload: "internet-payload", + messagePayload: "message-payload", + offlinePayload: "offline-payload", + processPayload: "process-payload" +}) + +/** user-defined constants **/ + +export const PROGRAM_INFO = { "arch": "64", "dev_build": true, "launcher_version": "1.0.0-alpha.1", "platform": "osx", "tauri_version": "2.0.0-rc.0", "webview_version": "19618.3.11.11.5" } as const; + +/** user-defined types **/ + +/** + * Represents a single Instance and installation of Minecraft + * Contains settings and identifiers on a per-Cluster basis, falling back to default settings for Options<> + */ +export type Cluster = { + /** + * The Uuid of a specific cluster. + */ + uuid: string; + /** + * The download stage that of a cluster. + */ + stage?: ClusterStage; + /** + * The core path of the cluster. + */ + path?: string; + /** + * The associated cluster metadata. + */ + meta: ClusterMeta; + /** + * The per-cluster JVM memory allocation options. + */ + memory?: Memory | null; + /** + * The per-cluster JVM options. + */ + java?: JavaOptions | null; + /** + * The per-cluster Minecraft window default resolution. + */ + resolution?: Resolution | null; + /** + * The per-cluster Minecraft window fullscreen status. + */ + force_fullscreen: boolean | null; init_hooks?: InitHooks | null; packages: { [key in PackagePath]: Package }; update?: string | null +} +/** + * Represents core Cluster metadata ([`Cluster#meta`]). + */ +export type ClusterMeta = { + /** + * The user-facing name of the cluster stored as a string. + */ + name: string; + /** + * The user-facing group of the cluster stored as a string. + */ + group?: string | null; + /** + * The associated Minecraft version of the cluster as last updated. + */ + mc_version: string; + /** + * The associated mod [`Loader`] as specified in the cluster. + */ + loader?: Loader; + /** + * The associated mod [`LoaderVersion`] if available. + */ + loader_version?: LoaderVersion | null; + /** + * The time that the cluster was created in [`DateTime`]. + */ + created_at?: string; + /** + * The time the cluster was last modified in [`DateTime`]. + */ + modified_at?: string; + /** + * The last time the cluster was played in [`DateTime`]. + * (Defaults to None if the cluster has never been played) + */ + played_at?: string | null; + /** + * The overall time played in seconds stored as a [`u64`]. + */ + overall_played?: bigint; + /** + * The recent time played stored as a [`u64`]. + */ + recently_played?: bigint; + /** + * The associated [`PackageData`] and modpack data for the cluster. + */ + package_data?: PackageData | null; + /** + * The user-facing cluster icon as a [`PathBuf`]. + */ + icon?: string | null; + /** + * The user-facing cluster icon as a URL string. + */ + icon_url?: string | null +} +/** + * Relative Path wrapper to be used as an identifer for a cluster path. + */ +export type ClusterPath = string +export type ClusterPayload = { uuid: string; cluster_path: ClusterPath; path: string; name: string; event: ClusterPayloadType } +export type ClusterPayloadType = "created" | "inserted" | "synced" | "edited" | "deleted" +/** + * Core Cluster stages used in package logic. + */ +export type ClusterStage = + /** + * Installed with no downloads left. + */ + "installed" | + /** + * Downloading any sort of core metadata or mod file. + */ + "downloading" | + /** + * Downloading a full pack file, which is granted lower priority due to the high network demand. + */ + "pack_downloading" | + /** + * Not installed at all. + */ + "not_installed" +export type CreateCluster = { name: string; mc_version: string; mod_loader: Loader; loader_version: string | null; icon: string | null; icon_url: string | null; package_data: PackageData | null; skip: boolean | null; skip_watch: boolean | null } +export type IngressPayload = { event: IngressType; ingress_uuid: string; fraction: number | null; message: string } +export type IngressType = { type: "initialize" } | { type: "download_java"; version: number } | { type: "download_loader"; cluster_path: string; cluster_name: string } | { type: "sync_cluster"; cluster_path: string; cluster_name: string } | { type: "copy_cluster"; import: string; cluster_name: string } | { type: "sync_config"; new_path: string } | { type: "archival"; cluster_path: string; cluster_name: string } | { type: "download_package"; cluster_path: string; package_name: string; icon: string | null; package_id: string | null; package_version: string | null } | { type: "download_pack"; cluster_path: string; package_name: string; icon: string | null; package_version: string } +/** + * Global initialization hooks for all Minecraft clusters. + */ +export type InitHooks = { + /** + * Pre-launch hook. + */ + pre?: string | null; + /** + * Wrapper hook for the runtime of the game instance. + */ + wrapper?: string | null; + /** + * Post-launch hook. + */ + post?: string | null +} +export type InternetPayload = { event: "InstallPackage"; id: string } | { event: "InstallPack"; id: string } | { event: "InstallPath"; path: string } +/** + * Custom Java arguments on a per-cluster basis. + */ +export type JavaOptions = { + /** + * A custom java version from the global java store, if specified. + */ + custom_version?: JavaVersion | null; + /** + * Custom runtime arguments when running the cluster. + */ + custom_arguments?: string[] | null; + /** + * Custom environment variables when running the cluster. + */ + custom_env_arguments?: ([string, string])[] | null +} +/** + * A struct representing a single version of the Java Runtime Environment. + * Use [`locate_java`] to get an array of all located java instances on the machine. + * + * common java paths from https://github.com/PrismLauncher/PrismLauncher/blob/develop/launcher/java/JavaUtils.cpp under GPL 3.0 + * + * java check functionality from https://github.com/modrinth/theseus/blob/master/theseus/src/util/jre.rs under MIT + */ +export type JavaVersion = { version: string; arch: string; path: string } +/** + * A HashMap of all located and installed available Java versions + */ +export type JavaVersions = { [key in string]: JavaVersion } +/** + * Available mod loaders to be used for a cluster. + */ +export type Loader = + /** + * The default vanilla loader, no modding supported. + */ + "vanilla" | + /** + * The MinecraftForge Minecraft mod loader. + */ + "forge" | + /** + * The FabircMC Minecraft mod loader. + */ + "fabric" | + /** + * The NeoForge Minecraft mod loader. + */ + "neoforge" | + /** + * The Quilt Minecraft mod loader. + */ + "quilt" | + /** + * The Legacy Fabric port mod loader. + */ + "legacyfabric" +/** + * A version of a Minecraft mod loader + */ +export type LoaderVersion = { + /** + * The version ID of the loader + */ + id: string; + /** + * The URL of the version's manifest + */ + url: string; + /** + * Whether the loader is stable or not + */ + stable: boolean +} +/** + * Universal interface for managed package dependencies. + */ +export type ManagedDependency = { version_id: string | null; package_id: string | null; file_name: string | null; dependency_type: PackageDependency } +/** + * Universal metadata for any managed package from a Mod distribution platform. + */ +export type ManagedPackage = { id: string; uid: string | null; package_type: PackageType; title: string; description: string; main: string; versions: string[]; game_versions: string[]; loaders: string[]; icon_url: string | null; created: string; updated: string; client: PackageSide; server: PackageSide; downloads: number; followers: number; categories: string[]; optional_categories: string[] | null } +/** + * Universal interface for managed package authors and users. + */ +export type ManagedUser = { id: string; role: string; username: string; name: string | null; avatar: string | null; description: string | null; created: string } +/** + * Universal managed package version of a package. + */ +export type ManagedVersion = { id: string; package_id: string; author: string; name: string; featured: boolean; version_id: string; changelog: string; changelog_url: string | null; published: string; downloads: number; version_type: string; files: ManagedVersionFile[]; deps: ManagedDependency[]; game_versions: string[]; loaders: string[] } +/** + * Universal interface for managed package files. + */ +export type ManagedVersionFile = { url: string; file_name: string; primary: boolean; size: number; file_type: PackageFile | null; hashes: { [key in string]: string } } +/** + * Global memory settings across all clusters. + */ +export type Memory = { + /** + * Maximum amount of Java memory available globally. + */ + maximum: number; + /** + * Minimum amount of Java memory available globally. + */ + minimum: number +} +export type MessagePayload = { message: string } +/** + * A structure of all needed Minecraft credentials for logging in and account management. + */ +export type MinecraftCredentials = { + /** + * The uuid of the credentials. + */ + id: string; + /** + * The username of the Minecraft account. + */ + username: string; + /** + * The access token as a String. + */ + access_token: string; + /** + * The refresh token as a string for [`MinecraftState#refresh`]. + */ + refresh_token: string; + /** + * The time that the access token expires as a [`DateTime`]. + */ + expires: string +} +export type OfflinePayload = { offline: boolean } +/** + * A struct that represents a Package. + */ +export type Package = { sha512: string; meta: PackageMetadata; file_name: string; disabled: boolean } +/** + * Optional data used to link a specific cluster to a package project. + */ +export type PackageData = { + /** + * The package ID as a String. + */ + package_id: string | null; + /** + * The version of the package as a String. + */ + version_id: string | null; + /** + * Whether or not the current package is locked (for legacy modpack support). + */ + locked?: boolean | null +} +/** + * The type of a [`ManagedDependency`]. + */ +export type PackageDependency = "Required" | "Optional" | "Incompatible" | "Embedded" +/** + * The file type of a [`Package`]. + */ +export type PackageFile = "required_pack" | "optional_pack" | "unknown" +/** + * Metadata that represents a [`Package`]. + */ +export type PackageMetadata = { type: "managed"; package: ManagedPackage; version: ManagedVersion; users: ManagedUser; update: ManagedVersion | null; incompatible: boolean } | { type: "mapped"; title: string | null; description: string | null; authors: string[]; version: string | null; icon: string | null; package_type: string | null } | { type: "unknown" } +/** + * Relative [`PathBuf`] for a specific [`Package`] of a [`Cluster`]. + */ +export type PackagePath = string +/** + * The Client/Server side type of a [`Package`]. + */ +export type PackageSide = "required" | "optional" | "unsupported" | "unknown" +/** + * Represents types of packages handled by the launcher. + */ +export type PackageType = + /** + * represents a mod jarfile + */ + "mod" | + /** + * represents a datapack file + */ + "datapack" | + /** + * represents a resourcepack file + */ + "resource" | + /** + * represents a shaderpack file + */ + "shader" +export type ProcessPayload = { uuid: string; pid: number; event: ProcessPayloadType; message: string } +export type ProcessPayloadType = "started" | "modified" | "finished" +/** + * Global Minecraft resolution. + */ +export type Resolution = [number, number] +/** + * A global settings state for the launcher. + */ +export type Settings = { + /** + * A OneLauncher [`Theme`] managed by the core GUI. + */ + theme: Theme; + /** + * Does not ask for confirmation when closing the OneLauncher GUI + */ + hide_close_prompt?: boolean; + /** + * Disables animations in the OneLauncher GUI + */ + disable_animations?: boolean; + /** + * A global fullscreen Minecraft state. + */ + force_fullscreen?: boolean; + /** + * A global default [`Resolution`] for Minecraft. + */ + resolution: Resolution; + /** + * A global [`JavaVersions`] list and default version. + */ + java_versions: JavaVersions; + /** + * A global [`Memory`] settings store for Java memory settings. + */ + memory: Memory; + /** + * Global and default initialization hooks . + */ + init_hooks: InitHooks; + /** + * Global and default custom Java arguments. + */ + custom_java_args: string[]; + /** + * Global and default custom environment variables. + */ + custom_env_args: ([string, string])[]; + /** + * Global and default maximum [`Semaphore`] I/O operations. + */ + max_async_io_operations: bigint; + /** + * Global and default maximum [`Semaphore`] HTTP operations. + */ + max_async_fetches: bigint; + /** + * The [`CURRENT_FORMAT_VERSION`] of this settings file. + */ + version: number; + /** + * Whether or not to disable Discord IPC. + */ + disable_discord?: boolean; + /** + * Whether or not to enable a debug mode in the launcher. + */ + debug_mode?: boolean; + /** + * Whether or not to disable Plausible and Sentry analytics. + */ + disable_analytics?: boolean; + /** + * The core global config directory stored as a [`PathBuf`]. + */ + config_dir?: string | null; + /** + * Whether or not to minimize the launcher upon a game launch. + */ + hide_on_launch?: boolean; + /** + * Enable/disable advanced rendering and window decorations. + */ + rendering?: boolean +} +/** + * A OneLauncher theme managed by the GUI. + */ +export type Theme = + /** + * A default Dark theme. + */ + "dark" | + /** + * A default Light theme. + */ + "light" | + /** + * OLED Dark Theme. + */ + "contrast" | + /** + * Cute and colorful theme. + */ + "cat" +export type Update = { version: string } +/** + * A game version of Minecraft + */ +export type Version = { + /** + * A unique identifier of the version + */ + id: string; + /** + * The release type of the version + */ + type: VersionType; + /** + * A link to additional information about the version + */ + url: string; + /** + * The latest time a file in this version was updated + */ + time: string; + /** + * The time this version was released + */ + releaseTime: string; + /** + * The SHA1 hash of the additional information about the version + */ + sha1: string; + /** + * Whether the version supports the latest player safety features + */ + complianceLevel: number; + /** + * The SHA1 hash of the original unmodified Minecraft version's JSON + * This is only available when using the Pulseflow mirror + */ + originalSha1?: string | null +} +/** + * The version type + */ +export type VersionType = + /** + * A major version, which is stable for all players to use + */ + "release" | + /** + * An experimental version, which is unstable and used for feature previews and beta testing + */ + "snapshot" | + /** + * The oldest versions before the game was released + */ + "old_alpha" | + /** + * Early versions of the game + */ + "old_beta" + +/** tauri-specta globals **/ + +import { + invoke as TAURI_INVOKE, + Channel as TAURI_CHANNEL, +} from "@tauri-apps/api/core"; +import * as TAURI_API_EVENT from "@tauri-apps/api/event"; +import { type WebviewWindow as __WebviewWindow__ } from "@tauri-apps/api/webviewWindow"; + +type __EventObj__ = { + listen: ( + cb: TAURI_API_EVENT.EventCallback, + ) => ReturnType>; + once: ( + cb: TAURI_API_EVENT.EventCallback, + ) => ReturnType>; + emit: T extends null + ? (payload?: T) => ReturnType + : (payload: T) => ReturnType; +}; + +export type Result = + | { status: "ok"; data: T } + | { status: "error"; error: E }; + +function __makeEvents__>( + mappings: Record, +) { + return new Proxy( + {} as unknown as { + [K in keyof T]: __EventObj__ & { + (handle: __WebviewWindow__): __EventObj__; + }; + }, + { + get: (_, event) => { + const name = mappings[event as keyof T]; + + return new Proxy((() => { }) as any, { + apply: (_, __, [window]: [__WebviewWindow__]) => ({ + listen: (arg: any) => window.listen(name, arg), + once: (arg: any) => window.once(name, arg), + emit: (arg: any) => window.emit(name, arg), + }), + get: (_, command: keyof __EventObj__) => { + switch (command) { + case "listen": + return (arg: any) => TAURI_API_EVENT.listen(name, arg); + case "once": + return (arg: any) => TAURI_API_EVENT.once(name, arg); + case "emit": + return (arg: any) => TAURI_API_EVENT.emit(name, arg); + } + }, + }); + }, + }, + ); +} diff --git a/apps/frontend/src/types.ts b/apps/frontend/src/types/index.ts similarity index 100% rename from apps/frontend/src/types.ts rename to apps/frontend/src/types/index.ts diff --git a/apps/frontend/src/vite-env.d.ts b/apps/frontend/src/types/vite-env.d.ts similarity index 100% rename from apps/frontend/src/vite-env.d.ts rename to apps/frontend/src/types/vite-env.d.ts diff --git a/apps/frontend/src/ui/components/overlay/Modal.tsx b/apps/frontend/src/ui/components/overlay/Modal.tsx index 6b44f7ae..a3cc16a0 100644 --- a/apps/frontend/src/ui/components/overlay/Modal.tsx +++ b/apps/frontend/src/ui/components/overlay/Modal.tsx @@ -10,7 +10,7 @@ import { createStore } from 'solid-js/store'; import { Transition } from 'solid-transition-group'; import Button from '../base/Button'; import FullscreenOverlay from './FullscreenOverlay'; -import type { MakeOptional } from '~types.ts'; +import type { MakeOptional } from '~types'; type ModalsList = (() => JSX.Element)[]; diff --git a/apps/frontend/src/utils/environment.ts b/apps/frontend/src/utils/environment.ts new file mode 100644 index 00000000..7820befb --- /dev/null +++ b/apps/frontend/src/utils/environment.ts @@ -0,0 +1,12 @@ +import { createEnv } from '@t3-oss/env-core'; +import { z } from 'zod'; + +export const env = createEnv({ + clientPrefix: 'VITE_', + client: { + VITE_LANDING_ORIGIN: z.string().default('https://polyfrost.org'), + }, + runtimeEnv: import.meta.env, + skipValidation: false, + emptyStringAsUndefined: true, +}); diff --git a/apps/frontend/src/utils/index.ts b/apps/frontend/src/utils/index.ts index 39a0e5df..1df45b65 100644 --- a/apps/frontend/src/utils/index.ts +++ b/apps/frontend/src/utils/index.ts @@ -1,6 +1,6 @@ import type { Cluster, Loader, VersionType } from '~bindings'; -export * from './PausableTimer'; +export * from './timer'; export * from './sorting'; export function supportsMods(loader?: Cluster | Loader): boolean { diff --git a/apps/frontend/src/utils/query.ts b/apps/frontend/src/utils/query.ts new file mode 100644 index 00000000..85af40dd --- /dev/null +++ b/apps/frontend/src/utils/query.ts @@ -0,0 +1,12 @@ +import { QueryClient } from '@tanstack/solid-query'; + +export const queryClient = new QueryClient({ + defaultOptions: { + queries: { + networkMode: 'always', + }, + mutations: { + networkMode: 'always', + } + } +}); diff --git a/apps/frontend/src/utils/PausableTimer.ts b/apps/frontend/src/utils/timer.ts similarity index 100% rename from apps/frontend/src/utils/PausableTimer.ts rename to apps/frontend/src/utils/timer.ts diff --git a/apps/frontend/src/utils/updater.tsx b/apps/frontend/src/utils/updater.tsx new file mode 100644 index 00000000..c2fe26a4 --- /dev/null +++ b/apps/frontend/src/utils/updater.tsx @@ -0,0 +1,79 @@ +import { listen } from '@tauri-apps/api/event'; +import { commands } from '~bindings'; + +declare global { + interface Window { + __LAUNCHER_UPDATER__?: true; + __ONELAUNCHER_VERSION__: string; + } +} + +export type Update = { version: string }; +export type UpdateStore = +| { status: 'idle' } +| { status: 'loading' } +| { status: 'error' } +| { status: 'updateAvailable'; update: Update } +| { status: 'noUpdateAvailable' } +| { status: 'installing' }; + +export function createUpdater() { + if (!window.__LAUNCHER_UPDATER__) return; + + const updateStore: UpdateStore = { status: 'idle' }; + listen('updater', e => Object.assign(updateStore, e.payload)); + const onInstallCallbacks = new Set<() => void>(); + + async function checkForUpdate() { + const result = await commands.checkForUpdate(); + + if (result.status === 'error') { + console.error('[updater]: ', result.error); + return null; + } + + if (!result.data) + return null; + + // TODO: ui + // TODO: cb + + return result.data; + } + + function installUpdate() { + for (const cb of onInstallCallbacks) cb(); + // TODO: ui/toast + return commands.installUpdate(); + } + + const ONELAUNCHER_VERSION_LOCALSTORAGE = 'onelauncher-version'; + async function updatedCheck() { + const version = window.__ONELAUNCHER_VERSION__; + const lastVersion = localStorage.getItem(ONELAUNCHER_VERSION_LOCALSTORAGE); + const updaterStore = { tagline: null }; + + if (!lastVersion) return; + + if (lastVersion !== version) { + localStorage.setItem(ONELAUNCHER_VERSION_LOCALSTORAGE, version); + + try { + const req = await fetch(`${import.meta.env.VITE_LANDING_ORIGIN}/api/releases/${version}`); + const { frontmatter } = await req.json(); + updaterStore.tagline = frontmatter?.tagline; + } catch (error) { + console.warn('[updater]: failed to fetch release info'); + console.error('[updater]: ', error); + } + + // TODO: ui/toast/popup + } + } + + return { + checkForUpdate, + installUpdate, + updatedCheck, + }; +} diff --git a/apps/frontend/vite.config.ts b/apps/frontend/vite.config.ts index 310ad0eb..115ff369 100644 --- a/apps/frontend/vite.config.ts +++ b/apps/frontend/vite.config.ts @@ -6,6 +6,7 @@ import solid from 'vite-plugin-solid'; import solidSvg from 'vite-plugin-solid-svg'; import paths from 'vite-tsconfig-paths'; import unocss from 'unocss/vite'; +import sentry from '@sentry/vite-plugin'; export default defineConfig(async ({ mode }) => { process.env = { ...process.env, ...loadEnv(mode, process.cwd(), '') }; @@ -35,11 +36,15 @@ export default defineConfig(async ({ mode }) => { server: { port: 8001, strictPort: true, - watch: { - ignored: ['**/src-tauri/**'], - }, }, }; + if (process.env.SENTRY_AUTH_TOKEN) + config.plugins.push(sentry.sentryVitePlugin({ + authToken: process.env.SENTRY_AUTH_TOKEN, + org: 'polyfrost', + project: 'onelauncher_frontend', + })); + return config; }); diff --git a/package.json b/package.json index 527c6f14..cf071411 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "1.0.0-alpha.1", "private": true, "engineStrict": true, - "packageManager": "pnpm@9.7.0", + "packageManager": "pnpm@9.7.1", "description": "Next-generation open source Minecraft launcher and tools for interacting with Polyfrost", "license": "GPL-3.0-only", "homepage": "https://polyfrost.org", @@ -16,7 +16,7 @@ "bugs": "https://github.com/polyfrost/onelauncher/issues", "sideEffects": false, "engines": { - "pnpm": "9.7.0", + "pnpm": "9.7.1", "npm": "pnpm", "yarn": "pnpm", "node": ">=18" @@ -35,7 +35,6 @@ "core": "cd packages/core && cargo", "testing": "cd apps/testing && cargo", "tauri": "cd apps/desktop && cargo", - "test:vi": "pnpm vitest run", "test:update": "pnpm vitest -u", "test:ui": "pnpm vitest --ui", @@ -52,18 +51,19 @@ ] }, "devDependencies": { - "@flowr/eslint-config": "^3.11.3", - "@types/node": "^22.2.0", - "@unocss/eslint-plugin": "^0.61.9", + "@flowr/eslint-config": "^3.11.5", + "@types/node": "^22.3.0", + "@unocss/eslint-plugin": "^0.62.1", "@vitest/ui": "^2.0.5", - "bumpp": "^9.4.2", + "bumpp": "^9.5.1", + "@taplo/cli": "^0.7.0", "eslint": "^9.9.0", "eslint-plugin-solid": "^0.14.1", "jiti": "^1.21.6", "ts-node": "^10.9.2", "tsx": "~4.17.0", "typescript": "^5.5.4", - "vite": "^5.4.0", + "vite": "^5.4.1", "vitest": "^2.0.5" } } diff --git a/packages/client/package.json b/packages/client/package.json index 51c4b2d7..2c915fe5 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -20,7 +20,7 @@ "@tanstack/solid-query": "^5.51.21", "fast-equals": "^5.0.1", "plausible-tracker": "^0.3.9", - "solid-js": "^1.8.20", + "solid-js": "^1.8.21", "zod": "^3.23.8" } } diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 5125b8be..2d33530f 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -19,8 +19,8 @@ "int:prepare": "pnpm tsx prepare.ts" }, "dependencies": { - "@flowr/utils": "^3.11.3", - "execa": "^9.3.0", + "@flowr/utils": "^3.11.5", + "execa": "^9.3.1", "mustache": "^4.2.0", "pathe": "^1.1.2", "semver": "^7.6.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a615760e..218ffe11 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,20 +9,23 @@ importers: .: devDependencies: '@flowr/eslint-config': - specifier: ^3.11.3 - version: 3.11.3(@typescript-eslint/utils@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(@unocss/eslint-plugin@0.61.9(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.9.0(jiti@1.21.6)))(eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.37)(eslint@9.9.0(jiti@1.21.6)))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.2.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.9.0(jiti@1.21.6))) + specifier: ^3.11.5 + version: 3.11.5(@typescript-eslint/utils@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(@unocss/eslint-plugin@0.62.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.9.0(jiti@1.21.6)))(eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.38)(eslint@9.9.0(jiti@1.21.6)))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.3.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.9.0(jiti@1.21.6))) + '@taplo/cli': + specifier: ^0.7.0 + version: 0.7.0 '@types/node': - specifier: ^22.2.0 - version: 22.2.0 + specifier: ^22.3.0 + version: 22.3.0 '@unocss/eslint-plugin': - specifier: ^0.61.9 - version: 0.61.9(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + specifier: ^0.62.1 + version: 0.62.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) '@vitest/ui': specifier: ^2.0.5 version: 2.0.5(vitest@2.0.5) bumpp: - specifier: ^9.4.2 - version: 9.4.2 + specifier: ^9.5.1 + version: 9.5.1 eslint: specifier: ^9.9.0 version: 9.9.0(jiti@1.21.6) @@ -34,7 +37,7 @@ importers: version: 1.21.6 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.2.0)(typescript@5.5.4) + version: 10.9.2(@types/node@22.3.0)(typescript@5.5.4) tsx: specifier: ~4.17.0 version: 4.17.0 @@ -42,11 +45,11 @@ importers: specifier: ^5.5.4 version: 5.5.4 vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@22.2.0)(sass@1.77.8) + specifier: ^5.4.1 + version: 5.4.1(@types/node@22.3.0)(sass@1.77.8) vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@22.2.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8) + version: 2.0.5(@types/node@22.3.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8) .github/actions/clippy: dependencies: @@ -130,13 +133,16 @@ importers: version: link:../../packages/client '@solid-primitives/refs': specifier: ^1.0.8 - version: 1.0.8(solid-js@1.8.20) + version: 1.0.8(solid-js@1.8.21) '@solidjs/router': - specifier: ^0.14.1 - version: 0.14.1(solid-js@1.8.20) + specifier: ^0.14.3 + version: 0.14.3(solid-js@1.8.21) + '@t3-oss/env-core': + specifier: ^0.11.0 + version: 0.11.0(typescript@5.5.4)(zod@3.23.8) '@tanstack/solid-query': specifier: ^5.51.21 - version: 5.51.21(solid-js@1.8.20) + version: 5.51.21(solid-js@1.8.21) '@tauri-apps/api': specifier: 2.0.0-rc.0 version: 2.0.0-rc.0 @@ -151,38 +157,44 @@ importers: version: https://codeload.github.com/tauri-apps/tauri-plugin-shell/tar.gz/5cc36dadeaad0520111c6f5e32ecdbbae7cb1311 '@thisbeyond/solid-dnd': specifier: ^0.7.5 - version: 0.7.5(solid-js@1.8.20) + version: 0.7.5(solid-js@1.8.21) '@thisbeyond/solid-select': specifier: ^0.15.0 - version: 0.15.0(solid-js@1.8.20) + version: 0.15.0(solid-js@1.8.21) '@unocss/reset': - specifier: ^0.61.9 - version: 0.61.9 + specifier: ^0.62.1 + version: 0.62.1 '@untitled-theme/icons-solid': specifier: ^0.10.5 - version: 0.10.5(solid-js@1.8.20) + version: 0.10.5(solid-js@1.8.21) overlayscrollbars: specifier: ^2.10.0 version: 2.10.0 overlayscrollbars-solid: specifier: ^0.5.5 - version: 0.5.5(overlayscrollbars@2.10.0)(solid-js@1.8.20) + version: 0.5.5(overlayscrollbars@2.10.0)(solid-js@1.8.21) pathe: specifier: ^1.1.2 version: 1.1.2 solid-js: - specifier: ^1.8.20 - version: 1.8.20 + specifier: ^1.8.21 + version: 1.8.21 solid-transition-group: specifier: ^0.2.3 - version: 0.2.3(solid-js@1.8.20) + version: 0.2.3(solid-js@1.8.21) uuid: specifier: ^10.0.0 version: 10.0.0 + zod: + specifier: ^3.23.8 + version: 3.23.8 devDependencies: + '@sentry/vite-plugin': + specifier: ^2.22.2 + version: 2.22.2 '@solidjs/testing-library': specifier: ^0.8.9 - version: 0.8.9(@solidjs/router@0.14.1(solid-js@1.8.20))(solid-js@1.8.20) + version: 0.8.9(@solidjs/router@0.14.3(solid-js@1.8.21))(solid-js@1.8.21) '@tauri-apps/cli': specifier: 2.0.0-rc.3 version: 2.0.0-rc.3 @@ -199,17 +211,17 @@ importers: specifier: ^1.77.8 version: 1.77.8 unocss: - specifier: ^0.61.9 - version: 0.61.9(postcss@8.4.41)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)) + specifier: ^0.62.1 + version: 0.62.1(postcss@8.4.41)(rollup@4.20.0)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)) vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(@testing-library/jest-dom@6.4.8)(solid-js@1.8.20)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)) + version: 2.10.2(@testing-library/jest-dom@6.4.8)(solid-js@1.8.21)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)) vite-plugin-solid-svg: specifier: ^0.8.1 - version: 0.8.1(solid-js@1.8.20)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)) + version: 0.8.1(solid-js@1.8.21)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)) vite-tsconfig-paths: specifier: ^5.0.1 - version: 5.0.1(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)) + version: 5.0.1(typescript@5.5.4)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)) apps/testing: {} @@ -217,10 +229,10 @@ importers: dependencies: '@solid-primitives/deep': specifier: ^0.2.9 - version: 0.2.9(solid-js@1.8.20) + version: 0.2.9(solid-js@1.8.21) '@tanstack/solid-query': specifier: ^5.51.21 - version: 5.51.21(solid-js@1.8.20) + version: 5.51.21(solid-js@1.8.21) fast-equals: specifier: ^5.0.1 version: 5.0.1 @@ -228,8 +240,8 @@ importers: specifier: ^0.3.9 version: 0.3.9 solid-js: - specifier: ^1.8.20 - version: 1.8.20 + specifier: ^1.8.21 + version: 1.8.21 zod: specifier: ^3.23.8 version: 3.23.8 @@ -243,11 +255,11 @@ importers: packages/scripts: dependencies: '@flowr/utils': - specifier: ^3.11.3 - version: 3.11.3 + specifier: ^3.11.5 + version: 3.11.5 execa: - specifier: ^9.3.0 - version: 9.3.0 + specifier: ^9.3.1 + version: 9.3.1 mustache: specifier: ^4.2.0 version: 4.2.0 @@ -307,8 +319,8 @@ packages: '@antfu/install-pkg@0.1.1': resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} - '@antfu/install-pkg@0.3.3': - resolution: {integrity: sha512-nHHsk3NXQ6xkCfiRRC8Nfrg8pU5kkr3P3Y9s9dKqiuRmBD0Yap7fymNDjGFKeWhZQHqqbCS5CfeMy9wtExM24w==} + '@antfu/install-pkg@0.3.4': + resolution: {integrity: sha512-xmYFuDsaS5hlqVSJYVIzBGnUBhZR6NpwelQx/qr9wHTenqMF14YhsexWADcFyMCKwf/vApnvLTfEEnaOBvo5SA==} '@antfu/utils@0.7.10': resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} @@ -581,8 +593,8 @@ packages: resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==} engines: {node: '>=16'} - '@es-joy/jsdoccomment@0.46.0': - resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} + '@es-joy/jsdoccomment@0.48.0': + resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} engines: {node: '>=16'} '@esbuild/aix-ppc64@0.21.5': @@ -903,8 +915,8 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@flowr/eslint-config@3.11.3': - resolution: {integrity: sha512-NgyJQHWtS2qbrdJaxEsB/haQqvTNRzSArtza767HwryDGKrBUFb5X6CeLv7xMEh6tzjkdUAefdtfxj72pAdEtg==} + '@flowr/eslint-config@3.11.5': + resolution: {integrity: sha512-U5UZdzD1/fRPEdQj86whJqbUqmmnZXWEXBJgJnaIXinNMBt+5EtpW7c/O3oQ9zimK1HytMAxGd3jARTfehVJtQ==} engines: {node: '>=20'} peerDependencies: '@eslint-react/eslint-plugin': ^1.5.8 @@ -915,8 +927,9 @@ packages: eslint: '>=8.40.0' eslint-plugin-astro: ^1.2.0 eslint-plugin-format: '>=0.1.0' + eslint-plugin-json-schema-validator: ^5.1.2 eslint-plugin-jsx-a11y: ^6.9.0 - eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-hooks: next eslint-plugin-solid: ^0.14.0 eslint-plugin-svelte: '>=2.39.0' eslint-plugin-vue: ^9.26.0 @@ -941,6 +954,8 @@ packages: optional: true eslint-plugin-format: optional: true + eslint-plugin-json-schema-validator: + optional: true eslint-plugin-jsx-a11y: optional: true eslint-plugin-react-hooks: @@ -964,8 +979,8 @@ packages: vue-eslint-parser: optional: true - '@flowr/utils@3.11.3': - resolution: {integrity: sha512-Pb+Yk1BnRmOy3jGxAAYeFZF0APfDn7w+M1ZlCLKwErYu5EQY1HkWQ3bxEtsPba9s8XJvaFdIJCJ1OT22BLbQbA==} + '@flowr/utils@3.11.5': + resolution: {integrity: sha512-OP3FsGNJHj8UjxWn1lpkHnxxNkot0HtEguXPdWJpM02F0wZyLkc0+gu2HX99LHskqWAjr1cz+vLapw14eXG91g==} engines: {node: '>=20'} '@fontsource/poppins@5.0.14': @@ -985,8 +1000,8 @@ packages: '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@2.1.29': - resolution: {integrity: sha512-wCcTsmlJvTi1VWBgcJ7HeuWlh7gLGWY7L9HmbgMfjOfsoo7DADemB2Nqnrw1KvCdEAxLL5wTMBAOP5BesFrtng==} + '@iconify/utils@2.1.30': + resolution: {integrity: sha512-bY0IO5xLOlbzJBnjWLxknp6Sss3yla03sVY9VeUz9nT6dbc+EGKlLfCt+6uytJnWm5CUvTF/BNotsLWF7kI61A==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -1207,6 +1222,64 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@sentry/babel-plugin-component-annotate@2.22.2': + resolution: {integrity: sha512-6kFAHGcs0npIC4HTt4ULs8uOfEucvMI7VW4hoyk17jhRaW8CbxzxfWCfIeRbDkE8pYwnARaq83tu025Hrk2zgA==} + engines: {node: '>= 14'} + + '@sentry/bundler-plugin-core@2.22.2': + resolution: {integrity: sha512-TwEEW4FeEJ5Mamp4fGnktfVjzN77KAW0xFQsEPuxZtOAPG17zX/PGvdyRX/TE1jkZWhTzqUDIdgzqlNLjyEnUw==} + engines: {node: '>= 14'} + + '@sentry/cli-darwin@2.33.1': + resolution: {integrity: sha512-+4/VIx/E1L2hChj5nGf5MHyEPHUNHJ/HoG5RY+B+vyEutGily1c1+DM2bum7RbD0xs6wKLIyup5F02guzSzG8A==} + engines: {node: '>=10'} + os: [darwin] + + '@sentry/cli-linux-arm64@2.33.1': + resolution: {integrity: sha512-DbGV56PRKOLsAZJX27Jt2uZ11QfQEMmWB4cIvxkKcFVE+LJP4MVA+MGGRUL6p+Bs1R9ZUuGbpKGtj0JiG6CoXw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux, freebsd] + + '@sentry/cli-linux-arm@2.33.1': + resolution: {integrity: sha512-zbxEvQju+tgNvzTOt635le4kS/Fbm2XC2RtYbCTs034Vb8xjrAxLnK0z1bQnStUV8BkeBHtsNVrG+NSQDym2wg==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux, freebsd] + + '@sentry/cli-linux-i686@2.33.1': + resolution: {integrity: sha512-g2LS4oPXkPWOfKWukKzYp4FnXVRRSwBxhuQ9eSw2peeb58ZIObr4YKGOA/8HJRGkooBJIKGaAR2mH2Pk1TKaiA==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [linux, freebsd] + + '@sentry/cli-linux-x64@2.33.1': + resolution: {integrity: sha512-IV3dcYV/ZcvO+VGu9U6kuxSdbsV2kzxaBwWUQxtzxJ+cOa7J8Hn1t0koKGtU53JVZNBa06qJWIcqgl4/pCuKIg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux, freebsd] + + '@sentry/cli-win32-i686@2.33.1': + resolution: {integrity: sha512-F7cJySvkpzIu7fnLKNHYwBzZYYwlhoDbAUnaFX0UZCN+5DNp/5LwTp37a5TWOsmCaHMZT4i9IO4SIsnNw16/zQ==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [win32] + + '@sentry/cli-win32-x64@2.33.1': + resolution: {integrity: sha512-8VyRoJqtb2uQ8/bFRKNuACYZt7r+Xx0k2wXRGTyH05lCjAiVIXn7DiS2BxHFty7M1QEWUCMNsb/UC/x/Cu2wuA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@sentry/cli@2.33.1': + resolution: {integrity: sha512-dUlZ4EFh98VFRPJ+f6OW3JEYQ7VvqGNMa0AMcmvk07ePNeK/GicAWmSQE4ZfJTTl80ul6HZw1kY01fGQOQlVRA==} + engines: {node: '>= 10'} + hasBin: true + + '@sentry/vite-plugin@2.22.2': + resolution: {integrity: sha512-LJSNTw75UJq77v2jCan8cRh0w1u6W30jxQsbqF7YyyhhfjPTyFUXYday9RDDe84qDEnspbZmgeTSWTvaTGsBRg==} + engines: {node: '>= 14'} + '@sindresorhus/merge-streams@4.0.0': resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} @@ -1241,8 +1314,8 @@ packages: peerDependencies: solid-js: ^1.6.12 - '@solidjs/router@0.14.1': - resolution: {integrity: sha512-GumQ4jbt5xDngLypAndC4EjapY/3DP0G8Az4YWEVQHdCtjHwB8IOm32eEBxE9lKpOffbtXV0r/0X0mofHJ1m5w==} + '@solidjs/router@0.14.3': + resolution: {integrity: sha512-9p4k4zL2baK/1XRQALbFcaQ4IikjkWmxqYQtFqLzjONUejhL1uqJHtzxB4tZjmNqtRANVRnTDbJfzjvaD9k+pQ==} peerDependencies: solid-js: ^1.8.6 @@ -1285,6 +1358,15 @@ packages: peerDependencies: eslint: '>=8.40.0' + '@t3-oss/env-core@0.11.0': + resolution: {integrity: sha512-PSalC5bG0a7XbyoLydiQdAnx3gICX6IQNctvh+TyLrdFxsxgocdj9Ui7sd061UlBzi+z4aIGjnem1kZx9QtUgQ==} + peerDependencies: + typescript: '>=5.0.0' + zod: ^3.0.0 + peerDependenciesMeta: + typescript: + optional: true + '@tanstack/query-core@5.51.21': resolution: {integrity: sha512-POQxm42IUp6n89kKWF4IZi18v3fxQWFRolvBA6phNVmA8psdfB1MvDnGacCJdS+EOX12w/CyHM62z//rHmYmvw==} @@ -1293,6 +1375,10 @@ packages: peerDependencies: solid-js: ^1.6.0 + '@taplo/cli@0.7.0': + resolution: {integrity: sha512-Ck3zFhQhIhi02Hl6T4ZmJsXdnJE+wXcJz5f8klxd4keRYgenMnip3JDPMGDRLbnC/2iGd8P0sBIQqI3KxfVjBg==} + hasBin: true + '@tauri-apps/api@2.0.0-rc.0': resolution: {integrity: sha512-v454Qs3REHc3Za59U+/eSmBsdmF+3NE5+76+lFDaitVqN4ZglDHENDaMARYKGJVZuxiSkzyqG0SeG7lLQjVkPA==} engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} @@ -1449,8 +1535,8 @@ packages: '@types/node@20.14.10': resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} - '@types/node@22.2.0': - resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} + '@types/node@22.3.0': + resolution: {integrity: sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1458,14 +1544,14 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/unist@2.0.10': - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} '@types/uuid@10.0.0': resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - '@typescript-eslint/eslint-plugin@8.0.1': - resolution: {integrity: sha512-5g3Y7GDFsJAnY4Yhvk8sZtFfV6YNF2caLzjrRPUBzewjPCaj0yokePB4LJSobyCzGMzjZZYFbwuzbfDHlimXbQ==} + '@typescript-eslint/eslint-plugin@8.1.0': + resolution: {integrity: sha512-LlNBaHFCEBPHyD4pZXb35mzjGkuGKXU5eeCA1SxvHfiRES0E82dOounfVpL4DCqYvJEKab0bZIA0gCRpdLKkCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1475,8 +1561,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.0.1': - resolution: {integrity: sha512-5IgYJ9EO/12pOUwiBKFkpU7rS3IU21mtXzB81TNwq2xEybcmAZrE9qwDtsb5uQd9aVO9o0fdabFyAmKveXyujg==} + '@typescript-eslint/parser@8.1.0': + resolution: {integrity: sha512-U7iTAtGgJk6DPX9wIWPPOlt1gO57097G06gIcl0N0EEnNw8RGD62c+2/DiP/zL7KrkqnnqF7gtFGR7YgzPllTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1493,12 +1579,12 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.0.1': - resolution: {integrity: sha512-NpixInP5dm7uukMiRyiHjRKkom5RIFA4dfiHvalanD2cF0CLUuQqxfg8PtEUo9yqJI2bBhF+pcSafqnG3UBnRQ==} + '@typescript-eslint/scope-manager@8.1.0': + resolution: {integrity: sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.0.1': - resolution: {integrity: sha512-+/UT25MWvXeDX9YaHv1IS6KI1fiuTto43WprE7pgSMswHbn1Jm9GEM4Txp+X74ifOWV8emu2AWcbLhpJAvD5Ng==} + '@typescript-eslint/type-utils@8.1.0': + resolution: {integrity: sha512-oLYvTxljVvsMnldfl6jIKxTaU7ok7km0KDrwOt1RHYu6nxlhN3TIx8k5Q52L6wR33nOwDgM7VwW1fT1qMNfFIA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1514,8 +1600,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.0.1': - resolution: {integrity: sha512-PpqTVT3yCA/bIgJ12czBuE3iBlM3g4inRSC5J0QOdQFAn07TYrYEQBBKgXH1lQpglup+Zy6c1fxuwTk4MTNKIw==} + '@typescript-eslint/types@8.1.0': + resolution: {integrity: sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.16.0': @@ -1536,8 +1622,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.0.1': - resolution: {integrity: sha512-8V9hriRvZQXPWU3bbiUV4Epo7EvgM6RTs+sUmxp5G//dBGy402S7Fx0W0QkB2fb4obCF8SInoUzvTYtc3bkb5w==} + '@typescript-eslint/typescript-estree@8.1.0': + resolution: {integrity: sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1557,8 +1643,8 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.0.1': - resolution: {integrity: sha512-CBFR0G0sCt0+fzfnKaciu9IBsKvEKYwN9UZ+eeogK1fYHg4Qxk1yf/wLQkLXlq8wbU2dFlgAesxt8Gi76E8RTA==} + '@typescript-eslint/utils@8.1.0': + resolution: {integrity: sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1571,97 +1657,97 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.0.1': - resolution: {integrity: sha512-W5E+o0UfUcK5EgchLZsyVWqARmsM7v54/qEq6PY3YI5arkgmCzHiuk0zKSJJbm71V0xdRna4BGomkCTXz2/LkQ==} + '@typescript-eslint/visitor-keys@8.1.0': + resolution: {integrity: sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unocss/astro@0.61.9': - resolution: {integrity: sha512-adOXz4itYHxqhvQgJHlEU58EHDTtY2qrcEPVmQVk4qI1W+ezQV6nQMQvti8mS/HbFw3MOJhIY1MlJoZK36/cyw==} + '@unocss/astro@0.62.1': + resolution: {integrity: sha512-vUcNHfiqVNd1U1OuiZPtc2T/I7S8nrmXkWwLjz3KzVj8Q0CGUN70eQaz0F01EOg+P62Wxegm/trjGD7/ze5Ldw==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: vite: optional: true - '@unocss/cli@0.61.9': - resolution: {integrity: sha512-W5pN2cOKAOkeKKXMqsGD/J7dpEAmxODtOH2Afjk41qsjqUlzGlUbmgG9PjAz7TDHrAmvuf3nvmMeeT3fii2UFg==} + '@unocss/cli@0.62.1': + resolution: {integrity: sha512-7+aqcOPHFBt4QVJkEGC8aOZairZznciLwbbOSXKLqySNH1mx5zgLMhY4uNFEFZF225ZTxbB037m2gLTf/f4XKA==} engines: {node: '>=14'} hasBin: true - '@unocss/config@0.61.9': - resolution: {integrity: sha512-ATvZEFMQiW3/oUaaplVMBYuagEELtnLbHSYH4pUGbJ5MALAfV98mZRyk4FkKkYoMYqWLGdCylzpgMPFDOuFQlQ==} + '@unocss/config@0.62.1': + resolution: {integrity: sha512-HNYpaqDERySunXKcD7u8UBe2lbeF8bgIxZ/aCoidfwrpuID8i7QXLcinoUgM2cFR6jXzHDxog+TpKKgcWeBm1A==} engines: {node: '>=14'} - '@unocss/core@0.61.9': - resolution: {integrity: sha512-2W1YZQIWXcueGdbXU/ZCqn/8yQhWk8e8kAHFkVlbc9rictkd2UmPB9nIZ8Ii1tMwt6F0TT6vfHbLJEGCV08o2g==} + '@unocss/core@0.62.1': + resolution: {integrity: sha512-v257k6T6GByPbsXkCzglV0cMVfaQZmvKKQEFsx34VOJ7jLVwh3QCj0seSP8j4rWSIWxqQJnox3KaVrKVp7aJbg==} - '@unocss/eslint-plugin@0.61.9': - resolution: {integrity: sha512-jgOym3WyWXAWyjkrtIZurkl87XuWAwhN8mul8V4mokpFMB5y6VMlatCYql/dD0tIyZuFJujxfWvUkizqyE84aQ==} + '@unocss/eslint-plugin@0.62.1': + resolution: {integrity: sha512-8AYwmSQVhlYyOGJaN+CjqoL1r1i1s9mhaQ8M1/A0ABdP7935itucXz04rZCKlLWtMYlTjpWUOGEV+XMfxHGRjA==} engines: {node: '>=14'} - '@unocss/extractor-arbitrary-variants@0.61.9': - resolution: {integrity: sha512-ii42/hKbhgeBBOy86729t6/HeGmxUcHM8FprPeb/v/DfYsCkjDvMYVynX3FN/K5pR2WV+HHp6TQS7GbTmRIN0g==} + '@unocss/extractor-arbitrary-variants@0.62.1': + resolution: {integrity: sha512-K27s8yh+h3VBuvdoXkM8D2rJsfLT0KAPwEkur1AEK/rN/6n2+xm15/llKJXQmc9pMq7zK072a7EKPax4FMMv4g==} - '@unocss/inspector@0.61.9': - resolution: {integrity: sha512-kUcQ/h8/yAfkqL2eCGVFyB0IGSPdR0dx2HH4V+mdSMfd8yKFR/BQys3mBvqZwSZu5a0+iisFHHq9wr+/I5DtHQ==} + '@unocss/inspector@0.62.1': + resolution: {integrity: sha512-qVeNc0GVeKRT8573kpHKUytlhruDTLn5jNZosTenY3YywPkhK+fk1CfXMbebh8nQ69v9pE+mBl+AeJcNnfAyPQ==} - '@unocss/postcss@0.61.9': - resolution: {integrity: sha512-HuFE/TUH6tt5f/AwiKNhQ/FO/lvFeW0JHPkx9SCURcKKoD3rpJUbhTqVv7c0zlCVQnRFX0hxpimoetp5Dh8qdA==} + '@unocss/postcss@0.62.1': + resolution: {integrity: sha512-RqODgpgHVHPLjT59nzVtBoX8Kv67fyqeMg/lh0UAhiHT8zdnKO+v6Q2HpFeXXu3AZUnO7NQKXHjfBGDfFjheJg==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 - '@unocss/preset-attributify@0.61.9': - resolution: {integrity: sha512-AHlEF7PiIBz1jHZZ62+AZ1u5ITrPNL/mgN8XyKwocoAr9HH8aQ3xzUgIuEX6vfV4a8rTdawffY99BQ12msePWQ==} + '@unocss/preset-attributify@0.62.1': + resolution: {integrity: sha512-ug0VEhNda2zEbEyYq1ccBBU2iKaEqCx1yIa0px3OYSmDkcCRYzaa/C+4WISXENnUbTpaG9DpzDFjPRyasfJy4w==} - '@unocss/preset-icons@0.61.9': - resolution: {integrity: sha512-5XZO511ksu3EVwpV2nIZKa5NzyJAb+JARKaUpQIXssHUVdRKk5nJYr1XtrpBDLgB6VEf/1skViLEa1bpOUI5Wg==} + '@unocss/preset-icons@0.62.1': + resolution: {integrity: sha512-zHO8RuFLkmDRLDQWuaDJKM6rlESxDA/CaKYmKUEXtqb9TRHV/w1gbICDXiZlXaphC5wDhkok62ymblwpm2xpSw==} - '@unocss/preset-mini@0.61.9': - resolution: {integrity: sha512-qhagWfdM7ytRWf4wFfrAcdeCUCVD9wDVrM+9evAmuOnMXWEiVZCjfwhjjFu+8lM7g+38n+gi7VcrNuTiZ8fHBA==} + '@unocss/preset-mini@0.62.1': + resolution: {integrity: sha512-5YWj7+5F0caGJlG8Wyqqq0VJrvuVilP8i92PSFlrPPY8Nj9qHyGrFowyJ0MRGqei6K3nHWZWFx0Wo1Ligy376g==} - '@unocss/preset-tagify@0.61.9': - resolution: {integrity: sha512-E+54+uSe+btOnQDlh8XjDUXhwxJd6/TL/8Rdl+7Pg6m+JNXudEt7xOd81L/KlDPD2tYYH9g/dQUaDN5aJyfRPQ==} + '@unocss/preset-tagify@0.62.1': + resolution: {integrity: sha512-EIrKGVL1Zu9aodumtzFpVuL8+/mIInkAxQ5v1hh22pVv01b274oKEJw3+R0eeqa7kqTquos2DlJvV1TFYXeWMQ==} - '@unocss/preset-typography@0.61.9': - resolution: {integrity: sha512-ZDoRViHtzI1Ny0sZyjajeCGEdFQCBn5CeIYgxO/KCpN107KTGLnYfoabv0gHtj/qaeAh30obeOMxZaIuxYoW3Q==} + '@unocss/preset-typography@0.62.1': + resolution: {integrity: sha512-uExRmPbBIWTDjq3RkuIv6Vp8crxukfUD+D3KoOkCP/NIGpNVfR3RRlA8n6QkoPqckYNHFET6ttB2Ke3SzvJBGg==} - '@unocss/preset-uno@0.61.9': - resolution: {integrity: sha512-N4R/BCMphrHvAMZ+qgR/FPoh724uXDuZ/1DEGuirUQJMg7makqrI6czL+P99q1bP8nWzxWEXiRXnKKLiyD9pJw==} + '@unocss/preset-uno@0.62.1': + resolution: {integrity: sha512-khT9OsudiBET9RyOetZMwD4iB9uh37szbJlayWw6QuANfWm6t5BoejRoaR9wYfB0KvGCNQOFrgxUZVVQGz3Obg==} - '@unocss/preset-web-fonts@0.61.9': - resolution: {integrity: sha512-fjQv74+FiAvGJM5vSLkD15Taku0cbi5F7qAr5T85EIQOpUB1fiH2kPoXIOT1WS2lKbQZh6pNGBxLrbBRgnVPew==} + '@unocss/preset-web-fonts@0.62.1': + resolution: {integrity: sha512-gbAXSKI027GOMLTMmYZEwLZKxF4V30clGQB8pyqWodRWXcQ4XaeIIYOmEibqqSV0woSpuMVllUR4E7/8FtE49Q==} - '@unocss/preset-wind@0.61.9': - resolution: {integrity: sha512-AzbjJrNL9Rb2BzTiREyssd8v7KFVVLERQ/PNILGzo6yYelYMl4AhKXZ3jgxWEsIABArVa3UkGBigG4h/L+2JHA==} + '@unocss/preset-wind@0.62.1': + resolution: {integrity: sha512-6U8VsQrhbxdYoeYtMYMfcQiJE5sxanyxobjm5PO62uJx23cmUNEL0GUNsNxJOm9r/W8HlUyamnutuvxw06Qf1A==} - '@unocss/reset@0.61.9': - resolution: {integrity: sha512-A1KtJiFgLM0N3FqJ9r5M3mVULcwsn+14tq5WkvSPF9ik3zQeJh8/NhxKdJImWClwBOzn795NQFXXFB70Ja+2RA==} + '@unocss/reset@0.62.1': + resolution: {integrity: sha512-v6YRcBDZx26RnuxG8/EhrmwG2ixyljcgdF/ZbSGzxktxbebGvxURH80TjKXNnfRX7nOMAJ2eyx15ZxpvCGx28Q==} - '@unocss/rule-utils@0.61.9': - resolution: {integrity: sha512-54Hw0nF+3ga70ETo3kes4He62wdsB4dHMgEiD/DEmJzyVY3ZuG/sIVAgkxjMQDo5w4SSYU/Ys1QaY+IQmeJHFQ==} + '@unocss/rule-utils@0.62.1': + resolution: {integrity: sha512-UZuk8wg0bzylEtkwH7UaOQcTIr10w0HOE/6lfpuUcLIdgbKRWAg6999JPxNowAaB7mJSO1MY3yiTn2ZpAHrl7g==} engines: {node: '>=14'} - '@unocss/scope@0.61.9': - resolution: {integrity: sha512-a9/vdg7YTFZEnJSaJBh/GqkLokYh3ZjEd3gHUxl/TZDSkGOz3WnkR2h+lgaLZm9MJ7RlSvJxYP8ySezH7jU1Pw==} + '@unocss/scope@0.62.1': + resolution: {integrity: sha512-FEQpdDm3XSNWjyZLqFw7UYqGKf5bTPBIgcmPXSY0y3pO98AzbW6yJuHxi64nm0tK69gyxA0rRUK3ILuFrfTOrg==} - '@unocss/transformer-attributify-jsx-babel@0.61.9': - resolution: {integrity: sha512-+fojHVJhA2MVd3VTCjlEKXf8Vnoy4N+lEl0CrYOD+im44sH5CWogm0RWs9rbeemy1uel6NI1wkP4xTfIA4vEgQ==} + '@unocss/transformer-attributify-jsx-babel@0.62.1': + resolution: {integrity: sha512-/2/ZOsLDCprCUkiNYgIM6kY4dxFwUwA/wQvNw3PLTiPvt3+13f04JCJmCBKeUTCP5U1yIAtCYyyf1hn4xntQeA==} - '@unocss/transformer-attributify-jsx@0.61.9': - resolution: {integrity: sha512-tKZpZ64Lr6/CX96PhDtKEsqWDo1qjtswEulzIDLxpS90SMyann3azTs6mSuOwGbkbwc4gaJe6H38eCNos0ZqHg==} + '@unocss/transformer-attributify-jsx@0.62.1': + resolution: {integrity: sha512-AYQYkKRXZk5G769f9phX5Ma2uXWVf6zn4XXHcVVu9UYJJY5h3GHhDH1fa7fEPgj1mKNSW4QQS4vyiX3O2SEBLQ==} - '@unocss/transformer-compile-class@0.61.9': - resolution: {integrity: sha512-jezMpssFJGIaZNE/rw5U+9Rk1RoDrZqXZokRkqt4tamEn1SiXjRMPWoE/hLg5Kw4oybxwCXTuAk2OsD+kTb7iA==} + '@unocss/transformer-compile-class@0.62.1': + resolution: {integrity: sha512-hyxMO34g9I5AaFBUlQ3uc5w2XyUFsSDgRtXpHjvwwCLxFE8/ojr5aaualMtbTroiAoX4vn8acn7Rq/SLtYTEEQ==} - '@unocss/transformer-directives@0.61.9': - resolution: {integrity: sha512-e4uIbHYdAYJSVpvxOv6kAsyI18X3gHkBsmBYWcUlPLVv+8tYo4eZtc0rn6ZvpiLzkFywG9e9cmpqVQwOR6pBVg==} + '@unocss/transformer-directives@0.62.1': + resolution: {integrity: sha512-PNUuKcMppJW2nFU9HHQDVYOmY52AeYcy0FAGk3Jwsbid/n53FByxmybxVwvzSaZtRIgTP9ledLv+nXUouNc/GA==} - '@unocss/transformer-variant-group@0.61.9': - resolution: {integrity: sha512-iewADYlY0LoeCb80E/4feHVSCKHl+QzGH4xUvW0zU85evMqNOa0/t0dCIoEG22wr/9piyEsg6OdHprZ2QliYqg==} + '@unocss/transformer-variant-group@0.62.1': + resolution: {integrity: sha512-M2k9hrFBpkyBsoctKhF1C50DXiGZzh2EmqQ/3FiiKKPsoxiXvefqL2WGdmtuZ+eKZaFeVhwbX02eHLfyxiDIXw==} - '@unocss/vite@0.61.9': - resolution: {integrity: sha512-hP/sL9rq1DvVCbSSx05m+bwYqen1nHm9tW6elKFkfV7X5jBUywu24WRq551NZI33KmgHA525ApX++DSWye+0uw==} + '@unocss/vite@0.62.1': + resolution: {integrity: sha512-J5DLwvKhTgGW+TxvRnlt42PtGNteuWb5AQDQ8AykDsYXM2GGTzzNkoCuX6vOcIgxpinDwUKKtXPo0M3BWyVuDg==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -1674,10 +1760,10 @@ packages: resolution: {integrity: sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==} hasBin: true - '@vitest/eslint-plugin@1.0.0': - resolution: {integrity: sha512-YQSFGYrD+eAa2QqdL8v4WAG3yYhcfW3LGlPdNRcjbF1etX0xUfI4isE+U+tYjQuVVzHG4KccRg1F8UuveFVdfg==} + '@vitest/eslint-plugin@1.0.3': + resolution: {integrity: sha512-7hTONh+lqN+TEimHy2aWVdHVqYohcxLGD4yYBwSVvhyiti/j9CqBNMQvOa6xLoVcEtaWAoCCDbYgvxwNqA4lsA==} peerDependencies: - '@typescript-eslint/utils': '>= 7.8 || 8.0.0' + '@typescript-eslint/utils': '>= 8.0' eslint: '>= 8.57.0' typescript: '>= 5.0.0' vitest: '*' @@ -1712,20 +1798,20 @@ packages: '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - '@vue/compiler-core@3.4.37': - resolution: {integrity: sha512-ZDDT/KiLKuCRXyzWecNzC5vTcubGz4LECAtfGPENpo0nrmqJHwuWtRLxk/Sb9RAKtR9iFflFycbkjkY+W/PZUQ==} + '@vue/compiler-core@3.4.38': + resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} - '@vue/compiler-dom@3.4.37': - resolution: {integrity: sha512-rIiSmL3YrntvgYV84rekAtU/xfogMUJIclUMeIKEtVBFngOL3IeZHhsH3UaFEgB5iFGpj6IW+8YuM/2Up+vVag==} + '@vue/compiler-dom@3.4.38': + resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} - '@vue/compiler-sfc@3.4.37': - resolution: {integrity: sha512-vCfetdas40Wk9aK/WWf8XcVESffsbNkBQwS5t13Y/PcfqKfIwJX2gF+82th6dOpnpbptNMlMjAny80li7TaCIg==} + '@vue/compiler-sfc@3.4.38': + resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} - '@vue/compiler-ssr@3.4.37': - resolution: {integrity: sha512-TyAgYBWrHlFrt4qpdACh8e9Ms6C/AZQ6A6xLJaWrCL8GCX5DxMzxyeFAEMfU/VFr4tylHm+a2NpfJpcd7+20XA==} + '@vue/compiler-ssr@3.4.38': + resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} - '@vue/shared@3.4.37': - resolution: {integrity: sha512-nIh8P2fc3DflG8+5Uw8PT/1i17ccFn0xxN/5oE9RfV5SVnd7G0XEFRwakrnNFE/jlS95fpGXDVG5zDETS26nmg==} + '@vue/shared@3.4.38': + resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} @@ -1750,6 +1836,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + agent-base@7.1.1: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} @@ -1897,8 +1987,8 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - bumpp@9.4.2: - resolution: {integrity: sha512-D0Cb5Mgxei7PObv4FkKQ19v1qSRhA3buQqCEQW6EU4+iort7JxL06DC6bZG5E0x/euZkaBuAQqOtFd2zIJKPjA==} + bumpp@9.5.1: + resolution: {integrity: sha512-crWpuPh5/SO84HTsIIQbwFpjwg8Zadm3udyj2YfnSSijCvjxwdtmXy2vQh6GLMWJ5LgKwmmMIn85qJ4AIHKlhg==} engines: {node: '>=10'} hasBin: true @@ -2201,8 +2291,8 @@ packages: electron-to-chromium@1.4.827: resolution: {integrity: sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ==} - electron-to-chromium@1.5.6: - resolution: {integrity: sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==} + electron-to-chromium@1.5.7: + resolution: {integrity: sha512-6FTNWIWMxMy/ZY6799nBlPtF1DFDQ6VQJ7yyDP27SJNt5lwtQ5ufqVvHylb3fdQefvRcgA3fKcFMJi9OLwBRNw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2218,10 +2308,6 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - entities@5.0.0: - resolution: {integrity: sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==} - engines: {node: '>=0.12'} - error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -2284,8 +2370,8 @@ packages: peerDependencies: eslint: ^8.56.0 || ^9.0.0-0 - eslint-plugin-jsdoc@50.0.0: - resolution: {integrity: sha512-czyJ5F7/qY2LIhUD5Bl6q1CCZ8mjvfEA9HQN5nvIp/Pb8VLIlUNd+DMZdA2OKN74QQMS3pobC06hFqAOJyOv5Q==} + eslint-plugin-jsdoc@50.2.2: + resolution: {integrity: sha512-i0ZMWA199DG7sjxlzXn5AeYZxpRfMJjDPUl7lL9eJJX8TPRoIaxJU4ys/joP5faM5AXE1eqW/dslCj3uj4Nqpg==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -2308,8 +2394,8 @@ packages: peerDependencies: eslint: '>=8.23.0' - eslint-plugin-perfectionist@3.1.3: - resolution: {integrity: sha512-eFRkBvMnnHjle5MuqTzoTIukWIr7Gm2wXvhTj3HyT/ku2J5oj7quBRbvZ8iYkjPyUFBpir3ZBnVQ5vFYswvpQg==} + eslint-plugin-perfectionist@3.2.0: + resolution: {integrity: sha512-cX1aztMbSfRWPKJH8CD+gadrbkS+RNH1OGWuNGws8J6rHzYYhawxWTU/yzMYjq2IRJCpBCfhgfa7BHRXQYxLHA==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: astro-eslint-parser: ^1.0.2 @@ -2327,8 +2413,8 @@ packages: vue-eslint-parser: optional: true - eslint-plugin-petal@3.11.3: - resolution: {integrity: sha512-TdI6uN+oCWiVgNFZXDFb0eec4usgEFodtVTrGY3LgkFE3PG/DVQfFqmW71uP9Kmeax1f2bL29CCVU/XYDJPmsA==} + eslint-plugin-petal@3.11.5: + resolution: {integrity: sha512-8FEDRPs8vPsRdbGqhli0FdZv4y9UPEKjjuD4PHY+zAO2iSamdd+2ge/jZ1d9iH0g5g1bp5xDx7FsiIuqCt6h3w==} engines: {node: '>=20'} peerDependencies: eslint: '>=8.40.0' @@ -2456,8 +2542,8 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - execa@9.3.0: - resolution: {integrity: sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==} + execa@9.3.1: + resolution: {integrity: sha512-gdhefCCNy/8tpH/2+ajP9IQc14vXchNdd0weyzSJEFURhRMGncQ+zKFxwjAufIewPEJm9BPOaJnvg2UtlH2gPQ==} engines: {node: ^18.19.0 || >=20.5.0} fast-deep-equal@3.1.3: @@ -2487,6 +2573,14 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fdir@6.2.0: + resolution: {integrity: sha512-9XaWcDl0riOX5j2kYfy0kKdg7skw3IY6kA4LFT8Tk2yF9UdrADUy8D6AJuBLtf7ISm/MksumwAHE3WVbMRyCLw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} @@ -2590,6 +2684,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -2653,6 +2751,10 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + https-proxy-agent@7.0.5: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} @@ -2665,8 +2767,8 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - human-signals@7.0.0: - resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} + human-signals@8.0.0: + resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} engines: {node: '>=18.18.0'} iconv-lite@0.6.3: @@ -2680,6 +2782,10 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + immutable@4.3.6: resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} @@ -2866,6 +2972,9 @@ packages: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jwt-decode@3.1.2: resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==} @@ -2941,6 +3050,10 @@ packages: magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -3005,6 +3118,10 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} + minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -3016,6 +3133,10 @@ packages: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} + minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} @@ -3268,8 +3389,8 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - postcss-selector-parser@6.1.1: - resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} postcss@8.4.41: @@ -3289,8 +3410,8 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-ms@9.0.0: - resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} + pretty-ms@9.1.0: + resolution: {integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==} engines: {node: '>=18'} process-nextick-args@2.0.1: @@ -3300,10 +3421,17 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} @@ -3480,8 +3608,8 @@ packages: slashes@3.0.12: resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} - solid-js@1.8.20: - resolution: {integrity: sha512-SsgaExCJ97mPm9WpAusjZ484Z8zTp8ggiueQOsrm81iAP7UaxaN+wiOgnPcJ9u6B2SQpoQ4FiDPAZBqVWi1V4g==} + solid-js@1.8.21: + resolution: {integrity: sha512-FHUGdoo7GVa1BTpGh/4UtwIISde0vSXoqNB6KFpHiTgkIY959tmCJ7NYQAWDfScBfnpoMGZR8lFz0DiwW/gFlw==} solid-refresh@0.6.3: resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} @@ -3625,6 +3753,13 @@ packages: tinybench@2.8.0: resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + tinyexec@0.1.4: + resolution: {integrity: sha512-Ba2ELcNnnWkgqnAJBouhcsDsYitbD9LIAVNSz3746u50f+tlF3wO0uB3uqyz8NHFSTpv23qtT47XGDw8pXW5DA==} + + tinyglobby@0.2.2: + resolution: {integrity: sha512-mZ2sDMaySvi1PkTp4lTo1In2zjU+cY8OvZsfwrDrx3YGRbXPX1/cbPwCR9zkm3O/Fz9Jo0F1HNgIQ1b8BepqyQ==} + engines: {node: '>=12.0.0'} + tinypool@1.0.0: resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -3728,8 +3863,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} engines: {node: '>=4'} type-fest@0.20.2: @@ -3763,8 +3898,8 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.13.0: - resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} + undici-types@6.18.2: + resolution: {integrity: sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==} undici@5.28.4: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} @@ -3788,11 +3923,11 @@ packages: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} - unocss@0.61.9: - resolution: {integrity: sha512-D7nEObT1lhCUwXU5MoQ2Msh5S5g1EHVVSqDNM2ODs6dqWSboDCsRTPZQiyQmV9vCobrjYcvAFno9ZAgO7pvurw==} + unocss@0.62.1: + resolution: {integrity: sha512-w05pOWD4Ps8BRYSlMlcn5i1At+DIZBB93DZaBPCvA5z3PTreXRv360yni+eS0PJxtfqWvjmdZ2lWEO901Hl4cQ==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 0.61.9 + '@unocss/webpack': 0.62.1 vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: '@unocss/webpack': @@ -3800,6 +3935,9 @@ packages: vite: optional: true + unplugin@1.0.1: + resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} + unzip-stream@0.3.4: resolution: {integrity: sha512-PyofABPVv+d7fL7GOpusx7eRT9YETY2X04PhwbSipdj6bMxVCFJrr+nm0Mxqbf9hUiTin/UsnuFWBXlDZFy0Cw==} @@ -3869,8 +4007,8 @@ packages: vite: optional: true - vite@5.4.0: - resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==} + vite@5.4.1: + resolution: {integrity: sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3950,6 +4088,13 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} @@ -4129,9 +4274,9 @@ snapshots: execa: 5.1.1 find-up: 5.0.0 - '@antfu/install-pkg@0.3.3': + '@antfu/install-pkg@0.3.4': dependencies: - '@jsdevtools/ez-spawn': 3.0.4 + tinyexec: 0.1.4 '@antfu/utils@0.7.10': {} @@ -4308,7 +4453,7 @@ snapshots: dependencies: '@babel/compat-data': 7.25.2 '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.2 + browserslist: 4.23.3 lru-cache: 5.1.1 semver: 6.3.1 @@ -4566,11 +4711,11 @@ snapshots: esquery: 1.6.0 jsdoc-type-pratt-parser: 4.0.0 - '@es-joy/jsdoccomment@0.46.0': + '@es-joy/jsdoccomment@0.48.0': dependencies: comment-parser: 1.4.1 esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.0.0 + jsdoc-type-pratt-parser: 4.1.0 '@esbuild/aix-ppc64@0.21.5': optional: true @@ -4717,7 +4862,7 @@ snapshots: dependencies: escape-string-regexp: 4.0.0 eslint: 9.9.0(jiti@1.21.6) - ignore: 5.3.1 + ignore: 5.3.2 '@eslint-community/eslint-utils@4.4.0(eslint@9.9.0(jiti@1.21.6))': dependencies: @@ -4754,30 +4899,30 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@flowr/eslint-config@3.11.3(@typescript-eslint/utils@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(@unocss/eslint-plugin@0.61.9(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.9.0(jiti@1.21.6)))(eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.37)(eslint@9.9.0(jiti@1.21.6)))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.2.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.9.0(jiti@1.21.6)))': + '@flowr/eslint-config@3.11.5(@typescript-eslint/utils@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(@unocss/eslint-plugin@0.62.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.9.0(jiti@1.21.6)))(eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.38)(eslint@9.9.0(jiti@1.21.6)))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.3.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.9.0(jiti@1.21.6)))': dependencies: - '@antfu/install-pkg': 0.3.3 + '@antfu/install-pkg': 0.3.4 '@clack/prompts': 0.7.0 '@eslint-community/eslint-plugin-eslint-comments': 4.3.0(eslint@9.9.0(jiti@1.21.6)) '@stylistic/eslint-plugin': 2.6.2(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/eslint-plugin': 8.0.1(@typescript-eslint/parser@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/parser': 8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) - '@vitest/eslint-plugin': 1.0.0(@typescript-eslint/utils@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.2.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)) + '@typescript-eslint/eslint-plugin': 8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@vitest/eslint-plugin': 1.0.3(@typescript-eslint/utils@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.3.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)) eslint: 9.9.0(jiti@1.21.6) eslint-flat-config-utils: 0.3.0 eslint-merge-processors: 0.1.0(eslint@9.9.0(jiti@1.21.6)) eslint-plugin-command: 0.2.3(eslint@9.9.0(jiti@1.21.6)) eslint-plugin-import-x: 3.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) - eslint-plugin-jsdoc: 50.0.0(eslint@9.9.0(jiti@1.21.6)) + eslint-plugin-jsdoc: 50.2.2(eslint@9.9.0(jiti@1.21.6)) eslint-plugin-jsonc: 2.16.0(eslint@9.9.0(jiti@1.21.6)) eslint-plugin-markdown: 5.1.0(eslint@9.9.0(jiti@1.21.6)) eslint-plugin-n: 17.10.2(eslint@9.9.0(jiti@1.21.6)) - eslint-plugin-perfectionist: 3.1.3(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.0(jiti@1.21.6))) - eslint-plugin-petal: 3.11.3(eslint@9.9.0(jiti@1.21.6)) + eslint-plugin-perfectionist: 3.2.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.0(jiti@1.21.6))) + eslint-plugin-petal: 3.11.5(eslint@9.9.0(jiti@1.21.6)) eslint-plugin-regexp: 2.6.0(eslint@9.9.0(jiti@1.21.6)) eslint-plugin-toml: 0.11.1(eslint@9.9.0(jiti@1.21.6)) eslint-plugin-unicorn: 55.0.0(eslint@9.9.0(jiti@1.21.6)) - eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.0.1(@typescript-eslint/parser@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6)) + eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6)) eslint-plugin-yml: 1.14.0(eslint@9.9.0(jiti@1.21.6)) find-up: 7.0.0 globals: 15.9.0 @@ -4787,10 +4932,10 @@ snapshots: toml-eslint-parser: 0.10.0 yaml-eslint-parser: 1.2.3 optionalDependencies: - '@unocss/eslint-plugin': 0.61.9(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@unocss/eslint-plugin': 0.62.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) eslint-plugin-solid: 0.14.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) eslint-plugin-vue: 9.27.0(eslint@9.9.0(jiti@1.21.6)) - eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.37)(eslint@9.9.0(jiti@1.21.6)) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.38)(eslint@9.9.0(jiti@1.21.6)) vue-eslint-parser: 9.4.3(eslint@9.9.0(jiti@1.21.6)) transitivePeerDependencies: - '@typescript-eslint/utils' @@ -4799,7 +4944,7 @@ snapshots: - typescript - vitest - '@flowr/utils@3.11.3': {} + '@flowr/utils@3.11.5': {} '@fontsource/poppins@5.0.14': {} @@ -4813,7 +4958,7 @@ snapshots: '@iconify/types@2.0.0': {} - '@iconify/utils@2.1.29': + '@iconify/utils@2.1.30': dependencies: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.7.10 @@ -4863,7 +5008,7 @@ snapshots: call-me-maybe: 1.0.2 cross-spawn: 7.0.3 string-argv: 0.3.2 - type-detect: 4.0.8 + type-detect: 4.1.0 '@leeoniya/ufuzzy@1.0.14': {} @@ -5050,46 +5195,110 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} + '@sentry/babel-plugin-component-annotate@2.22.2': {} + + '@sentry/bundler-plugin-core@2.22.2': + dependencies: + '@babel/core': 7.25.2 + '@sentry/babel-plugin-component-annotate': 2.22.2 + '@sentry/cli': 2.33.1 + dotenv: 16.4.5 + find-up: 5.0.0 + glob: 9.3.5 + magic-string: 0.30.8 + unplugin: 1.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@sentry/cli-darwin@2.33.1': + optional: true + + '@sentry/cli-linux-arm64@2.33.1': + optional: true + + '@sentry/cli-linux-arm@2.33.1': + optional: true + + '@sentry/cli-linux-i686@2.33.1': + optional: true + + '@sentry/cli-linux-x64@2.33.1': + optional: true + + '@sentry/cli-win32-i686@2.33.1': + optional: true + + '@sentry/cli-win32-x64@2.33.1': + optional: true + + '@sentry/cli@2.33.1': + dependencies: + https-proxy-agent: 5.0.1 + node-fetch: 2.7.0 + progress: 2.0.3 + proxy-from-env: 1.1.0 + which: 2.0.2 + optionalDependencies: + '@sentry/cli-darwin': 2.33.1 + '@sentry/cli-linux-arm': 2.33.1 + '@sentry/cli-linux-arm64': 2.33.1 + '@sentry/cli-linux-i686': 2.33.1 + '@sentry/cli-linux-x64': 2.33.1 + '@sentry/cli-win32-i686': 2.33.1 + '@sentry/cli-win32-x64': 2.33.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@sentry/vite-plugin@2.22.2': + dependencies: + '@sentry/bundler-plugin-core': 2.22.2 + unplugin: 1.0.1 + transitivePeerDependencies: + - encoding + - supports-color + '@sindresorhus/merge-streams@4.0.0': {} - '@solid-primitives/deep@0.2.9(solid-js@1.8.20)': + '@solid-primitives/deep@0.2.9(solid-js@1.8.21)': dependencies: - '@solid-primitives/memo': 1.3.9(solid-js@1.8.20) - solid-js: 1.8.20 + '@solid-primitives/memo': 1.3.9(solid-js@1.8.21) + solid-js: 1.8.21 - '@solid-primitives/memo@1.3.9(solid-js@1.8.20)': + '@solid-primitives/memo@1.3.9(solid-js@1.8.21)': dependencies: - '@solid-primitives/scheduled': 1.4.3(solid-js@1.8.20) - '@solid-primitives/utils': 6.2.3(solid-js@1.8.20) - solid-js: 1.8.20 + '@solid-primitives/scheduled': 1.4.3(solid-js@1.8.21) + '@solid-primitives/utils': 6.2.3(solid-js@1.8.21) + solid-js: 1.8.21 - '@solid-primitives/refs@1.0.8(solid-js@1.8.20)': + '@solid-primitives/refs@1.0.8(solid-js@1.8.21)': dependencies: - '@solid-primitives/utils': 6.2.3(solid-js@1.8.20) - solid-js: 1.8.20 + '@solid-primitives/utils': 6.2.3(solid-js@1.8.21) + solid-js: 1.8.21 - '@solid-primitives/scheduled@1.4.3(solid-js@1.8.20)': + '@solid-primitives/scheduled@1.4.3(solid-js@1.8.21)': dependencies: - solid-js: 1.8.20 + solid-js: 1.8.21 - '@solid-primitives/transition-group@1.0.5(solid-js@1.8.20)': + '@solid-primitives/transition-group@1.0.5(solid-js@1.8.21)': dependencies: - solid-js: 1.8.20 + solid-js: 1.8.21 - '@solid-primitives/utils@6.2.3(solid-js@1.8.20)': + '@solid-primitives/utils@6.2.3(solid-js@1.8.21)': dependencies: - solid-js: 1.8.20 + solid-js: 1.8.21 - '@solidjs/router@0.14.1(solid-js@1.8.20)': + '@solidjs/router@0.14.3(solid-js@1.8.21)': dependencies: - solid-js: 1.8.20 + solid-js: 1.8.21 - '@solidjs/testing-library@0.8.9(@solidjs/router@0.14.1(solid-js@1.8.20))(solid-js@1.8.20)': + '@solidjs/testing-library@0.8.9(@solidjs/router@0.14.3(solid-js@1.8.21))(solid-js@1.8.21)': dependencies: '@testing-library/dom': 10.4.0 - solid-js: 1.8.20 + solid-js: 1.8.21 optionalDependencies: - '@solidjs/router': 0.14.1(solid-js@1.8.20) + '@solidjs/router': 0.14.3(solid-js@1.8.21) '@stylistic/eslint-plugin-js@2.6.2(eslint@9.9.0(jiti@1.21.6))': dependencies: @@ -5110,7 +5319,7 @@ snapshots: '@stylistic/eslint-plugin-plus@2.6.2(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) eslint: 9.9.0(jiti@1.21.6) transitivePeerDependencies: - supports-color @@ -5120,7 +5329,7 @@ snapshots: dependencies: '@stylistic/eslint-plugin-js': 2.6.2(eslint@9.9.0(jiti@1.21.6)) '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) eslint: 9.9.0(jiti@1.21.6) transitivePeerDependencies: - supports-color @@ -5138,12 +5347,20 @@ snapshots: - supports-color - typescript + '@t3-oss/env-core@0.11.0(typescript@5.5.4)(zod@3.23.8)': + dependencies: + zod: 3.23.8 + optionalDependencies: + typescript: 5.5.4 + '@tanstack/query-core@5.51.21': {} - '@tanstack/solid-query@5.51.21(solid-js@1.8.20)': + '@tanstack/solid-query@5.51.21(solid-js@1.8.21)': dependencies: '@tanstack/query-core': 5.51.21 - solid-js: 1.8.20 + solid-js: 1.8.21 + + '@taplo/cli@0.7.0': {} '@tauri-apps/api@2.0.0-rc.0': {} @@ -5224,13 +5441,13 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@thisbeyond/solid-dnd@0.7.5(solid-js@1.8.20)': + '@thisbeyond/solid-dnd@0.7.5(solid-js@1.8.21)': dependencies: - solid-js: 1.8.20 + solid-js: 1.8.21 - '@thisbeyond/solid-select@0.15.0(solid-js@1.8.20)': + '@thisbeyond/solid-select@0.15.0(solid-js@1.8.21)': dependencies: - solid-js: 1.8.20 + solid-js: 1.8.21 '@trysound/sax@0.2.0': {} @@ -5285,7 +5502,7 @@ snapshots: '@types/mdast@3.0.15': dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 '@types/mustache@4.2.5': {} @@ -5293,29 +5510,29 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.2.0': + '@types/node@22.3.0': dependencies: - undici-types: 6.13.0 + undici-types: 6.18.2 '@types/normalize-package-data@2.4.4': {} '@types/semver@7.5.8': {} - '@types/unist@2.0.10': {} + '@types/unist@2.0.11': {} '@types/uuid@10.0.0': {} - '@typescript-eslint/eslint-plugin@8.0.1(@typescript-eslint/parser@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.0.1 - '@typescript-eslint/type-utils': 8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.0.1 + '@typescript-eslint/parser': 8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.1.0 + '@typescript-eslint/type-utils': 8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.1.0 eslint: 9.9.0(jiti@1.21.6) graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -5323,12 +5540,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 8.0.1 - '@typescript-eslint/types': 8.0.1 - '@typescript-eslint/typescript-estree': 8.0.1(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.0.1 + '@typescript-eslint/scope-manager': 8.1.0 + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.1.0 debug: 4.3.6 eslint: 9.9.0(jiti@1.21.6) optionalDependencies: @@ -5346,15 +5563,15 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.0.1': + '@typescript-eslint/scope-manager@8.1.0': dependencies: - '@typescript-eslint/types': 8.0.1 - '@typescript-eslint/visitor-keys': 8.0.1 + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/visitor-keys': 8.1.0 - '@typescript-eslint/type-utils@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 8.0.1(typescript@5.5.4) - '@typescript-eslint/utils': 8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -5367,7 +5584,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.0.1': {} + '@typescript-eslint/types@8.1.0': {} '@typescript-eslint/typescript-estree@7.16.0(typescript@5.5.4)': dependencies: @@ -5399,10 +5616,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.0.1(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.1.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.0.1 - '@typescript-eslint/visitor-keys': 8.0.1 + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/visitor-keys': 8.1.0 debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 @@ -5436,12 +5653,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/utils@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.0.1 - '@typescript-eslint/types': 8.0.1 - '@typescript-eslint/typescript-estree': 8.0.1(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.1.0 + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4) eslint: 9.9.0(jiti@1.21.6) transitivePeerDependencies: - supports-color @@ -5457,55 +5674,55 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.0.1': + '@typescript-eslint/visitor-keys@8.1.0': dependencies: - '@typescript-eslint/types': 8.0.1 + '@typescript-eslint/types': 8.1.0 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.61.9(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8))': + '@unocss/astro@0.62.1(rollup@4.20.0)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8))': dependencies: - '@unocss/core': 0.61.9 - '@unocss/reset': 0.61.9 - '@unocss/vite': 0.61.9(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)) + '@unocss/core': 0.62.1 + '@unocss/reset': 0.62.1 + '@unocss/vite': 0.62.1(rollup@4.20.0)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)) optionalDependencies: - vite: 5.4.0(@types/node@22.2.0)(sass@1.77.8) + vite: 5.4.1(@types/node@22.3.0)(sass@1.77.8) transitivePeerDependencies: - rollup - supports-color - '@unocss/cli@0.61.9(rollup@4.20.0)': + '@unocss/cli@0.62.1(rollup@4.20.0)': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.20.0) - '@unocss/config': 0.61.9 - '@unocss/core': 0.61.9 - '@unocss/preset-uno': 0.61.9 + '@unocss/config': 0.62.1 + '@unocss/core': 0.62.1 + '@unocss/preset-uno': 0.62.1 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 consola: 3.2.3 - fast-glob: 3.3.2 magic-string: 0.30.11 pathe: 1.1.2 perfect-debounce: 1.0.0 + tinyglobby: 0.2.2 transitivePeerDependencies: - rollup - supports-color - '@unocss/config@0.61.9': + '@unocss/config@0.62.1': dependencies: - '@unocss/core': 0.61.9 + '@unocss/core': 0.62.1 unconfig: 0.5.5 transitivePeerDependencies: - supports-color - '@unocss/core@0.61.9': {} + '@unocss/core@0.62.1': {} - '@unocss/eslint-plugin@0.61.9(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': + '@unocss/eslint-plugin@0.62.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) - '@unocss/config': 0.61.9 - '@unocss/core': 0.61.9 + '@typescript-eslint/utils': 8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@unocss/config': 0.62.1 + '@unocss/core': 0.62.1 magic-string: 0.30.11 synckit: 0.9.1 transitivePeerDependencies: @@ -5513,140 +5730,140 @@ snapshots: - supports-color - typescript - '@unocss/extractor-arbitrary-variants@0.61.9': + '@unocss/extractor-arbitrary-variants@0.62.1': dependencies: - '@unocss/core': 0.61.9 + '@unocss/core': 0.62.1 - '@unocss/inspector@0.61.9': + '@unocss/inspector@0.62.1': dependencies: - '@unocss/core': 0.61.9 - '@unocss/rule-utils': 0.61.9 + '@unocss/core': 0.62.1 + '@unocss/rule-utils': 0.62.1 gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/postcss@0.61.9(postcss@8.4.41)': + '@unocss/postcss@0.62.1(postcss@8.4.41)': dependencies: - '@unocss/config': 0.61.9 - '@unocss/core': 0.61.9 - '@unocss/rule-utils': 0.61.9 + '@unocss/config': 0.62.1 + '@unocss/core': 0.62.1 + '@unocss/rule-utils': 0.62.1 css-tree: 2.3.1 - fast-glob: 3.3.2 magic-string: 0.30.11 postcss: 8.4.41 + tinyglobby: 0.2.2 transitivePeerDependencies: - supports-color - '@unocss/preset-attributify@0.61.9': + '@unocss/preset-attributify@0.62.1': dependencies: - '@unocss/core': 0.61.9 + '@unocss/core': 0.62.1 - '@unocss/preset-icons@0.61.9': + '@unocss/preset-icons@0.62.1': dependencies: - '@iconify/utils': 2.1.29 - '@unocss/core': 0.61.9 + '@iconify/utils': 2.1.30 + '@unocss/core': 0.62.1 ofetch: 1.3.4 transitivePeerDependencies: - supports-color - '@unocss/preset-mini@0.61.9': + '@unocss/preset-mini@0.62.1': dependencies: - '@unocss/core': 0.61.9 - '@unocss/extractor-arbitrary-variants': 0.61.9 - '@unocss/rule-utils': 0.61.9 + '@unocss/core': 0.62.1 + '@unocss/extractor-arbitrary-variants': 0.62.1 + '@unocss/rule-utils': 0.62.1 - '@unocss/preset-tagify@0.61.9': + '@unocss/preset-tagify@0.62.1': dependencies: - '@unocss/core': 0.61.9 + '@unocss/core': 0.62.1 - '@unocss/preset-typography@0.61.9': + '@unocss/preset-typography@0.62.1': dependencies: - '@unocss/core': 0.61.9 - '@unocss/preset-mini': 0.61.9 + '@unocss/core': 0.62.1 + '@unocss/preset-mini': 0.62.1 - '@unocss/preset-uno@0.61.9': + '@unocss/preset-uno@0.62.1': dependencies: - '@unocss/core': 0.61.9 - '@unocss/preset-mini': 0.61.9 - '@unocss/preset-wind': 0.61.9 - '@unocss/rule-utils': 0.61.9 + '@unocss/core': 0.62.1 + '@unocss/preset-mini': 0.62.1 + '@unocss/preset-wind': 0.62.1 + '@unocss/rule-utils': 0.62.1 - '@unocss/preset-web-fonts@0.61.9': + '@unocss/preset-web-fonts@0.62.1': dependencies: - '@unocss/core': 0.61.9 + '@unocss/core': 0.62.1 ofetch: 1.3.4 - '@unocss/preset-wind@0.61.9': + '@unocss/preset-wind@0.62.1': dependencies: - '@unocss/core': 0.61.9 - '@unocss/preset-mini': 0.61.9 - '@unocss/rule-utils': 0.61.9 + '@unocss/core': 0.62.1 + '@unocss/preset-mini': 0.62.1 + '@unocss/rule-utils': 0.62.1 - '@unocss/reset@0.61.9': {} + '@unocss/reset@0.62.1': {} - '@unocss/rule-utils@0.61.9': + '@unocss/rule-utils@0.62.1': dependencies: - '@unocss/core': 0.61.9 + '@unocss/core': 0.62.1 magic-string: 0.30.11 - '@unocss/scope@0.61.9': {} + '@unocss/scope@0.62.1': {} - '@unocss/transformer-attributify-jsx-babel@0.61.9': + '@unocss/transformer-attributify-jsx-babel@0.62.1': dependencies: '@babel/core': 7.25.2 '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) - '@unocss/core': 0.61.9 + '@unocss/core': 0.62.1 transitivePeerDependencies: - supports-color - '@unocss/transformer-attributify-jsx@0.61.9': + '@unocss/transformer-attributify-jsx@0.62.1': dependencies: - '@unocss/core': 0.61.9 + '@unocss/core': 0.62.1 - '@unocss/transformer-compile-class@0.61.9': + '@unocss/transformer-compile-class@0.62.1': dependencies: - '@unocss/core': 0.61.9 + '@unocss/core': 0.62.1 - '@unocss/transformer-directives@0.61.9': + '@unocss/transformer-directives@0.62.1': dependencies: - '@unocss/core': 0.61.9 - '@unocss/rule-utils': 0.61.9 + '@unocss/core': 0.62.1 + '@unocss/rule-utils': 0.62.1 css-tree: 2.3.1 - '@unocss/transformer-variant-group@0.61.9': + '@unocss/transformer-variant-group@0.62.1': dependencies: - '@unocss/core': 0.61.9 + '@unocss/core': 0.62.1 - '@unocss/vite@0.61.9(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8))': + '@unocss/vite@0.62.1(rollup@4.20.0)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.20.0) - '@unocss/config': 0.61.9 - '@unocss/core': 0.61.9 - '@unocss/inspector': 0.61.9 - '@unocss/scope': 0.61.9 - '@unocss/transformer-directives': 0.61.9 + '@unocss/config': 0.62.1 + '@unocss/core': 0.62.1 + '@unocss/inspector': 0.62.1 + '@unocss/scope': 0.62.1 + '@unocss/transformer-directives': 0.62.1 chokidar: 3.6.0 - fast-glob: 3.3.2 magic-string: 0.30.11 - vite: 5.4.0(@types/node@22.2.0)(sass@1.77.8) + tinyglobby: 0.2.2 + vite: 5.4.1(@types/node@22.3.0)(sass@1.77.8) transitivePeerDependencies: - rollup - supports-color - '@untitled-theme/icons-solid@0.10.5(solid-js@1.8.20)': + '@untitled-theme/icons-solid@0.10.5(solid-js@1.8.21)': dependencies: - solid-js: 1.8.20 + solid-js: 1.8.21 '@vercel/ncc@0.38.1': {} - '@vitest/eslint-plugin@1.0.0(@typescript-eslint/utils@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.2.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))': + '@vitest/eslint-plugin@1.0.3(@typescript-eslint/utils@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.3.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))': dependencies: eslint: 9.9.0(jiti@1.21.6) optionalDependencies: - '@typescript-eslint/utils': 8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) typescript: 5.5.4 - vitest: 2.0.5(@types/node@22.2.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8) + vitest: 2.0.5(@types/node@22.3.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8) '@vitest/expect@2.0.5': dependencies: @@ -5683,7 +5900,7 @@ snapshots: pathe: 1.1.2 sirv: 2.0.4 tinyrainbow: 1.2.0 - vitest: 2.0.5(@types/node@22.2.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8) + vitest: 2.0.5(@types/node@22.3.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8) '@vitest/utils@2.0.5': dependencies: @@ -5692,41 +5909,41 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 - '@vue/compiler-core@3.4.37': + '@vue/compiler-core@3.4.38': dependencies: '@babel/parser': 7.25.3 - '@vue/shared': 3.4.37 - entities: 5.0.0 + '@vue/shared': 3.4.38 + entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 optional: true - '@vue/compiler-dom@3.4.37': + '@vue/compiler-dom@3.4.38': dependencies: - '@vue/compiler-core': 3.4.37 - '@vue/shared': 3.4.37 + '@vue/compiler-core': 3.4.38 + '@vue/shared': 3.4.38 optional: true - '@vue/compiler-sfc@3.4.37': + '@vue/compiler-sfc@3.4.38': dependencies: '@babel/parser': 7.25.3 - '@vue/compiler-core': 3.4.37 - '@vue/compiler-dom': 3.4.37 - '@vue/compiler-ssr': 3.4.37 - '@vue/shared': 3.4.37 + '@vue/compiler-core': 3.4.38 + '@vue/compiler-dom': 3.4.38 + '@vue/compiler-ssr': 3.4.38 + '@vue/shared': 3.4.38 estree-walker: 2.0.2 magic-string: 0.30.11 postcss: 8.4.41 source-map-js: 1.2.0 optional: true - '@vue/compiler-ssr@3.4.37': + '@vue/compiler-ssr@3.4.38': dependencies: - '@vue/compiler-dom': 3.4.37 - '@vue/shared': 3.4.37 + '@vue/compiler-dom': 3.4.38 + '@vue/shared': 3.4.38 optional: true - '@vue/shared@3.4.37': + '@vue/shared@3.4.38': optional: true abort-controller@3.0.0: @@ -5743,6 +5960,12 @@ snapshots: acorn@8.12.1: {} + agent-base@6.0.2: + dependencies: + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + agent-base@7.1.1: dependencies: debug: 4.3.5 @@ -5878,7 +6101,7 @@ snapshots: browserslist@4.23.3: dependencies: caniuse-lite: 1.0.30001651 - electron-to-chromium: 1.5.6 + electron-to-chromium: 1.5.7 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -5893,7 +6116,7 @@ snapshots: builtin-modules@3.3.0: {} - bumpp@9.4.2: + bumpp@9.5.1: dependencies: '@jsdevtools/ez-spawn': 3.0.4 c12: 1.11.1 @@ -5901,6 +6124,7 @@ snapshots: escalade: 3.1.2 fast-glob: 3.3.2 js-yaml: 4.1.0 + jsonc-parser: 3.3.1 prompts: 2.4.2 semver: 7.6.3 transitivePeerDependencies: @@ -6177,7 +6401,7 @@ snapshots: electron-to-chromium@1.4.827: {} - electron-to-chromium@1.5.6: {} + electron-to-chromium@1.5.7: {} emoji-regex@8.0.0: {} @@ -6190,9 +6414,6 @@ snapshots: entities@4.5.0: {} - entities@5.0.0: - optional: true - error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -6309,9 +6530,9 @@ snapshots: - supports-color - typescript - eslint-plugin-jsdoc@50.0.0(eslint@9.9.0(jiti@1.21.6)): + eslint-plugin-jsdoc@50.2.2(eslint@9.9.0(jiti@1.21.6)): dependencies: - '@es-joy/jsdoccomment': 0.46.0 + '@es-joy/jsdoccomment': 0.48.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.6 @@ -6352,14 +6573,14 @@ snapshots: eslint-plugin-es-x: 7.8.0(eslint@9.9.0(jiti@1.21.6)) get-tsconfig: 4.7.6 globals: 15.9.0 - ignore: 5.3.1 + ignore: 5.3.2 minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-perfectionist@3.1.3(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.0(jiti@1.21.6))): + eslint-plugin-perfectionist@3.2.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.0(jiti@1.21.6))): dependencies: - '@typescript-eslint/types': 8.0.1 - '@typescript-eslint/utils': 8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/utils': 8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) eslint: 9.9.0(jiti@1.21.6) minimatch: 10.0.1 natural-compare-lite: 1.4.0 @@ -6369,9 +6590,9 @@ snapshots: - supports-color - typescript - eslint-plugin-petal@3.11.3(eslint@9.9.0(jiti@1.21.6)): + eslint-plugin-petal@3.11.5(eslint@9.9.0(jiti@1.21.6)): dependencies: - '@flowr/utils': 3.11.3 + '@flowr/utils': 3.11.5 eslint: 9.9.0(jiti@1.21.6) eslint-plugin-regexp@2.6.0(eslint@9.9.0(jiti@1.21.6)): @@ -6428,11 +6649,11 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.0.1(@typescript-eslint/parser@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6)): + eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6)): dependencies: eslint: 9.9.0(jiti@1.21.6) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.0.1(@typescript-eslint/parser@8.0.1(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.0(jiti@1.21.6))(typescript@5.5.4) eslint-plugin-vue@9.27.0(eslint@9.9.0(jiti@1.21.6)): dependencies: @@ -6441,7 +6662,7 @@ snapshots: globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 semver: 7.6.3 vue-eslint-parser: 9.4.3(eslint@9.9.0(jiti@1.21.6)) xml-name-validator: 4.0.0 @@ -6460,9 +6681,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.37)(eslint@9.9.0(jiti@1.21.6)): + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.38)(eslint@9.9.0(jiti@1.21.6)): dependencies: - '@vue/compiler-sfc': 3.4.37 + '@vue/compiler-sfc': 3.4.38 eslint: 9.9.0(jiti@1.21.6) optional: true @@ -6580,17 +6801,17 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - execa@9.3.0: + execa@9.3.1: dependencies: '@sindresorhus/merge-streams': 4.0.0 cross-spawn: 7.0.3 figures: 6.1.0 get-stream: 9.0.1 - human-signals: 7.0.0 + human-signals: 8.0.0 is-plain-obj: 4.1.0 is-stream: 4.0.1 npm-run-path: 5.3.0 - pretty-ms: 9.0.0 + pretty-ms: 9.1.0 signal-exit: 4.1.0 strip-final-newline: 4.0.0 yoctocolors: 2.1.1 @@ -6621,6 +6842,10 @@ snapshots: dependencies: reusify: 1.0.4 + fdir@6.2.0(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fflate@0.8.2: {} figures@6.1.0: @@ -6738,6 +6963,13 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + glob@9.3.5: + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.11.1 + globals@11.12.0: {} globals@13.24.0: @@ -6793,6 +7025,13 @@ snapshots: transitivePeerDependencies: - supports-color + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 @@ -6804,7 +7043,7 @@ snapshots: human-signals@5.0.0: {} - human-signals@7.0.0: {} + human-signals@8.0.0: {} iconv-lite@0.6.3: dependencies: @@ -6814,6 +7053,8 @@ snapshots: ignore@5.3.1: {} + ignore@5.3.2: {} + immutable@4.3.6: {} import-fresh@3.3.0: @@ -6979,6 +7220,8 @@ snapshots: espree: 9.6.1 semver: 7.6.3 + jsonc-parser@3.3.1: {} + jwt-decode@3.1.2: {} kebab-case@1.0.2: {} @@ -7047,6 +7290,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.8: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + make-error@1.3.6: {} mdast-util-from-markdown@0.8.5: @@ -7109,6 +7356,10 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@8.0.4: + dependencies: + brace-expansion: 2.0.1 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -7119,6 +7370,8 @@ snapshots: dependencies: yallist: 4.0.0 + minipass@4.2.8: {} + minipass@5.0.0: {} minipass@7.1.2: {} @@ -7231,10 +7484,10 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - overlayscrollbars-solid@0.5.5(overlayscrollbars@2.10.0)(solid-js@1.8.20): + overlayscrollbars-solid@0.5.5(overlayscrollbars@2.10.0)(solid-js@1.8.21): dependencies: overlayscrollbars: 2.10.0 - solid-js: 1.8.20 + solid-js: 1.8.21 overlayscrollbars@2.10.0: {} @@ -7347,7 +7600,7 @@ snapshots: pluralize@8.0.0: {} - postcss-selector-parser@6.1.1: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -7369,7 +7622,7 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-ms@9.0.0: + pretty-ms@9.1.0: dependencies: parse-ms: 4.0.0 @@ -7377,11 +7630,15 @@ snapshots: process@0.11.10: {} + progress@2.0.3: {} + prompts@2.4.2: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 + proxy-from-env@1.1.0: {} + psl@1.9.0: {} punycode@2.3.1: {} @@ -7562,26 +7819,26 @@ snapshots: slashes@3.0.12: {} - solid-js@1.8.20: + solid-js@1.8.21: dependencies: csstype: 3.1.3 seroval: 1.1.1 seroval-plugins: 1.1.1(seroval@1.1.1) - solid-refresh@0.6.3(solid-js@1.8.20): + solid-refresh@0.6.3(solid-js@1.8.21): dependencies: '@babel/generator': 7.24.10 '@babel/helper-module-imports': 7.24.7 '@babel/types': 7.24.9 - solid-js: 1.8.20 + solid-js: 1.8.21 transitivePeerDependencies: - supports-color - solid-transition-group@0.2.3(solid-js@1.8.20): + solid-transition-group@0.2.3(solid-js@1.8.21): dependencies: - '@solid-primitives/refs': 1.0.8(solid-js@1.8.20) - '@solid-primitives/transition-group': 1.0.5(solid-js@1.8.20) - solid-js: 1.8.20 + '@solid-primitives/refs': 1.0.8(solid-js@1.8.21) + '@solid-primitives/transition-group': 1.0.5(solid-js@1.8.21) + solid-js: 1.8.21 source-map-js@1.2.0: {} @@ -7722,6 +7979,13 @@ snapshots: tinybench@2.8.0: {} + tinyexec@0.1.4: {} + + tinyglobby@0.2.2: + dependencies: + fdir: 6.2.0(picomatch@4.0.2) + picomatch: 4.0.2 + tinypool@1.0.0: {} tinyrainbow@1.2.0: {} @@ -7759,14 +8023,14 @@ snapshots: dependencies: typescript: 5.5.4 - ts-node@10.9.2(@types/node@22.2.0)(typescript@5.5.4): + ts-node@10.9.2(@types/node@22.3.0)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.2.0 + '@types/node': 22.3.0 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -7812,7 +8076,7 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} + type-detect@4.1.0: {} type-fest@0.20.2: optional: true @@ -7837,7 +8101,7 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.13.0: {} + undici-types@6.18.2: {} undici@5.28.4: dependencies: @@ -7849,41 +8113,48 @@ snapshots: unist-util-stringify-position@2.0.3: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 universal-user-agent@6.0.1: {} universalify@0.2.0: {} - unocss@0.61.9(postcss@8.4.41)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)): + unocss@0.62.1(postcss@8.4.41)(rollup@4.20.0)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)): dependencies: - '@unocss/astro': 0.61.9(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)) - '@unocss/cli': 0.61.9(rollup@4.20.0) - '@unocss/core': 0.61.9 - '@unocss/extractor-arbitrary-variants': 0.61.9 - '@unocss/postcss': 0.61.9(postcss@8.4.41) - '@unocss/preset-attributify': 0.61.9 - '@unocss/preset-icons': 0.61.9 - '@unocss/preset-mini': 0.61.9 - '@unocss/preset-tagify': 0.61.9 - '@unocss/preset-typography': 0.61.9 - '@unocss/preset-uno': 0.61.9 - '@unocss/preset-web-fonts': 0.61.9 - '@unocss/preset-wind': 0.61.9 - '@unocss/reset': 0.61.9 - '@unocss/transformer-attributify-jsx': 0.61.9 - '@unocss/transformer-attributify-jsx-babel': 0.61.9 - '@unocss/transformer-compile-class': 0.61.9 - '@unocss/transformer-directives': 0.61.9 - '@unocss/transformer-variant-group': 0.61.9 - '@unocss/vite': 0.61.9(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)) + '@unocss/astro': 0.62.1(rollup@4.20.0)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)) + '@unocss/cli': 0.62.1(rollup@4.20.0) + '@unocss/core': 0.62.1 + '@unocss/extractor-arbitrary-variants': 0.62.1 + '@unocss/postcss': 0.62.1(postcss@8.4.41) + '@unocss/preset-attributify': 0.62.1 + '@unocss/preset-icons': 0.62.1 + '@unocss/preset-mini': 0.62.1 + '@unocss/preset-tagify': 0.62.1 + '@unocss/preset-typography': 0.62.1 + '@unocss/preset-uno': 0.62.1 + '@unocss/preset-web-fonts': 0.62.1 + '@unocss/preset-wind': 0.62.1 + '@unocss/reset': 0.62.1 + '@unocss/transformer-attributify-jsx': 0.62.1 + '@unocss/transformer-attributify-jsx-babel': 0.62.1 + '@unocss/transformer-compile-class': 0.62.1 + '@unocss/transformer-directives': 0.62.1 + '@unocss/transformer-variant-group': 0.62.1 + '@unocss/vite': 0.62.1(rollup@4.20.0)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)) optionalDependencies: - vite: 5.4.0(@types/node@22.2.0)(sass@1.77.8) + vite: 5.4.1(@types/node@22.3.0)(sass@1.77.8) transitivePeerDependencies: - postcss - rollup - supports-color + unplugin@1.0.1: + dependencies: + acorn: 8.12.1 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.5.0 + unzip-stream@0.3.4: dependencies: binary: 0.3.0 @@ -7927,13 +8198,13 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-node@2.0.5(@types/node@22.2.0)(sass@1.77.8): + vite-node@2.0.5(@types/node@22.3.0)(sass@1.77.8): dependencies: cac: 6.7.14 debug: 4.3.6 pathe: 1.1.2 tinyrainbow: 1.2.0 - vite: 5.4.0(@types/node@22.2.0)(sass@1.77.8) + vite: 5.4.1(@types/node@22.3.0)(sass@1.77.8) transitivePeerDependencies: - '@types/node' - less @@ -7945,53 +8216,53 @@ snapshots: - supports-color - terser - vite-plugin-solid-svg@0.8.1(solid-js@1.8.20)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)): + vite-plugin-solid-svg@0.8.1(solid-js@1.8.21)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)): dependencies: - solid-js: 1.8.20 + solid-js: 1.8.21 svgo: 3.3.2 - vite: 5.4.0(@types/node@22.2.0)(sass@1.77.8) + vite: 5.4.1(@types/node@22.3.0)(sass@1.77.8) - vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.4.8)(solid-js@1.8.20)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)): + vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.4.8)(solid-js@1.8.21)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)): dependencies: '@babel/core': 7.24.9 '@types/babel__core': 7.20.5 babel-preset-solid: 1.8.16(@babel/core@7.24.9) merge-anything: 5.1.7 - solid-js: 1.8.20 - solid-refresh: 0.6.3(solid-js@1.8.20) - vite: 5.4.0(@types/node@22.2.0)(sass@1.77.8) - vitefu: 0.2.5(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)) + solid-js: 1.8.21 + solid-refresh: 0.6.3(solid-js@1.8.21) + vite: 5.4.1(@types/node@22.3.0)(sass@1.77.8) + vitefu: 0.2.5(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)) optionalDependencies: '@testing-library/jest-dom': 6.4.8 transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.0.1(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)): + vite-tsconfig-paths@5.0.1(typescript@5.5.4)(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)): dependencies: debug: 4.3.6 globrex: 0.1.2 tsconfck: 3.1.1(typescript@5.5.4) optionalDependencies: - vite: 5.4.0(@types/node@22.2.0)(sass@1.77.8) + vite: 5.4.1(@types/node@22.3.0)(sass@1.77.8) transitivePeerDependencies: - supports-color - typescript - vite@5.4.0(@types/node@22.2.0)(sass@1.77.8): + vite@5.4.1(@types/node@22.3.0)(sass@1.77.8): dependencies: esbuild: 0.21.5 postcss: 8.4.41 rollup: 4.20.0 optionalDependencies: - '@types/node': 22.2.0 + '@types/node': 22.3.0 fsevents: 2.3.3 sass: 1.77.8 - vitefu@0.2.5(vite@5.4.0(@types/node@22.2.0)(sass@1.77.8)): + vitefu@0.2.5(vite@5.4.1(@types/node@22.3.0)(sass@1.77.8)): optionalDependencies: - vite: 5.4.0(@types/node@22.2.0)(sass@1.77.8) + vite: 5.4.1(@types/node@22.3.0)(sass@1.77.8) - vitest@2.0.5(@types/node@22.2.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8): + vitest@2.0.5(@types/node@22.3.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8): dependencies: '@ampproject/remapping': 2.3.0 '@vitest/expect': 2.0.5 @@ -8009,11 +8280,11 @@ snapshots: tinybench: 2.8.0 tinypool: 1.0.0 tinyrainbow: 1.2.0 - vite: 5.4.0(@types/node@22.2.0)(sass@1.77.8) - vite-node: 2.0.5(@types/node@22.2.0)(sass@1.77.8) + vite: 5.4.1(@types/node@22.3.0)(sass@1.77.8) + vite-node: 2.0.5(@types/node@22.3.0)(sass@1.77.8) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.2.0 + '@types/node': 22.3.0 '@vitest/ui': 2.0.5(vitest@2.0.5) jsdom: 24.1.1 transitivePeerDependencies: @@ -8048,6 +8319,10 @@ snapshots: webidl-conversions@7.0.0: {} + webpack-sources@3.2.3: {} + + webpack-virtual-modules@0.5.0: {} + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3