diff --git a/bun.lockb b/bun.lockb
index 15835a152..bb0d9d95e 100755
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/index.html b/index.html
index f0fb0ca12..990705b9c 100644
--- a/index.html
+++ b/index.html
@@ -5,7 +5,7 @@
Museeks
-
+
diff --git a/package.json b/package.json
index 797f2d9c1..0a432bf51 100644
--- a/package.json
+++ b/package.json
@@ -29,17 +29,17 @@
"browserslist": ["defaults"],
"dependencies": {
"@radix-ui/react-aspect-ratio": "^1.1.1",
- "@radix-ui/react-popover": "^1.1.3",
+ "@radix-ui/react-popover": "^1.1.4",
"@radix-ui/react-progress": "^1.1.1",
"@radix-ui/react-slider": "^1.2.2",
- "@tanstack/react-query": "^5.62.7",
- "@tanstack/react-virtual": "3.11.1",
- "@tauri-apps/api": "2.1.1",
+ "@tanstack/react-query": "^5.62.15",
+ "@tanstack/react-virtual": "3.11.2",
+ "@tauri-apps/api": "2.2.0",
"@tauri-apps/plugin-dialog": "2.2.0",
"@tauri-apps/plugin-fs": "^2.2.0",
"@tauri-apps/plugin-log": "2.2.0",
"@tauri-apps/plugin-notification": "2.2.0",
- "@tauri-apps/plugin-opener": "^2.2.1",
+ "@tauri-apps/plugin-opener": "^2.2.2",
"@tauri-apps/plugin-os": "2.2.0",
"classnames": "^2.5.1",
"font-awesome": "^4.7.0",
@@ -50,17 +50,17 @@
"react-dom": "^19.0.0",
"react-fontawesome": "^1.7.1",
"react-keybinding-component": "^2.2.0",
- "react-router": "^7.0.2",
+ "react-router": "^7.1.1",
"semver": "^7.6.3",
"zustand": "^5.0.2"
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
- "@tauri-apps/cli": "2.1.0",
+ "@tauri-apps/cli": "2.2.2",
"@types/bun": "^1.1.14",
- "@types/lodash": "^4.17.13",
+ "@types/lodash": "^4.17.14",
"@types/lodash-es": "^4.17.12",
- "@types/react": "^19.0.1",
+ "@types/react": "^19.0.2",
"@types/react-dom": "^19.0.2",
"@types/react-fontawesome": "^1.6.8",
"@types/semver": "^7.5.8",
@@ -74,7 +74,7 @@
"postcss-url": "^10.1.3",
"typescript": "^5.7.2",
"typescript-plugin-css-modules": "^5.1.0",
- "vite": "^6.0.3",
+ "vite": "^6.0.7",
"vite-plugin-svgr": "^4.3.0"
},
"trustedDependencies": ["@biomejs/biome", "@parcel/watcher"]
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
index e7281eed6..df46883c7 100644
--- a/src-tauri/Cargo.lock
+++ b/src-tauri/Cargo.lock
@@ -28,18 +28,6 @@ dependencies = [
"version_check",
]
-[[package]]
-name = "ahash"
-version = "0.8.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
-dependencies = [
- "cfg-if",
- "once_cell",
- "version_check",
- "zerocopy",
-]
-
[[package]]
name = "aho-corasick"
version = "1.1.3"
@@ -240,7 +228,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -269,13 +257,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
[[package]]
name = "async-trait"
-version = "0.1.83"
+version = "0.1.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
+checksum = "1b1244b10dcd56c92219da4e14caa97e312079e185f04ba3eea25061561dc0a0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -439,7 +427,7 @@ dependencies = [
"proc-macro-crate 3.2.0",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -465,9 +453,9 @@ dependencies = [
[[package]]
name = "bstr"
-version = "1.11.1"
+version = "1.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "786a307d683a5bf92e6fd5fd69a7eb613751668d1d8d67d802846dfe367c62c8"
+checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0"
dependencies = [
"memchr",
"serde",
@@ -584,16 +572,16 @@ dependencies = [
[[package]]
name = "cargo_metadata"
-version = "0.18.1"
+version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
+checksum = "8769706aad5d996120af43197bf46ef6ad0fda35216b4505f926a365a232d924"
dependencies = [
"camino",
"cargo-platform",
"semver",
"serde",
"serde_json",
- "thiserror 1.0.69",
+ "thiserror 2.0.9",
]
[[package]]
@@ -608,9 +596,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.2.5"
+version = "1.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e"
+checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7"
dependencies = [
"shlex",
]
@@ -907,7 +895,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -917,7 +905,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"
dependencies = [
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -941,7 +929,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -952,7 +940,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [
"darling_core",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -1003,7 +991,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustc_version",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -1094,7 +1082,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -1126,7 +1114,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -1245,7 +1233,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -1378,6 +1366,12 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+[[package]]
+name = "foldhash"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f"
+
[[package]]
name = "foreign-types"
version = "0.5.0"
@@ -1396,7 +1390,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -1510,7 +1504,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -1765,7 +1759,7 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -1780,9 +1774,9 @@ dependencies = [
[[package]]
name = "glob"
-version = "0.3.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
[[package]]
name = "globset"
@@ -1857,7 +1851,7 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -1866,32 +1860,27 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
dependencies = [
- "ahash 0.7.8",
+ "ahash",
]
[[package]]
name = "hashbrown"
-version = "0.14.5"
+version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
dependencies = [
- "ahash 0.8.11",
"allocator-api2",
+ "equivalent",
+ "foldhash",
]
-[[package]]
-name = "hashbrown"
-version = "0.15.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
-
[[package]]
name = "hashlink"
-version = "0.9.1"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af"
+checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
dependencies = [
- "hashbrown 0.14.5",
+ "hashbrown 0.15.2",
]
[[package]]
@@ -2202,7 +2191,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -2302,15 +2291,6 @@ dependencies = [
"cfb",
]
-[[package]]
-name = "instant"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
-dependencies = [
- "cfg-if",
-]
-
[[package]]
name = "ipnet"
version = "2.10.1"
@@ -2345,6 +2325,15 @@ dependencies = [
"either",
]
+[[package]]
+name = "itertools"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
+dependencies = [
+ "either",
+]
+
[[package]]
name = "itoa"
version = "0.4.8"
@@ -2598,7 +2587,7 @@ checksum = "28bd4b9d8a5af74808932492521cdd272019b056f75fcc70056bd2c09fceb550"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -2786,7 +2775,7 @@ dependencies = [
"dirs 5.0.1",
"futures",
"home-config",
- "itertools",
+ "itertools 0.14.0",
"lofty",
"log",
"m3u",
@@ -3021,7 +3010,7 @@ dependencies = [
"proc-macro-crate 3.2.0",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -3334,9 +3323,9 @@ dependencies = [
[[package]]
name = "ormlite"
-version = "0.22.2"
+version = "0.22.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76f27761d712ed3b8829705359793d219f47b9666b72d2f5e78999739966ee14"
+checksum = "5149039b3f0430d39b32bcea6e072116c0128e17b5c946e50bb907a988ac6e43"
dependencies = [
"ormlite-core",
"ormlite-macro",
@@ -3349,9 +3338,9 @@ dependencies = [
[[package]]
name = "ormlite-attr"
-version = "0.22.2"
+version = "0.22.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0dd2a8bcef0fcb3321c30a04cc951e9470a80d84659f33d860920201ba58be8"
+checksum = "de8c4ff9fd7799100f078c73148a35b583a3419f2d5bed3db814aeeaa1aed2e0"
dependencies = [
"anyhow",
"convert_case 0.6.0",
@@ -3361,18 +3350,17 @@ dependencies = [
"sqlformat",
"sqlmo",
"structmeta",
- "syn 2.0.91",
+ "syn 2.0.94",
"tracing",
]
[[package]]
name = "ormlite-core"
-version = "0.22.3"
+version = "0.22.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0afb2fc9926db667136e86eae49808844ce092158084404810f22e0289da3dfe"
+checksum = "c168c1c56d5a5ace36cf7ae39ce3c3ee26b3d648687a8e3b1b466e78c76cb5c6"
dependencies = [
"anyhow",
- "async-trait",
"futures",
"indexmap 2.7.0",
"ormlite-attr",
@@ -3381,18 +3369,19 @@ dependencies = [
"sqlmo",
"sqlparser",
"sqlx",
- "syn 2.0.91",
+ "syn 2.0.94",
"thiserror 1.0.69",
"tokio",
]
[[package]]
name = "ormlite-macro"
-version = "0.22.7"
+version = "0.22.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74afd52ca0c10b36780637920831ba7f45a20c7481ec4d5a84be366697e6b37d"
+checksum = "6db6c51755882ea993c5dac7b4ce297f809530c191643ff4933f0cdf6d03fcea"
dependencies = [
- "itertools",
+ "heck 0.5.0",
+ "itertools 0.13.0",
"lazy_static",
"once_cell",
"ormlite-attr",
@@ -3400,7 +3389,7 @@ dependencies = [
"proc-macro2",
"quote",
"sqlx",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -3615,7 +3604,7 @@ dependencies = [
"phf_shared 0.11.2",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -4053,9 +4042,9 @@ dependencies = [
[[package]]
name = "reqwest"
-version = "0.12.9"
+version = "0.12.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f"
+checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da"
dependencies = [
"base64 0.22.1",
"bytes",
@@ -4079,6 +4068,7 @@ dependencies = [
"sync_wrapper",
"tokio",
"tokio-util",
+ "tower",
"tower-service",
"url 2.5.4",
"wasm-bindgen",
@@ -4090,12 +4080,14 @@ dependencies = [
[[package]]
name = "rfd"
-version = "0.15.1"
+version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46f6f80a9b882647d9014673ca9925d30ffc9750f2eed2b4490e189eaebd01e8"
+checksum = "6a24763657bff09769a8ccf12c8b8a50416fb035fe199263b4c5071e4e3f006f"
dependencies = [
"ashpd",
"block2",
+ "core-foundation",
+ "core-foundation-sys",
"glib-sys",
"gobject-sys",
"gtk-sys",
@@ -4108,7 +4100,7 @@ dependencies = [
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
- "windows-sys 0.48.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -4261,9 +4253,9 @@ dependencies = [
[[package]]
name = "rustversion"
-version = "1.0.18"
+version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
+checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4"
[[package]]
name = "ryu"
@@ -4304,7 +4296,7 @@ dependencies = [
"proc-macro2",
"quote",
"serde_derive_internals",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -4356,9 +4348,9 @@ dependencies = [
[[package]]
name = "serde"
-version = "1.0.216"
+version = "1.0.217"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e"
+checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
dependencies = [
"serde_derive",
]
@@ -4376,13 +4368,13 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.216"
+version = "1.0.217"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e"
+checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -4393,7 +4385,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -4416,7 +4408,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -4467,7 +4459,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -4724,9 +4716,9 @@ dependencies = [
[[package]]
name = "sqlx"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e"
+checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f"
dependencies = [
"sqlx-core",
"sqlx-macros",
@@ -4737,30 +4729,25 @@ dependencies = [
[[package]]
name = "sqlx-core"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e"
+checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0"
dependencies = [
- "atoi",
- "byteorder",
"bytes",
"crc",
"crossbeam-queue",
"either",
"event-listener",
- "futures-channel",
"futures-core",
"futures-intrusive",
"futures-io",
"futures-util",
- "hashbrown 0.14.5",
+ "hashbrown 0.15.2",
"hashlink",
- "hex",
"indexmap 2.7.0",
"log",
"memchr",
"once_cell",
- "paste",
"percent-encoding 2.3.1",
"rustls",
"rustls-pemfile",
@@ -4768,8 +4755,7 @@ dependencies = [
"serde_json",
"sha2",
"smallvec",
- "sqlformat",
- "thiserror 1.0.69",
+ "thiserror 2.0.9",
"tokio",
"tokio-stream",
"tracing",
@@ -4779,22 +4765,22 @@ dependencies = [
[[package]]
name = "sqlx-macros"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657"
+checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310"
dependencies = [
"proc-macro2",
"quote",
"sqlx-core",
"sqlx-macros-core",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
name = "sqlx-macros-core"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5"
+checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad"
dependencies = [
"dotenvy",
"either",
@@ -4810,7 +4796,7 @@ dependencies = [
"sqlx-mysql",
"sqlx-postgres",
"sqlx-sqlite",
- "syn 2.0.91",
+ "syn 2.0.94",
"tempfile",
"tokio",
"url 2.5.4",
@@ -4818,9 +4804,9 @@ dependencies = [
[[package]]
name = "sqlx-mysql"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64bb4714269afa44aef2755150a0fc19d756fb580a67db8885608cf02f47d06a"
+checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233"
dependencies = [
"atoi",
"base64 0.22.1",
@@ -4853,16 +4839,16 @@ dependencies = [
"smallvec",
"sqlx-core",
"stringprep",
- "thiserror 1.0.69",
+ "thiserror 2.0.9",
"tracing",
"whoami",
]
[[package]]
name = "sqlx-postgres"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8"
+checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613"
dependencies = [
"atoi",
"base64 0.22.1",
@@ -4873,7 +4859,6 @@ dependencies = [
"etcetera",
"futures-channel",
"futures-core",
- "futures-io",
"futures-util",
"hex",
"hkdf",
@@ -4891,16 +4876,16 @@ dependencies = [
"smallvec",
"sqlx-core",
"stringprep",
- "thiserror 1.0.69",
+ "thiserror 2.0.9",
"tracing",
"whoami",
]
[[package]]
name = "sqlx-sqlite"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680"
+checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540"
dependencies = [
"atoi",
"flume",
@@ -4983,7 +4968,7 @@ dependencies = [
"proc-macro2",
"quote",
"structmeta-derive",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -4994,7 +4979,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -5016,7 +5001,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -5049,9 +5034,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.91"
+version = "2.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035"
+checksum = "987bc0be1cdea8b10216bd06e2ca407d40b9543468fafd3ddfb02f36e77f71f3"
dependencies = [
"proc-macro2",
"quote",
@@ -5075,7 +5060,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -5102,9 +5087,9 @@ dependencies = [
[[package]]
name = "tao"
-version = "0.30.8"
+version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6682a07cf5bab0b8a2bd20d0a542917ab928b5edb75ebd4eda6b05cbaab872da"
+checksum = "cc6b53216f32e60efc27dfa111268481e4dfba53e553e4cdebcaed9db36c11bb"
dependencies = [
"bitflags 2.6.0",
"cocoa",
@@ -5117,7 +5102,6 @@ dependencies = [
"gdkwayland-sys",
"gdkx11-sys",
"gtk",
- "instant",
"jni",
"lazy_static",
"libc",
@@ -5147,7 +5131,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -5164,9 +5148,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
[[package]]
name = "tauri"
-version = "2.1.1"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e545de0a2dfe296fa67db208266cd397c5a55ae782da77973ef4c4fac90e9f2c"
+checksum = "2e2e3349fbb2be7af9fad1b43d61ac83ba55ab48d47fbe1b2732f0c8211610a9"
dependencies = [
"anyhow",
"bytes",
@@ -5216,9 +5200,9 @@ dependencies = [
[[package]]
name = "tauri-build"
-version = "2.0.3"
+version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd2a4bcfaf5fb9f4be72520eefcb61ae565038f8ccba2a497d8c28f463b8c01"
+checksum = "b274ec7239ada504deb615f1c8abd7ba99631e879709e6f10e5d17217058d976"
dependencies = [
"anyhow",
"cargo_toml",
@@ -5240,9 +5224,9 @@ dependencies = [
[[package]]
name = "tauri-codegen"
-version = "2.0.3"
+version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf79faeecf301d3e969b1fae977039edb77a4c1f25cc0a961be298b54bff97cf"
+checksum = "f77894f9ddb5cb6c04fcfe8c8869ebe0aded4dabf19917118d48be4a95599ab5"
dependencies = [
"base64 0.22.1",
"brotli",
@@ -5256,7 +5240,7 @@ dependencies = [
"serde",
"serde_json",
"sha2",
- "syn 2.0.91",
+ "syn 2.0.94",
"tauri-utils",
"thiserror 2.0.9",
"time",
@@ -5267,23 +5251,23 @@ dependencies = [
[[package]]
name = "tauri-macros"
-version = "2.0.3"
+version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c52027c8c5afb83166dacddc092ee8fff50772f9646d461d8c33ee887e447a03"
+checksum = "3240a5caed760a532e8f687be6f05b2c7d11a1d791fb53ccc08cfeb3e5308736"
dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
"tauri-codegen",
"tauri-utils",
]
[[package]]
name = "tauri-plugin"
-version = "2.0.3"
+version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e753f2a30933a9bbf0a202fa47d7cc4a3401f06e8d6dcc53b79aa62954828c79"
+checksum = "5841b9a0200e954ef7457f8d327091424328891e267a97b641dc246cc54d0dec"
dependencies = [
"anyhow",
"glob",
@@ -5471,9 +5455,9 @@ dependencies = [
[[package]]
name = "tauri-runtime"
-version = "2.2.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cce18d43f80d4aba3aa8a0c953bbe835f3d0f2370aca75e8dbb14bd4bab27958"
+checksum = "2274ef891ccc0a8d318deffa9d70053f947664d12d58b9c0d1ae5e89237e01f7"
dependencies = [
"dpi",
"gtk",
@@ -5490,9 +5474,9 @@ dependencies = [
[[package]]
name = "tauri-runtime-wry"
-version = "2.2.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f442a38863e10129ffe2cec7bd09c2dcf8a098a3a27801a476a304d5bb991d2"
+checksum = "3707b40711d3b9f6519150869e358ffbde7c57567fb9b5a8b51150606939b2a0"
dependencies = [
"gtk",
"http",
@@ -5516,9 +5500,9 @@ dependencies = [
[[package]]
name = "tauri-utils"
-version = "2.1.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9271a88f99b4adea0dc71d0baca4505475a0bbd139fb135f62958721aaa8fe54"
+checksum = "96fb10e7cc97456b2d5b9c03e335b5de5da982039a303a20d10006885e4523a0"
dependencies = [
"brotli",
"cargo_metadata",
@@ -5574,12 +5558,13 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "3.14.0"
+version = "3.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c"
+checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704"
dependencies = [
"cfg-if",
"fastrand",
+ "getrandom 0.2.15",
"once_cell",
"rustix",
"windows-sys 0.59.0",
@@ -5637,7 +5622,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -5648,7 +5633,7 @@ checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -5736,7 +5721,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -5839,9 +5824,30 @@ dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
- "winnow 0.6.20",
+ "winnow 0.6.22",
]
+[[package]]
+name = "tower"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project-lite",
+ "sync_wrapper",
+ "tokio",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
+
[[package]]
name = "tower-service"
version = "0.3.3"
@@ -5868,7 +5874,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -5926,7 +5932,7 @@ checksum = "0e9d8656589772eeec2cf7a8264d9cda40fb28b9bc53118ceb9e8c07f8f38730"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
"termcolor",
]
@@ -6212,7 +6218,7 @@ dependencies = [
"log",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
"wasm-bindgen-shared",
]
@@ -6247,7 +6253,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -6396,9 +6402,9 @@ dependencies = [
[[package]]
name = "webview2-com"
-version = "0.33.0"
+version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c"
+checksum = "823e7ebcfaea51e78f72c87fc3b65a1e602c321f407a0b36dbb327d7bb7cd921"
dependencies = [
"webview2-com-macros",
"webview2-com-sys",
@@ -6416,14 +6422,14 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
name = "webview2-com-sys"
-version = "0.33.0"
+version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886"
+checksum = "7a82bce72db6e5ee83c68b5de1e2cd6ea195b9fbff91cb37df5884cbe3222df4"
dependencies = [
"thiserror 1.0.69",
"windows 0.58.0",
@@ -6560,7 +6566,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -6571,7 +6577,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -6582,7 +6588,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -6593,7 +6599,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -6899,9 +6905,9 @@ dependencies = [
[[package]]
name = "winnow"
-version = "0.6.20"
+version = "0.6.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b"
+checksum = "39281189af81c07ec09db316b302a3e67bf9bd7cbf6c820b50e35fee9c2fa980"
dependencies = [
"memchr",
]
@@ -6930,9 +6936,9 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
[[package]]
name = "wry"
-version = "0.47.2"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61ce51277d65170f6379d8cda935c80e3c2d1f0ff712a123c8bddb11b31a4b73"
+checksum = "1e644bf458e27b11b0ecafc9e5633d1304fdae82baca1d42185669752fe6ca4f"
dependencies = [
"base64 0.22.1",
"block2",
@@ -6960,7 +6966,7 @@ dependencies = [
"sha2",
"soup3",
"tao-macros",
- "thiserror 1.0.69",
+ "thiserror 2.0.9",
"url 2.5.4",
"webkit2gtk",
"webkit2gtk-sys",
@@ -7031,7 +7037,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
"synstructure",
]
@@ -7096,7 +7102,7 @@ dependencies = [
"tracing",
"uds_windows",
"windows-sys 0.59.0",
- "winnow 0.6.20",
+ "winnow 0.6.22",
"xdg-home",
"zbus_macros 5.2.0",
"zbus_names 4.1.0",
@@ -7112,7 +7118,7 @@ dependencies = [
"proc-macro-crate 3.2.0",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
"zvariant_utils 2.1.0",
]
@@ -7125,7 +7131,7 @@ dependencies = [
"proc-macro-crate 3.2.0",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
"zbus_names 4.1.0",
"zvariant 5.1.0",
"zvariant_utils 3.0.2",
@@ -7150,7 +7156,7 @@ checksum = "856b7a38811f71846fd47856ceee8bccaec8399ff53fb370247e66081ace647b"
dependencies = [
"serde",
"static_assertions",
- "winnow 0.6.20",
+ "winnow 0.6.22",
"zvariant 5.1.0",
]
@@ -7172,7 +7178,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -7192,7 +7198,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
"synstructure",
]
@@ -7221,7 +7227,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -7248,7 +7254,7 @@ dependencies = [
"serde",
"static_assertions",
"url 2.5.4",
- "winnow 0.6.20",
+ "winnow 0.6.22",
"zvariant_derive 5.1.0",
"zvariant_utils 3.0.2",
]
@@ -7262,7 +7268,7 @@ dependencies = [
"proc-macro-crate 3.2.0",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
"zvariant_utils 2.1.0",
]
@@ -7275,7 +7281,7 @@ dependencies = [
"proc-macro-crate 3.2.0",
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
"zvariant_utils 3.0.2",
]
@@ -7287,7 +7293,7 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.91",
+ "syn 2.0.94",
]
[[package]]
@@ -7300,6 +7306,6 @@ dependencies = [
"quote",
"serde",
"static_assertions",
- "syn 2.0.91",
- "winnow 0.6.20",
+ "syn 2.0.94",
+ "winnow 0.6.22",
]
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index f681c6512..0d4b449c3 100644
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -10,10 +10,10 @@ repository = "https://github.com/martpie/museeks"
edition = "2021"
[build-dependencies]
-tauri-build = { version = "2.0.3", features = ["codegen"] }
+tauri-build = { version = "2.0.4", features = ["codegen"] }
[dependencies]
-tauri = { version = "2.1.1", features = [
+tauri = { version = "2.2.0", features = [
"protocol-asset",
"image-png",
"devtools",
@@ -22,32 +22,32 @@ tauri-plugin-dialog = "2.2.0"
tauri-plugin-fs = "2.2.0"
tauri-plugin-log = { version = "2.2.0", features = ["colored"] }
tauri-plugin-notification = "2.2.0"
-tauri-plugin-opener = "2.2.1"
+tauri-plugin-opener = "2.2.2"
tauri-plugin-os = "2.2.0"
tauri-plugin-shell = "2.2.0"
tauri-plugin-single-instance = "2.2.0"
tauri-plugin-window-state = "2.2.0"
# non-Tauri dependencies
-anyhow = "1.0.94"
+anyhow = "1.0.95"
base64 = "0.22.1"
dirs = "5.0.1"
futures = "0.3.31"
home-config = { version = "0.6.0", features = ["toml"] }
-itertools = "0.13.0"
+itertools = "0.14.0"
log = "0.4.22"
lofty = "0.21.1"
m3u = "1.0.0"
memoize = "0.4.2"
nosleep = "0.2.1"
-ormlite = { version = "0.22.2", features = ["default-sqlite"] }
+ormlite = { version = "0.22.8", features = ["default-sqlite"] }
pathdiff = "0.2.3"
rayon = "1.10.0"
-serde = { version = "1.0.216", features = ["derive"] }
-serde_json = "1.0.133"
+serde = { version = "1.0.217", features = ["derive"] }
+serde_json = "1.0.134"
strum = { version = "0.26.3", features = ["derive"] }
tokio = "1.42.0"
-thiserror = "2.0.6"
+thiserror = "2.0.9"
ts-rs = "10.1.0"
uuid = { version = "1.11.0", features = ["v3", "v4", "fast-rng"] }
walkdir = "2.5.0"
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index 3d912dfbf..a459ecde0 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -13,9 +13,22 @@
"security": {
"assetProtocol": {
"enable": true,
- "scope": ["**/*"]
+ "scope": {
+ "allow": ["**/*"]
+ }
},
- "csp": "default-src 'none'; img-src 'self' asset: https://asset.localhost http://asset.localhost data: ; media-src 'self' blob: asset: https://asset.localhost http://asset.localhost; child-src 'self'; object-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src ipc: asset: https://asset.localhost http://asset.localhost http://ipc.localhost 'self' https://api.github.com; font-src 'self' data:"
+ "pattern": {
+ "use": "brownfield"
+ },
+ "csp": {
+ "default-src": "'self' asset: http://asset.localhost",
+ "connect-src": "'self' asset: http://asset.localhost blob: ipc: http://ipc.localhost https://api.github.com",
+ "img-src": "'self' asset: http://asset.localhost data:",
+ "media-src": "'self' asset: http://asset.localhost blob: data:",
+ "child-src": "'self'; object-src 'self'",
+ "font-src": "'self' data:",
+ "style-src": "'self' 'unsafe-inline'"
+ }
}
},
"bundle": {
diff --git a/src/components/SettingCheckbox.tsx b/src/components/SettingCheckbox.tsx
index 9d7610dc7..86cab236d 100644
--- a/src/components/SettingCheckbox.tsx
+++ b/src/components/SettingCheckbox.tsx
@@ -20,7 +20,7 @@ export default function CheckboxSetting(props: Props) {
onChange={(e) => props.onChange(e.currentTarget.checked)}
checked={props.value}
/>
-
+
{title}
{description}
diff --git a/src/main.tsx b/src/main.tsx
index 2b2eb01cf..a55718209 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -11,7 +11,6 @@ import * as ReactDOM from 'react-dom/client';
import { RouterProvider } from 'react-router';
import queryClient from './lib/query-client';
-import router from './routes';
/*
|--------------------------------------------------------------------------
@@ -28,19 +27,22 @@ import './styles/general.css';
|--------------------------------------------------------------------------
*/
-logger.attachConsole();
+(async function createRoot() {
+ await logger.attachConsole();
-const wrap = document.getElementById('wrap');
+ const wrap = document.getElementById('wrap');
+ const router = (await import('./routes')).default;
-if (wrap) {
- const root = ReactDOM.createRoot(wrap);
- root.render(
-
-
-
-
- ,
- );
-} else {
- document.body.innerHTML = 'x_x
';
-}
+ if (wrap) {
+ const root = ReactDOM.createRoot(wrap);
+ root.render(
+
+
+
+
+ ,
+ );
+ } else {
+ document.body.innerHTML = 'x_x
';
+ }
+})();