From e8ce80369e5b36bb9f7105db30e733b18b9dc59a Mon Sep 17 00:00:00 2001 From: rgdevment Date: Tue, 20 Oct 2026 15:12:45 -0300 Subject: [PATCH 01/11] chore(deps): refresh Rust and npm dependencies, and the updater drops the zip it never used --- Cargo.lock | 1122 +++++++++++++++------------------- Cargo.toml | 2 +- THIRD-PARTY-BUNDLED.md | 159 +++-- THIRD-PARTY-LICENSES.md | 1272 +++++++++++++++++---------------------- app/package-lock.json | 895 +++++++++++++-------------- deny.toml | 3 - package-lock.json | 42 +- package.json | 1 + 8 files changed, 1577 insertions(+), 1919 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 720d43ec..2e3969d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -60,7 +60,7 @@ dependencies = [ "accesskit", "accesskit_consumer", "hashbrown 0.16.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-foundation 0.2.2", "objc2-ui-kit 0.2.2", ] @@ -74,7 +74,7 @@ dependencies = [ "accesskit", "accesskit_consumer", "hashbrown 0.16.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", ] @@ -107,8 +107,8 @@ dependencies = [ "accesskit_consumer", "hashbrown 0.16.1", "static_assertions", - "windows 0.62.2", - "windows-core 0.62.2", + "windows", + "windows-core", ] [[package]] @@ -211,9 +211,9 @@ dependencies = [ [[package]] name = "annotate-snippets" -version = "0.12.16" +version = "0.12.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f211a51805bc641f3ad5b7664c77d2547af685cc33b4cd8d31964027a46f13f1" +checksum = "b2a5b0a5ab8561c603f16c3b78c24a386b1f70e7fc1b1b1e8c15738828e4a176" dependencies = [ "anstyle", "memchr", @@ -232,29 +232,20 @@ version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "arboard" -version = "3.6.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf" +checksum = "aeb9553e62312c8756a5979254fc6d7da8bbeb5986a1e17037fab932f7037917" dependencies = [ "clipboard-win", "log", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", "parking_lot", "percent-encoding", - "windows-sys 0.60.2", + "windows-sys 0.61.2", "wl-clipboard-rs", "x11rb", ] @@ -337,7 +328,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 1.1.4", + "rustix 1.1.5", "slab", "windows-sys 0.61.2", ] @@ -368,18 +359,18 @@ dependencies = [ "cfg-if", "event-listener", "futures-lite", - "rustix 1.1.4", + "rustix 1.1.5", ] [[package]] name = "async-recursion" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +checksum = "4f8abc12baad266b1c8cec146854c195b5864b4221d4b2ca7296a7ae82d9e451" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.9", ] [[package]] @@ -394,7 +385,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 1.1.4", + "rustix 1.1.5", "signal-hook-registry", "slab", "windows-sys 0.61.2", @@ -414,7 +405,7 @@ checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -555,6 +546,15 @@ dependencies = [ "bit-vec 0.9.1", ] +[[package]] +name = "bit-set" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56d87354e4229f54a44f7bf2435906a4656dba36026ab6eaca629a2c436a691c" +dependencies = [ + "bit-vec 0.10.1", +] + [[package]] name = "bit-vec" version = "0.8.0" @@ -567,6 +567,16 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51" +[[package]] +name = "bit-vec" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5727b15fa97d4f4fee0a3b7c3d550ed0269f54329207b86388de918604e31269" +dependencies = [ + "borsh", + "serde", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -610,7 +620,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" dependencies = [ - "objc2 0.5.2", + "objc2 0.5.3", ] [[package]] @@ -619,7 +629,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", ] [[package]] @@ -641,10 +651,24 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" dependencies = [ + "borsh-derive", "bytes", "cfg_aliases", ] +[[package]] +name = "borsh-derive" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.9", +] + [[package]] name = "brotli" version = "9.0.0" @@ -704,7 +728,7 @@ checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -769,14 +793,13 @@ dependencies = [ [[package]] name = "calloop" -version = "0.14.4" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" +checksum = "43b32313e937c8721c9d17ee9bf60699a6402b4b7c2cb6ac1bee0ffcaa4b4e5e" dependencies = [ "bitflags 2.13.2", "polling", - "rustix 1.1.4", - "slab", + "rustix 1.1.5", "tracing", ] @@ -832,14 +855,14 @@ checksum = "82f4b26e751e711a5302649417f2da046dce6391b2ea30a4820f37462314f0b9" dependencies = [ "semver", "serde", - "toml 1.1.6+spec-1.1.0", + "toml 1.1.8+spec-1.1.0", ] [[package]] name = "cc" -version = "1.4.5" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005ec2760ca554fae18df7a11195552ec576cd665632a881bc011d5bb2fd4d80" +checksum = "877bf67ac8e52449eb2f9e98a344ea163beb70dd1f9eebe3cc5357dcfeaee4df" dependencies = [ "find-msvc-tools", "jobserver", @@ -862,17 +885,6 @@ dependencies = [ "nom 7.1.3", ] -[[package]] -name = "cfb" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" -dependencies = [ - "byteorder", - "fnv", - "uuid", -] - [[package]] name = "cfb" version = "0.14.0" @@ -896,9 +908,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" [[package]] name = "cfg_aliases" @@ -915,6 +927,17 @@ dependencies = [ "libc", ] +[[package]] +name = "chacha20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "rand_core", +] + [[package]] name = "chrono" version = "0.4.45" @@ -926,7 +949,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -975,9 +998,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "combine" -version = "4.6.8" +version = "4.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e" +checksum = "4356eba6976435498d05a311ee9fc486da3bc81c200d3f0d7dd9703b41913f92" dependencies = [ "bytes", "memchr", @@ -1010,7 +1033,7 @@ checksum = "93d5848843a221ac268cfdd6bfd14e68d5d3dfa79d52c880aafab93f9517fb74" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -1132,7 +1155,7 @@ dependencies = [ "serde_json", "tempfile", "thiserror 2.0.21", - "toml 1.1.6+spec-1.1.0", + "toml 1.1.8+spec-1.1.0", ] [[package]] @@ -1170,7 +1193,7 @@ dependencies = [ "tauri-plugin-shell", "tauri-plugin-single-instance", "tauri-plugin-updater", - "winreg 0.56.0", + "winreg", ] [[package]] @@ -1189,7 +1212,7 @@ name = "cp-mac-sys" version = "3.0.0-dev" dependencies = [ "cp-core", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-application-services", "objc2-av-foundation", @@ -1247,7 +1270,7 @@ dependencies = [ "cp-store", "cp-win-sys", "image", - "windows 0.62.2", + "windows", ] [[package]] @@ -1256,9 +1279,9 @@ version = "3.0.0-dev" dependencies = [ "cp-core", "image", - "windows 0.62.2", - "windows-future 0.3.2", - "winreg 0.56.0", + "windows", + "windows-future", + "winreg", ] [[package]] @@ -1281,9 +1304,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +checksum = "0ba106e844045ddc02c20768ac4b0b7cb45f2cc2ecbd833ac9f5dacb183c2055" dependencies = [ "cfg-if", ] @@ -1364,7 +1387,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d045de693cb712d0b22c6a64be5b953f67b3ce00ab5ad3dd5d8b441886ab8e1a" dependencies = [ "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -1408,7 +1431,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -1419,7 +1442,7 @@ checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" dependencies = [ "darling_core", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -1441,9 +1464,9 @@ dependencies = [ [[package]] name = "defmt" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" +checksum = "e4a0795ac740cb54d7b3775c9c17345f6aaecf884c01733b39d6017738e0e3e1" dependencies = [ "bitflags 1.3.2", "defmt-macros", @@ -1451,45 +1474,34 @@ dependencies = [ [[package]] name = "defmt-macros" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +checksum = "840bb056bd99c495c9188198a258ab787c79f306d864db3e6e8451442d6d8366" dependencies = [ "defmt-parser", "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.9", ] [[package]] name = "defmt-parser" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +checksum = "71958f69fb2de856c5dd51ac9377e986ca1aa5919f931bf5395a807277f889a0" dependencies = [ "thiserror 2.0.21", ] [[package]] name = "deranged" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +checksum = "9e9de72ce2ad1f90dc62fa25f0f430ef85eb4b0d8fa0be4f30373bc40a21d28e" dependencies = [ "serde_core", ] -[[package]] -name = "derive_arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "derive_more" version = "2.1.1" @@ -1523,15 +1535,6 @@ dependencies = [ "crypto-common", ] -[[package]] -name = "dirs" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" -dependencies = [ - "dirs-sys", -] - [[package]] name = "dirs" version = "7.0.0" @@ -1568,7 +1571,7 @@ dependencies = [ "bitflags 2.13.2", "block2 0.6.2", "libc", - "objc2 0.6.4", + "objc2 0.6.5", ] [[package]] @@ -1579,7 +1582,7 @@ checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -1674,7 +1677,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51a91c9b32ac4e8105dec255e849e0d66e27d7c34d184364fb93e469db08f690" dependencies = [ "drm-sys", - "rustix 1.1.4", + "rustix 1.1.5", ] [[package]] @@ -1728,22 +1731,22 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "either" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" +checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" [[package]] name = "embed-resource" -version = "3.0.11" +version = "3.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd" +checksum = "6168487b5e7eb2673e6efe1200b1848016e436a6ca0b8031bf04bd9d493a249f" dependencies = [ "cc", "memchr", "rustc_version", - "toml 1.1.6+spec-1.1.0", + "toml 1.1.8+spec-1.1.0", "vswhom", - "winreg 0.55.0", + "winreg", ] [[package]] @@ -1754,13 +1757,12 @@ checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" [[package]] name = "encoding_rs" -version = "0.8.41" +version = "0.8.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5ef0006ac9ab233c38522f5ae99cae3625151de8f706cacee1cba4b8e2832a" +checksum = "8e985e0451871ad22fb8d2b6b076e2028a502a0d3950998c2c5c0a4f9b5d9679" dependencies = [ "cfg-if", "core_detect", - "multiversion", "multiversion_no_op", "rustversion", "scopeguard", @@ -1796,9 +1798,9 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "00d174d5400e5e8fd687ad1049e2f578285fa914201b1af7e8b112a4546bd826" [[package]] name = "erased-serde" @@ -1917,9 +1919,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.12" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" +checksum = "1c66915cc5391097de7a2b0b972e8505aa33c0df401fd3a6811dbdb32881ba48" [[package]] name = "fixed_decimal" @@ -1975,9 +1977,9 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "font-types" -version = "0.12.5" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8eb065f3251655b3c90e22e5e363f310fc5332fb3402e37bbc94752283248f6" +checksum = "835ae9d781464a79026cde387f9cbc650c9a4909d7cf7e658b127e3c35d2f35d" dependencies = [ "bytemuck", ] @@ -2002,7 +2004,7 @@ dependencies = [ "hashbrown 0.17.1", "linebender_resource_handle", "memmap2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-core-text", "objc2-foundation 0.3.2", @@ -2010,8 +2012,8 @@ dependencies = [ "read-fonts", "roxmltree", "smallvec", - "windows 0.62.2", - "windows-core 0.62.2", + "windows", + "windows-core", "yeslogic-fontconfig-sys", ] @@ -2033,7 +2035,7 @@ checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -2120,7 +2122,7 @@ checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -2289,8 +2291,8 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" dependencies = [ - "rustix 1.1.4", - "windows-link 0.2.1", + "rustix 1.1.5", + "windows-link", ] [[package]] @@ -2325,6 +2327,7 @@ dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", + "rand_core", ] [[package]] @@ -2441,7 +2444,7 @@ checksum = "8c386b0a4a70cb2d39fffd74480f985b6f0bfbcb934b6a6b6b7e630e448f242e" dependencies = [ "crossbeam-channel", "keyboard-types 0.7.0", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "once_cell", "serde", @@ -2477,7 +2480,7 @@ dependencies = [ "glutin_glx_sys", "glutin_wgl_sys", "libloading 0.8.9", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -2551,7 +2554,7 @@ dependencies = [ "log", "presser", "thiserror 2.0.21", - "windows 0.62.2", + "windows", ] [[package]] @@ -2773,13 +2776,12 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "hyper" -version = "1.11.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b501faa50e7a26c3d3560ca625132f4078a17771f4810baf70475ae48cbe43" +checksum = "2c3e324da4c95177d6291d4c8730197c0d1822f8a9766814a4a44fa5ab797c9c" dependencies = [ "atomic-waker", "bytes", - "futures-channel", "futures-core", "http", "http-body", @@ -2808,16 +2810,17 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +checksum = "ddc03d96684f9226b8a787cdb71488417b53ab5ea8fdb1dac946cb9431cc8bff" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", "bytes", "futures-channel", "futures-util", "http", "http-body", + "httparse", "hyper", "ipnet", "libc", @@ -2837,7 +2840,7 @@ version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f519a8611a4982921e46e391015e5e40ceac5cc63813333ef91ada77df180d8" dependencies = [ - "calloop 0.14.4", + "calloop 0.14.5", "cfg_aliases", "drm", "gbm", @@ -2904,7 +2907,7 @@ dependencies = [ "i-slint-renderer-skia", "lyon_path", "muda 0.19.3", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", "objc2-quartz-core 0.3.2", @@ -2919,7 +2922,7 @@ dependencies = [ "wasm-bindgen", "web-sys", "webbrowser", - "windows 0.62.2", + "windows", "winit", "zbus", ] @@ -2967,7 +2970,7 @@ dependencies = [ "rowan", "rspolib", "skrifa", - "smol_str 0.3.6", + "smol_str 0.3.7", "strum", "swash", "typed-index-collections", @@ -2999,7 +3002,7 @@ dependencies = [ "lyon_geom", "lyon_path", "num-traits", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", "once_cell", @@ -3025,7 +3028,7 @@ dependencies = [ "web-sys", "web-time", "wgpu", - "windows 0.62.2", + "windows", ] [[package]] @@ -3036,7 +3039,7 @@ checksum = "73f5a8a076de52f53be80caa826599ed2107b54c9d4a421e66dc06cf893a984c" dependencies = [ "quote", "serde_json", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -3056,7 +3059,7 @@ dependencies = [ "i-slint-core", "i-slint-core-macros", "lyon_path", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -3073,8 +3076,8 @@ dependencies = [ "vtable", "wgpu", "wgpu-hal", - "windows 0.62.2", - "windows-core 0.62.2", + "windows", + "windows-core", "write-fonts", ] @@ -3109,7 +3112,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core", ] [[package]] @@ -3386,22 +3389,13 @@ dependencies = [ "serde_core", ] -[[package]] -name = "infer" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" -dependencies = [ - "cfb 0.7.3", -] - [[package]] name = "infer" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4200d433cbd5178df7797c9c2e75b348b728e39631cf14520d1e2fc424201f4" dependencies = [ - "cfb 0.14.0", + "cfb", ] [[package]] @@ -3508,9 +3502,9 @@ dependencies = [ [[package]] name = "jiff" -version = "0.2.37" +version = "0.2.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1baf72f08796de0260609515130699b890ac25f30e610ad894bc5856cafdb" +checksum = "b2b005715dcbeb0089a3c0dab99f2ff1cc3b2525323552703d648585d342a383" dependencies = [ "defmt", "jiff-core", @@ -3520,7 +3514,7 @@ dependencies = [ "portable-atomic", "portable-atomic-util", "serde_core", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -3535,9 +3529,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.37" +version = "0.2.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "378268a1116ad67ae6228701118ac9f491d78fda38a40a1f1a9e1348de6f7212" +checksum = "2cc9817253cf7c7ee4684451bd327e88d6f3658014e54a29198625590650695c" dependencies = [ "jiff-core", "proc-macro2", @@ -3547,9 +3541,9 @@ dependencies = [ [[package]] name = "jiff-tzdb" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e" +checksum = "fa8377070c6bae868759445e5a77f66d84f0b72f3a054bfb00e6d038b8282da7" [[package]] name = "jiff-tzdb-platform" @@ -3590,7 +3584,7 @@ dependencies = [ "simd_cesu8", "thiserror 2.0.21", "walkdir", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -3646,9 +3640,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.105" +version = "0.3.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +checksum = "7883d941dae510fb2d978fc3fe018c71c9e2892fd38854de3e8b92c2e5ad9cc5" dependencies = [ "cfg-if", "futures-util", @@ -3718,9 +3712,9 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +checksum = "20870f649af7073d53e38067b2a84312175d56ea15217e1b15bc83506ec50afb" [[package]] name = "libappindicator" @@ -3748,9 +3742,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.189" +version = "0.2.191" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" +checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a" [[package]] name = "libdbus-sys" @@ -3778,7 +3772,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -3796,7 +3790,7 @@ dependencies = [ "bitflags 2.13.2", "libc", "plain", - "redox_syscall 0.9.4", + "redox_syscall 0.9.5", ] [[package]] @@ -3872,9 +3866,9 @@ checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" [[package]] name = "litrs" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" +checksum = "4744e383959f0db86ede514b809b1c53251889093803c05267acc7d4e7030d70" [[package]] name = "lock_api" @@ -3893,9 +3887,9 @@ checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "lyon_algorithms" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdfa8785f95e57914ddb35e3b59994aeba6f5e79e9cfd03da1c269f010f36009" +checksum = "f3a6b9d4e8b48acd531fbf1241ad9b270df6e60b6b92bdea1469f4f40899d805" dependencies = [ "lyon_path", "num-traits", @@ -3913,9 +3907,9 @@ dependencies = [ [[package]] name = "lyon_geom" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4336502e29e32af93cf2dad2214ed6003c17ceb5bd499df77b1de663b9042b92" +checksum = "d82dd26aa4dc0b5b70b9115de59824842bcb43cf4a28e1b1e6d0ad148c93f93e" dependencies = [ "arrayvec", "euclid", @@ -3981,9 +3975,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "minisign-verify" -version = "0.2.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" +checksum = "871285dc19d8d0ebe0eef3d0e99a205f2a71363b122632cbbfa4a6c370a960ce" [[package]] name = "miniz_oxide" @@ -4007,9 +4001,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.2.3" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8" +checksum = "1788edb87fdc09c7e26304471e2f5be8cdefb1b6930d6e3985fc02ff53bf86ee" dependencies = [ "libc", "wasi", @@ -4035,7 +4029,7 @@ dependencies = [ "crossbeam-channel", "dpi", "keyboard-types 0.7.0", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -4055,7 +4049,7 @@ dependencies = [ "dpi", "gtk", "keyboard-types 0.8.3", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -4066,27 +4060,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "multiversion" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ca4bea16ffc3f443cf7d866912118196bfef4c6a1556ca00f9f9b00bb43f7c" -dependencies = [ - "multiversion-macros", -] - -[[package]] -name = "multiversion-macros" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d416831a7317ef4b08bee00b69cbbb9c8763da7959a7026244d6266869f9c83" -dependencies = [ - "proc-macro2", - "quote", - "rustversion", - "syn 3.0.5", -] - [[package]] name = "multiversion_no_op" version = "1.0.0" @@ -4259,9 +4232,9 @@ checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" [[package]] name = "objc2" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +checksum = "19d5490aaf8f1d7cf7688dfa9b0ce07900e168852c45cd2c03f534dfd27cfd0b" dependencies = [ "objc-sys", "objc2-encode", @@ -4269,9 +4242,9 @@ dependencies = [ [[package]] name = "objc2" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +checksum = "08849bbd4767dfae9457696856ae1c84fe4e0281bbe4a7abff2d0e06fb7981f8" dependencies = [ "objc2-encode", "objc2-exception-helper", @@ -4286,7 +4259,7 @@ dependencies = [ "bitflags 2.13.2", "block2 0.5.1", "libc", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-core-data 0.2.2", "objc2-core-image 0.2.2", "objc2-foundation 0.2.2", @@ -4302,7 +4275,7 @@ dependencies = [ "bitflags 2.13.2", "block2 0.6.2", "libc", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-cloud-kit 0.3.2", "objc2-core-data 0.3.2", "objc2-core-foundation", @@ -4322,7 +4295,7 @@ checksum = "69282c2b5bc58fba07cb9de2113619532eb551e98efe3d8d695509ef45fbd53b" dependencies = [ "bitflags 2.13.2", "libc", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-core-graphics", "objc2-core-services", @@ -4338,7 +4311,7 @@ dependencies = [ "bitflags 2.13.2", "block2 0.6.2", "dispatch2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-avf-audio", "objc2-core-audio-types", "objc2-core-foundation", @@ -4358,7 +4331,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13a380031deed8e99db00065c45937da434ca987c034e13b87e4441f9e4090be" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-foundation 0.3.2", ] @@ -4370,7 +4343,7 @@ checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ "bitflags 2.13.2", "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-core-location 0.2.2", "objc2-foundation 0.2.2", ] @@ -4382,7 +4355,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" dependencies = [ "bitflags 2.13.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-foundation 0.3.2", ] @@ -4393,7 +4366,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" dependencies = [ "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-foundation 0.2.2", ] @@ -4404,7 +4377,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1eebcea8b0dbff5f7c8504f3107c68fc061a3eb44932051c8cf8a68d969c3b2" dependencies = [ "dispatch2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-audio-types", "objc2-core-foundation", ] @@ -4416,7 +4389,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a89f2ec274a0cf4a32642b2991e8b351a404d290da87bb6a9a9d8632490bd1c" dependencies = [ "bitflags 2.13.2", - "objc2 0.6.4", + "objc2 0.6.5", ] [[package]] @@ -4427,7 +4400,7 @@ checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ "bitflags 2.13.2", "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-foundation 0.2.2", ] @@ -4438,7 +4411,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" dependencies = [ "bitflags 2.13.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-foundation 0.3.2", ] @@ -4452,7 +4425,7 @@ dependencies = [ "block2 0.6.2", "dispatch2", "libc", - "objc2 0.6.4", + "objc2 0.6.5", ] [[package]] @@ -4465,7 +4438,7 @@ dependencies = [ "block2 0.6.2", "dispatch2", "libc", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-io-surface", "objc2-metal 0.3.2", @@ -4478,7 +4451,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-foundation 0.2.2", "objc2-metal 0.2.2", ] @@ -4489,7 +4462,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-foundation 0.3.2", ] @@ -4500,7 +4473,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" dependencies = [ "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-contacts", "objc2-foundation 0.2.2", ] @@ -4511,7 +4484,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-foundation 0.3.2", ] @@ -4523,7 +4496,7 @@ checksum = "05ec576860167a15dd9fce7fbee7512beb4e31f532159d3482d1f9c6caedf31d" dependencies = [ "bitflags 2.13.2", "dispatch2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-audio", "objc2-core-audio-types", "objc2-core-foundation", @@ -4536,7 +4509,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "201b055e6acfa0f9f15568255d3f03ce2b54bc86d1814442dc69138e36813e18" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-foundation 0.3.2", ] @@ -4547,7 +4520,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583300ad934cba24ff5292aee751ecc070f7ca6b39a574cc21b7b5e588e06a0b" dependencies = [ "dispatch2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-security", ] @@ -4559,7 +4532,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" dependencies = [ "bitflags 2.13.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-core-graphics", ] @@ -4571,7 +4544,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" dependencies = [ "bitflags 2.13.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-core-graphics", "objc2-io-surface", @@ -4602,7 +4575,7 @@ dependencies = [ "block2 0.5.1", "dispatch", "libc", - "objc2 0.5.2", + "objc2 0.5.3", ] [[package]] @@ -4614,7 +4587,7 @@ dependencies = [ "bitflags 2.13.2", "block2 0.6.2", "libc", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", ] @@ -4624,7 +4597,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32b0446e98cf4a784cc7a0177715ff317eeaa8463841c616cfc78aa4f953c4ea" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-core-graphics", ] @@ -4636,7 +4609,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" dependencies = [ "bitflags 2.13.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", ] @@ -4647,7 +4620,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", ] @@ -4658,7 +4631,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edd9fdde720df3da7046bb9097811000c1e7ab5cd579fa89d96b27d56781fb30" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-audio-types", "objc2-core-foundation", "objc2-core-media", @@ -4672,7 +4645,7 @@ checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ "bitflags 2.13.2", "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-foundation 0.2.2", ] @@ -4684,7 +4657,7 @@ checksum = "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-foundation 0.3.2", ] @@ -4695,7 +4668,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f112d1746737b0da274ef79a23aac283376f335f4095a083a267a082f21db0c0" dependencies = [ "bitflags 2.13.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", ] @@ -4708,7 +4681,7 @@ checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ "bitflags 2.13.2", "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-foundation 0.2.2", "objc2-metal 0.2.2", ] @@ -4720,7 +4693,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" dependencies = [ "bitflags 2.13.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-core-graphics", "objc2-foundation 0.3.2", @@ -4734,7 +4707,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" dependencies = [ "bitflags 2.13.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", ] @@ -4744,7 +4717,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b213642d6959cc6023ceb1217aa595eaaf09b8094ce95127c103cab611fe65e8" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-foundation 0.3.2", "objc2-security", @@ -4756,7 +4729,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" dependencies = [ - "objc2 0.5.2", + "objc2 0.5.3", "objc2-foundation 0.2.2", ] @@ -4768,7 +4741,7 @@ checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ "bitflags 2.13.2", "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-cloud-kit 0.2.2", "objc2-core-data 0.2.2", "objc2-core-image 0.2.2", @@ -4789,7 +4762,7 @@ checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-cloud-kit 0.3.2", "objc2-core-data 0.3.2", "objc2-core-foundation", @@ -4809,7 +4782,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" dependencies = [ "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-foundation 0.2.2", ] @@ -4821,7 +4794,7 @@ checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ "bitflags 2.13.2", "block2 0.5.1", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-core-location 0.2.2", "objc2-foundation 0.2.2", ] @@ -4832,7 +4805,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-foundation 0.3.2", ] @@ -4843,7 +4816,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfc194758a2d5d7540b1ad283bfb9ca318ec608991892326e95b428230b2689b" dependencies = [ "block2 0.6.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-av-foundation", "objc2-core-foundation", "objc2-core-graphics", @@ -4863,7 +4836,7 @@ checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -4947,7 +4920,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "732c71caeaa72c065bb69d7ea08717bd3f4863a4f451402fc9513e29dbd5261b" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-foundation 0.3.2", "objc2-osa-kit", "serde", @@ -5015,14 +4988,14 @@ dependencies = [ "libc", "redox_syscall 0.5.18", "smallvec", - "windows-link 0.2.1", + "windows-link", ] [[package]] name = "parlance" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b6937eda350acc1a5d05872c3cbf99fe78619c269096e2be3d4a350058639d5" +checksum = "73072a9470554c8e794778acece2312661218aaabb635600957d952cf01c716e" [[package]] name = "parley" @@ -5156,9 +5129,9 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "13bee6c73da26345c729282832b60b0363cf3dd9f4bfd81d8551b7a1c889a113" [[package]] name = "pin-weak" @@ -5191,9 +5164,9 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "plist" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896bade328c13f7042a297ea5ac5b0951f6cf989dea5f32c2fd98da398195cb" +checksum = "65dca778f41c79ebbe8b2b2139fee86f01b766b67130d108c7c2b8ffbd949f77" dependencies = [ "base64 0.23.1", "indexmap 2.14.2", @@ -5238,7 +5211,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.5.3", "pin-project-lite", - "rustix 1.1.4", + "rustix 1.1.5", "windows-sys 0.61.2", ] @@ -5282,18 +5255,9 @@ dependencies = [ [[package]] name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] +checksum = "4a6394b9e965e73d0a289ee54f589087e2c676aedf60885baf52c76b771e4958" [[package]] name = "precomputed-hash" @@ -5343,7 +5307,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.15+spec-1.1.0", + "toml_edit 0.25.17+spec-1.1.0", ] [[package]] @@ -5387,16 +5351,17 @@ checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5" [[package]] name = "proptest" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" +checksum = "b8530004ccb15eae51c7e40009fbe317f341f804db54dc033eec1c50be28cfa0" dependencies = [ - "bit-set 0.8.0", - "bit-vec 0.8.0", + "bit-set 0.11.1", + "bit-vec 0.10.1", "bitflags 2.13.2", + "chacha20", + "core_detect", "num-traits", "rand", - "rand_chacha", "rand_xorshift", "regex-syntax", "rusty-fork", @@ -5474,38 +5439,25 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" -dependencies = [ - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af" dependencies = [ - "ppv-lite86", + "getrandom 0.4.3", "rand_core", ] [[package]] name = "rand_core" -version = "0.9.5" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" -dependencies = [ - "getrandom 0.3.4", -] +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rand_xorshift" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +checksum = "60aa6af80be32871323012e02e6e65f8a7cc7890931ae421d217ad8fe0df2ccf" dependencies = [ "rand_core", ] @@ -5528,7 +5480,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40d213455a5f1dc59214213c7330e074ddf8114c9a42411eb890c767357ce135" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-foundation 0.3.2", "objc2-quartz-core 0.3.2", @@ -5585,9 +5537,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "737970939a87c6fa31e7acad13307bccbb017a073b695b6089a2c484f929e20e" +checksum = "580c875845b41ecb1564ad1ae4703044cef774145e3d7a94dc2b3fa7c97868fd" dependencies = [ "bitflags 2.13.2", ] @@ -5619,7 +5571,7 @@ checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -5733,7 +5685,7 @@ dependencies = [ "gtk-sys", "js-sys", "log", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -5863,9 +5815,9 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" dependencies = [ "bitflags 2.13.2", "errno", @@ -5890,9 +5842,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" +checksum = "4a073f5dc7469f984c52ad2752b63b0807745133b6de880b7b64c1ac4c48aec4" dependencies = [ "openssl-probe", "rustls-pki-types", @@ -5938,9 +5890,9 @@ checksum = "eec689c0bc40ff2458a5977b6619cb718087084a18e02a131c599b62d05e1a5f" [[package]] name = "rustls-webpki" -version = "0.103.15" +version = "0.103.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2" +checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281" dependencies = [ "ring", "rustls-pki-types", @@ -5976,9 +5928,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" +checksum = "9cb23c424d8ee841bb4d813677ca237e2a610067d594fec130f87d6093495ab5" dependencies = [ "windows-sys 0.61.2", ] @@ -6012,9 +5964,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a" +checksum = "ab508826f74a77ca9d5aba6ff19b522583ee3eaf28a19384ff3d0e5835fadf6e" dependencies = [ "dyn-clone", "ref-cast", @@ -6156,7 +6108,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -6172,10 +6124,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.151" +version = "1.0.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6" dependencies = [ + "foldhash 0.2.0", "indexmap 2.14.2", "itoa", "memchr", @@ -6192,7 +6145,7 @@ checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -6206,18 +6159,18 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +checksum = "4e7523beb55eece201a2356bee0bbca0d1ab466c14c07703b2e0ee6d42cb0c2c" dependencies = [ "serde_core", ] [[package]] name = "serde_with" -version = "3.23.0" +version = "3.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +checksum = "df9adc193c780ef8f159aee8b61e2d5801aaa555e6eb0947fe45530ec506296f" dependencies = [ "base64 0.23.1", "bs58", @@ -6227,7 +6180,7 @@ dependencies = [ "indexmap 2.14.2", "jiff", "schemars 0.9.0", - "schemars 1.2.2", + "schemars 1.2.3", "serde_core", "serde_json", "serde_with_macros", @@ -6236,14 +6189,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.23.0" +version = "3.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +checksum = "3e17bbc68e28663bbbb90df47e058aa7eda4fb445b89fe70457bb94fbccf6e49" dependencies = [ "darling", "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -6295,7 +6248,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "607549934f6cc26b89cfecfdc46fa90f1e5d1536a68349b0c3a4f9d1c0d37959" dependencies = [ "libc", - "sigchld", "windows-sys 0.61.2", ] @@ -6311,27 +6263,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" -[[package]] -name = "sigchld" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f2b37f04360cd465089b87a9c3869c08220a2f3458463f0adf8badf5e77f2c" -dependencies = [ - "libc", - "os_pipe", - "signal-hook", -] - -[[package]] -name = "signal-hook" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a0c28ca5908dbdbcd52e6fdaa00358ab88637f8ab33e1f188dd510eb44b53d" -dependencies = [ - "libc", - "signal-hook-registry", -] - [[package]] name = "signal-hook-registry" version = "1.4.8" @@ -6375,9 +6306,9 @@ dependencies = [ [[package]] name = "siphasher" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" +checksum = "33f4fe9184a62d842c9ef383018f3306d8ba224fd9d836f56d7288308847c256" [[package]] name = "skia-bindings" @@ -6393,7 +6324,7 @@ dependencies = [ "regex", "serde_json", "tar", - "toml 1.1.6+spec-1.1.0", + "toml 1.1.8+spec-1.1.0", ] [[package]] @@ -6404,7 +6335,7 @@ checksum = "c61cb643dac43067f3eb76c866635a74377ac0abca0ff2590674e1e295514c3d" dependencies = [ "bitflags 2.13.2", "skia-bindings", - "windows 0.62.2", + "windows", ] [[package]] @@ -6456,7 +6387,7 @@ dependencies = [ "fontique", "i-slint-compiler", "spin_on", - "toml_edit 0.25.15+spec-1.1.0", + "toml_edit 0.25.17+spec-1.1.0", ] [[package]] @@ -6482,9 +6413,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.16.1" +version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" +checksum = "5b3dc8af474f516a851ff4bd12db780f948b9250ad37211e4eec0bccea54e01b" [[package]] name = "smithay-client-toolkit" @@ -6522,9 +6453,9 @@ dependencies = [ [[package]] name = "smol_str" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aaa7368fcf4852a4c2dd92df0cace6a71f2091ca0a23391ce7f3a31833f1523" +checksum = "eeb7109d23f319619d4cc0de5464613c8b7b1a09db2774a58101459cf6be2f10" dependencies = [ "borsh", "serde_core", @@ -6574,14 +6505,14 @@ dependencies = [ "js-sys", "memmap2", "ndk", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-core-graphics", "objc2-foundation 0.3.2", "objc2-quartz-core 0.3.2", "raw-window-handle", "redox_syscall 0.5.18", - "rustix 1.1.4", + "rustix 1.1.5", "tiny-xlib", "tracing", "wasm-bindgen", @@ -6661,6 +6592,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "static_vcruntime" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7589a1859b09232522bb9edf076ca7fcf14ded96685d3fa629db73023ffbb7" + [[package]] name = "strict-num" version = "0.1.1" @@ -6750,9 +6687,9 @@ dependencies = [ [[package]] name = "swift-rs" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e45c444e496845d3f2a351146bff59aae4975b2280238df1dfaa0c7d1846f38e" +checksum = "cefd87076fd385308ee4aff597256c902f1fbb4d031de1558efc12f8ffefadd9" dependencies = [ "base64 0.21.7", "serde", @@ -6931,9 +6868,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.5" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b" dependencies = [ "proc-macro2", "quote", @@ -6957,7 +6894,7 @@ checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -7042,7 +6979,7 @@ dependencies = [ "ndk", "ndk-context", "ndk-sys", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", "objc2-ui-kit 0.3.2", @@ -7052,8 +6989,8 @@ dependencies = [ "tao-macros", "unicode-segmentation", "url", - "windows 0.62.2", - "windows-core 0.62.2", + "windows", + "windows-core", "windows-version", "x11-dl", ] @@ -7088,14 +7025,14 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.12.0" +version = "2.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb20ef8e6f97d6fe03039666cd82861f09a38b56291fa2f0f9fe140023f61c1a" +checksum = "f316751027fc2644221d1a448564d519efb07067fda584879d9cda966391d212" dependencies = [ "anyhow", "bytes", "cookie", - "dirs 7.0.0", + "dirs", "dunce", "embed_plist", "getrandom 0.3.4", @@ -7109,7 +7046,7 @@ dependencies = [ "log", "mime", "muda 0.20.0", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", "objc2-ui-kit 0.3.2", @@ -7135,18 +7072,18 @@ dependencies = [ "webkit2gtk", "webview2-com", "window-vibrancy", - "windows 0.62.2", + "windows", ] [[package]] name = "tauri-build" -version = "2.7.0" +version = "2.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b5ae674f48836f5dd2eeaf9e221c095bd3e78a8d0439c77ca93b48740a1b644" +checksum = "641dd5fd297c99ab92717b0428cca5b9c6f960b2ac96ca131b3eebc9d70b8ddc" dependencies = [ "anyhow", "cargo_toml", - "dirs 7.0.0", + "dirs", "glob", "heck 0.5.0", "json-patch", @@ -7154,6 +7091,8 @@ dependencies = [ "semver", "serde", "serde_json", + "static_vcruntime", + "strsim", "tauri-utils", "tauri-winres", "walkdir", @@ -7161,11 +7100,11 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.7.0" +version = "2.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3926b73ac01df7c14f19ff872cd56e67213a87acc0000ea37ddb300f3d11a3e3" +checksum = "a6585c5b536c00f039d12ce70a9755172d5423bbcfd3969863baa70314c3e02f" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", "brotli", "ico", "json-patch", @@ -7188,9 +7127,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.7.0" +version = "2.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d21d0fa2c0529972ea6ecaf7404fcf40efac098eda0beb06ca682f41e33a6aa5" +checksum = "e2e83a0cfa1bae376e8fbbdc0b1692707aed50cd6072ce85cae4789af5d6c19f" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -7202,9 +7141,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.7.0" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9ff3ebb9fda56ceb93d46f6cbb126bae82951bf43498543a5163dde5def49a1" +checksum = "67fb21a77e8f94e8beb3325e583102488659365af0a3948b7ea244c5b779c291" dependencies = [ "anyhow", "glob", @@ -7218,9 +7157,9 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.8.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7527c5fd1678032d116c1a82e5d609c67370e56f858ae6cfd376bbca37fe0490" +checksum = "b7461aaacf1901915ea7b9f5cd74f8224a351ed96af0a62c07fce934003cb34b" dependencies = [ "log", "raw-window-handle", @@ -7236,9 +7175,9 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.6.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "466eb32466fe5021b6728b06862f9ff14a9f7e1af890047654e03a96d7c0e1bb" +checksum = "5d58eb1d4984e535f47a642ffec09a2da6f5c18a12b5902d12126cb7626d628b" dependencies = [ "anyhow", "dunce", @@ -7254,15 +7193,15 @@ dependencies = [ "tauri-plugin", "tauri-utils", "thiserror 2.0.21", - "toml 1.1.6+spec-1.1.0", + "toml 1.1.8+spec-1.1.0", "url", ] [[package]] name = "tauri-plugin-global-shortcut" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd2e1f725891a1613af8f25bf918ba3357654b0fd3f2d794c0ce76cbdd92ed2" +checksum = "93ff17919fe09852d269bd37b1d3d2e993b9dbb514afe7acbf3346c1d3627e2d" dependencies = [ "global-hotkey", "log", @@ -7275,9 +7214,9 @@ dependencies = [ [[package]] name = "tauri-plugin-opener" -version = "2.6.0" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4cf2c5723e6fe265a907591d5fae6b8b94edde39ad3876fdf425acf8d71f9b6" +checksum = "53810be1b4fed22bb6ac3f4cab5a2b80d9391d1af436bda145607532bc0bb219" dependencies = [ "dunce", "glob", @@ -7291,17 +7230,18 @@ dependencies = [ "tauri-plugin", "thiserror 2.0.21", "url", - "windows 0.61.3", + "windows", "zbus", ] [[package]] name = "tauri-plugin-shell" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "094bdbc47e5efe36544ba21b3a53ab5c724150236cf55e6c9be46191deb6eab6" +checksum = "8567d42b2c7264355daa1df415ec77f52aa42e885924c86a969be2e920e05521" dependencies = [ "encoding_rs", + "libc", "log", "open", "os_pipe", @@ -7314,13 +7254,14 @@ dependencies = [ "tauri-plugin", "thiserror 2.0.21", "tokio", + "windows-sys 0.60.2", ] [[package]] name = "tauri-plugin-single-instance" -version = "2.5.0" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bed24ed0f31939002fad4568e04ba87ba717cd22f85318b867fc427ab88e11b" +checksum = "561cd99484561bc39c954768e7b41a66cebbe1ac3d9d081c34361f740c489e2c" dependencies = [ "serde", "serde_json", @@ -7328,22 +7269,23 @@ dependencies = [ "thiserror 2.0.21", "tokio", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.61.2", "zbus", ] [[package]] name = "tauri-plugin-updater" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fae4783480c5d97373b98ae9f2e70158ca992cdf29e04b236a42b1f82b1b3804" +checksum = "7259989d4fe11b2bf51f7d671642249b1837c4ae2da1430dc713ae38f98ceeec" dependencies = [ "base64 0.22.1", - "dirs 6.0.0", + "dirs", "flate2", "futures-util", "http", - "infer 0.19.0", + "infer", + "libc", "log", "minisign-verify", "osakit", @@ -7361,22 +7303,21 @@ dependencies = [ "time", "tokio", "url", - "windows-sys 0.60.2", - "zip", + "windows-sys 0.61.2", ] [[package]] name = "tauri-runtime" -version = "2.12.0" +version = "2.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e6d5ef76985b32ff012a43b58df205d25a285e400ca878afcacddc5d5f3238" +checksum = "7c55766d99cea69055904d1735b93c2049302b2e09effd462120deb5581d78e9" dependencies = [ "cookie", "dpi", "gtk", "http", "jni 0.21.1", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-ui-kit 0.3.2", "objc2-web-kit", "raw-window-handle", @@ -7387,20 +7328,20 @@ dependencies = [ "url", "webkit2gtk", "webview2-com", - "windows 0.62.2", + "windows", ] [[package]] name = "tauri-runtime-wry" -version = "2.12.0" +version = "2.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa829eb69860cf1fb0bedb21d2d5f1effce3527d054a68ca1cd7355c654400a3" +checksum = "8d61892587aea2a85245bcaec98c6fe46268874c0a0deae5535fb71ca7b93eae" dependencies = [ "gtk", "http", "jni 0.21.1", "log", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "once_cell", "percent-encoding", @@ -7412,15 +7353,15 @@ dependencies = [ "url", "webkit2gtk", "webview2-com", - "windows 0.62.2", + "windows", "wry", ] [[package]] name = "tauri-utils" -version = "2.10.0" +version = "2.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd257082deff79550de3409ed146104aeaf86fe38649615b04a304144939677" +checksum = "362ab21cd4cc713f2a02b1a9b5688198b1541cfb6907c4281e9190e0f0ef4aa3" dependencies = [ "anyhow", "brotli", @@ -7430,7 +7371,7 @@ dependencies = [ "dunce", "glob", "http", - "infer 0.22.0", + "infer", "json-patch", "log", "memchr", @@ -7447,7 +7388,7 @@ dependencies = [ "serde_with", "swift-rs", "thiserror 2.0.21", - "toml 1.1.6+spec-1.1.0", + "toml 1.1.8+spec-1.1.0", "url", "urlpattern", "uuid", @@ -7456,13 +7397,13 @@ dependencies = [ [[package]] name = "tauri-winres" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" +checksum = "c52bb6904475a6ca662f15ef787f18ade61d5740a1ee12c45d3b748efdb6f796" dependencies = [ "dunce", "embed-resource", - "toml 1.1.6+spec-1.1.0", + "toml 1.1.8+spec-1.1.0", ] [[package]] @@ -7472,9 +7413,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.3", "once_cell", - "rustix 1.1.4", + "rustix 1.1.5", "windows-sys 0.61.2", ] @@ -7530,7 +7471,7 @@ checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -7654,24 +7595,15 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf0ded5c4e56918d8f8a339e1bb67d038d3bc6d144ac407904015ba2e4cde9b" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" [[package]] name = "tokio" -version = "1.53.1" +version = "1.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" +checksum = "a0c168a474b95bfecfe908a65d4bdffc523144b649a74c09c286afb35d53e0bc" dependencies = [ "bytes", "libc", @@ -7683,9 +7615,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.5" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c85f2c3ef0b1cd58b36682f4b17aaa995f0e5db534d85692b4903abce21f67" +checksum = "c9cc2678c2cdd569ef8215e2afd7954ada2ae20b4fdd2c5fe6139a3b02d105db" dependencies = [ "rustls", "tokio", @@ -7693,9 +7625,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" +checksum = "e464cf451ba96ebfc6f9b6542f17ee8b8956e33f1e40d9690624e59d7a7f8a4b" dependencies = [ "bytes", "futures-core", @@ -7718,14 +7650,14 @@ dependencies = [ [[package]] name = "toml" -version = "1.1.6+spec-1.1.0" +version = "1.1.8+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "920602543f0911ab71da12c50d59701da54c196d1a2bf5cb4b75667f137a406a" +checksum = "20489e00e4d8741d6be680764cc12e270655e375a20d1011e844a9c3379e678d" dependencies = [ "indexmap 2.14.2", "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 1.1.1+spec-1.1.0", + "serde_spanned 1.1.2", + "toml_datetime 1.1.2+spec-1.1.0", "toml_parser", "toml_writer", "winnow 1.0.4", @@ -7742,9 +7674,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.1.1+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +checksum = "2b86d767906c6c42421dcba507eb9d203e779497710a47782a224bb871653053" dependencies = [ "serde_core", ] @@ -7775,12 +7707,12 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.15+spec-1.1.0" +version = "0.25.17+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +checksum = "e3641d5bbb5349a79e1020a242d251efbc546ad8048d133958323ce9c40a9c9c" dependencies = [ "indexmap 2.14.2", - "toml_datetime 1.1.1+spec-1.1.0", + "toml_datetime 1.1.2+spec-1.1.0", "toml_parser", "toml_writer", "winnow 1.0.4", @@ -7788,18 +7720,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.1.3+spec-1.1.0" +version = "1.1.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +checksum = "baa693a8032d7e1cada7d0041e96126df243179ff061456783ac7f12bda4744c" dependencies = [ "winnow 1.0.4", ] [[package]] name = "toml_writer" -version = "1.1.2+spec-1.1.0" +version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" +checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770" [[package]] name = "tower" @@ -7885,10 +7817,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2b9c52859a94554803ccd4a24b98f74148ebc73b90676d783f3490b1bff9d72" dependencies = [ "crossbeam-channel", - "dirs 7.0.0", + "dirs", "libappindicator", "muda 0.20.0", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-core-graphics", @@ -7976,9 +7908,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicase" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" +checksum = "357cc3acc6a036009fd6c973ed009037c732d60d0b4f6c673e9041497482a28f" [[package]] name = "unicode-bidi" @@ -7988,9 +7920,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.24" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563" [[package]] name = "unicode-linebreak" @@ -8000,9 +7932,9 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" [[package]] name = "unicode-normalization" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" +checksum = "75cd3fb03d5288b3ba9a1ee103ac7e9cbb59f0b03d64f8ddfcc04dd42758a85d" dependencies = [ "tinyvec", ] @@ -8110,9 +8042,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.26.1" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +checksum = "7cc1186384beb7dd8eedea376413fd654937285ea6c9cfbb928dc3043ea4b606" dependencies = [ "getrandom 0.4.3", "js-sys", @@ -8178,7 +8110,7 @@ checksum = "8191d73ececf73fc94e65809bf0e667525a0bcff9aeeb8d042a4173a508332a1" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", ] [[package]] @@ -8202,9 +8134,9 @@ dependencies = [ [[package]] name = "want" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +checksum = "ec4cdd0dd910afe868b7ef477227d8d538b46b3075031afee8a9f2acb0a2ed0b" dependencies = [ "try-lock", ] @@ -8226,9 +8158,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.128" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +checksum = "9bb54f33acc68fd454578d9820b0bde1a1a3d17aa17bb7b6595806d02886d409" dependencies = [ "cfg-if", "once_cell", @@ -8239,19 +8171,20 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.78" +version = "0.4.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef4c5d3d2cdf5c54f4231181768f5510842e350db025faf1f7163b1030ed928" +checksum = "3cbab34de2d982e9b48e18d216d04c4a6f641066ff19ffb699980f591ee3610e" dependencies = [ "js-sys", + "tokio", "wasm-bindgen", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.128" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +checksum = "2e29d0c35b16e224a7eeb5cd2d25e3e1968fbd65604117b44d3b789d00ee8535" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8259,22 +8192,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.128" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +checksum = "6f501a8bc3719dba86ef8ae4728879c08001bea749eb1333ac5b91e040e2a6b7" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.128" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +checksum = "23f0c9c52aa7cd7d77769a4cfe2a9adb1b331f489a41d912ce14513d5ab995c6" dependencies = [ "unicode-ident", ] @@ -8300,7 +8233,7 @@ checksum = "38a91b4eaddff87b1cd1074985e3713da4af2c49742d1b356b2c01670a67a078" dependencies = [ "cc", "downcast-rs", - "rustix 1.1.4", + "rustix 1.1.5", "scoped-tls", "smallvec", "wayland-sys", @@ -8313,7 +8246,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c36a0f861ad76d0901f2800b46321410d9f73f2ea88aac0650d86c32688073" dependencies = [ "bitflags 2.13.2", - "rustix 1.1.4", + "rustix 1.1.5", "wayland-backend", "wayland-scanner", ] @@ -8335,7 +8268,7 @@ version = "0.31.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a52d18780be9b1314328a3de5f930b73d2200112e3849ca6cb11822793fb34d" dependencies = [ - "rustix 1.1.4", + "rustix 1.1.5", "wayland-client", "xcursor", ] @@ -8403,9 +8336,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.105" +version = "0.3.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +checksum = "88261b9deccee56594c11a3460c462c41f58d148598fe70ad77070126a68aba4" dependencies = [ "js-sys", "wasm-bindgen", @@ -8442,7 +8375,7 @@ dependencies = [ "jni 0.22.4", "log", "ndk-context", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", "url", @@ -8495,9 +8428,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b" +checksum = "58ec80e73fd8baf57bf0d9615554c75348bda990d6d5bbeab964dd068319fecb" dependencies = [ "rustls-pki-types", ] @@ -8510,8 +8443,8 @@ checksum = "3f89fca7a704cee10dcb3654c1dbb8941d1783132f1917358af75bec37a7d7e6" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows 0.62.2", - "windows-core 0.62.2", + "windows", + "windows-core", ] [[package]] @@ -8532,8 +8465,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3a07132775117d6065853d9d1178157b8c90e228de47129d6bce2c7edebedfb" dependencies = [ "thiserror 2.0.21", - "windows 0.62.2", - "windows-core 0.62.2", + "windows", + "windows-core", ] [[package]] @@ -8639,7 +8572,7 @@ dependencies = [ "log", "naga", "naga-types", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-core-foundation", "objc2-core-graphics", "objc2-foundation 0.3.2", @@ -8660,8 +8593,8 @@ dependencies = [ "thiserror 2.0.21", "wgpu-naga-bridge", "wgpu-types", - "windows 0.62.2", - "windows-core 0.62.2", + "windows", + "windows-core", ] [[package]] @@ -8725,7 +8658,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "111e51caca442cafd9bab396628ac4d814880eaea4e63dfd76a12e9f342b5580" dependencies = [ - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -8735,38 +8668,16 @@ dependencies = [ "windows-version", ] -[[package]] -name = "windows" -version = "0.61.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" -dependencies = [ - "windows-collections 0.2.0", - "windows-core 0.61.2", - "windows-future 0.2.1", - "windows-link 0.1.3", - "windows-numerics 0.2.0", -] - [[package]] name = "windows" version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" dependencies = [ - "windows-collections 0.3.2", - "windows-core 0.62.2", - "windows-future 0.3.2", - "windows-numerics 0.3.1", -] - -[[package]] -name = "windows-collections" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" -dependencies = [ - "windows-core 0.61.2", + "windows-collections", + "windows-core", + "windows-future", + "windows-numerics", ] [[package]] @@ -8775,20 +8686,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" dependencies = [ - "windows-core 0.62.2", -] - -[[package]] -name = "windows-core" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", + "windows-core", ] [[package]] @@ -8799,20 +8697,9 @@ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - -[[package]] -name = "windows-future" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" -dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", - "windows-threading 0.1.0", + "windows-link", + "windows-result", + "windows-strings", ] [[package]] @@ -8821,9 +8708,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ - "windows-core 0.62.2", - "windows-link 0.2.1", - "windows-threading 0.2.1", + "windows-core", + "windows-link", + "windows-threading", ] [[package]] @@ -8848,36 +8735,20 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-numerics" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" -dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", -] - [[package]] name = "windows-numerics" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ - "windows-core 0.62.2", - "windows-link 0.2.1", + "windows-core", + "windows-link", ] [[package]] @@ -8886,18 +8757,9 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - -[[package]] -name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link 0.1.3", + "windows-link", + "windows-result", + "windows-strings", ] [[package]] @@ -8906,16 +8768,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] @@ -8924,7 +8777,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -8978,7 +8831,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -9033,7 +8886,7 @@ version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.2.1", + "windows-link", "windows_aarch64_gnullvm 0.53.1", "windows_aarch64_msvc 0.53.1", "windows_i686_gnu 0.53.1", @@ -9044,22 +8897,13 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] -[[package]] -name = "windows-threading" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" -dependencies = [ - "windows-link 0.1.3", -] - [[package]] name = "windows-threading" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -9068,7 +8912,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -9274,7 +9118,7 @@ dependencies = [ "libc", "memmap2", "ndk", - "objc2 0.5.2", + "objc2 0.5.3", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", "objc2-ui-kit 0.2.2", @@ -9321,16 +9165,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.55.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" -dependencies = [ - "cfg-if", - "windows-sys 0.59.0", -] - [[package]] name = "winreg" version = "0.56.0" @@ -9349,14 +9183,14 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "wl-clipboard-rs" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9651471a32e87d96ef3a127715382b2d11cc7c8bb9822ded8a7cc94072eb0a3" +checksum = "4d7888ccd4896447b2d14d3a9350a85df2aeb6f181e2e7a31349d104ac46cac1" dependencies = [ "libc", "log", "os_pipe", - "rustix 1.1.4", + "rustix 1.1.5", "thiserror 2.0.21", "tree_magic_mini", "wayland-backend", @@ -9394,7 +9228,7 @@ dependencies = [ "block2 0.6.2", "cookie", "crossbeam-channel", - "dirs 7.0.0", + "dirs", "dom_query", "dpi", "dunce", @@ -9405,7 +9239,7 @@ dependencies = [ "jni 0.21.1", "libc", "ndk", - "objc2 0.6.4", + "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -9422,8 +9256,8 @@ dependencies = [ "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows 0.62.2", - "windows-core 0.62.2", + "windows", + "windows-core", "windows-version", "x11-dl", ] @@ -9460,7 +9294,7 @@ dependencies = [ "libc", "libloading 0.8.9", "once_cell", - "rustix 1.1.4", + "rustix 1.1.5", "x11rb-protocol", ] @@ -9477,7 +9311,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "rustix 1.1.4", + "rustix 1.1.5", ] [[package]] @@ -9530,9 +9364,9 @@ checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" [[package]] name = "xxhash-rust" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aee1b19627c7c60102ab80d3a9cbe18de90bfe03bfa6c3715447681f0e8c8af6" +checksum = "550a2b930b62486a393c52d5c3b84bff264b28aa437ed64694d31e93b1757af7" [[package]] name = "yazi" @@ -9570,7 +9404,7 @@ checksum = "ec8ebde2db3681e8c9980cc27822030e68752690ddfa9473e739aeb4dbde6d71" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", "synstructure", ] @@ -9596,7 +9430,7 @@ dependencies = [ "hex", "libc", "ordered-stream", - "rustix 1.1.4", + "rustix 1.1.5", "serde", "serde_repr", "tracing", @@ -9642,7 +9476,7 @@ dependencies = [ "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", "zbus_names", "zvariant", "zvariant_utils", @@ -9650,9 +9484,9 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.3.4" +version = "4.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8bf88b4a3ff53e883001e0e0115b297a9d53c31b9c1edd2bfdd853e3428624e" +checksum = "812a12be4ead7a59e18ea8f047d08add0066b73bc62fc1467066a2472ae088dd" dependencies = [ "serde", "winnow 1.0.4", @@ -9688,18 +9522,18 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.57" +version = "0.8.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +checksum = "e5fe1f8f1b06191a00962174c61aa5005e0bb391a6d80d07e24d115c01a92ed8" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.57" +version = "0.8.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +checksum = "863ad3ac83293fb4d740aedbfdc9240dd8d1a50c1099acd76ce80ce7c7230c7f" dependencies = [ "proc-macro2", "quote", @@ -9723,15 +9557,15 @@ checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", "synstructure", ] [[package]] name = "zeroize" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +checksum = "e13084392c5e4bc371903e2935a5eaeed24905a7511356b883835e18a78f6879" [[package]] name = "zerotrie" @@ -9765,26 +9599,14 @@ checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" dependencies = [ "proc-macro2", "quote", - "syn 3.0.5", -] - -[[package]] -name = "zip" -version = "4.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caa8cd6af31c3b31c6631b8f483848b91589021b28fffe50adada48d4f4d2ed1" -dependencies = [ - "arbitrary", - "crc32fast", - "indexmap 2.14.2", - "memchr", + "syn 3.0.9", ] [[package]] name = "zlib-rs" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" +checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112" [[package]] name = "zmij" @@ -9809,9 +9631,9 @@ dependencies = [ [[package]] name = "zvariant" -version = "5.15.0" +version = "5.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1d34c27cc6cdd1f458427519dd6b8612f7b7e3f7b9a0b2355d041dda9869147" +checksum = "80bf6d6cd6a4b601acb64cfb8284cdc643fcfa75ef26ae3c46ec8aa4e8a1fbb7" dependencies = [ "endi", "enumflags2", @@ -9824,14 +9646,14 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "5.15.0" +version = "5.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864155e69b4352db0c7f374917bf45d1e0c8d17659c8b3dbf9795f3673f8c497" +checksum = "ef2672456ba1cb54b5eaec136e63135b3c7495fb938e53b28a62e633496d486d" dependencies = [ "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 3.0.5", + "syn 3.0.9", "zvariant_utils", ] @@ -9844,6 +9666,6 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 3.0.5", + "syn 3.0.9", "winnow 1.0.4", ] diff --git a/Cargo.toml b/Cargo.toml index 8a316582..0ffb3786 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,7 +40,7 @@ tauri-plugin-opener = "2.6" tauri-plugin-single-instance = "2.5" tauri-plugin-shell = "2.4" tauri-plugin-dialog = "2.8" -tauri-plugin-updater = "2.13" +tauri-plugin-updater = { version = "2.14", default-features = false, features = ["rustls-tls", "system-proxy"] } reqwest = { version = "0.13", default-features = false, features = ["rustls-no-provider", "system-proxy"] } rustls = { version = "0.23", default-features = false, features = ["ring"] } tauri-plugin-global-shortcut = "2.4" diff --git a/THIRD-PARTY-BUNDLED.md b/THIRD-PARTY-BUNDLED.md index 06b17ad5..59b2023e 100644 --- a/THIRD-PARTY-BUNDLED.md +++ b/THIRD-PARTY-BUNDLED.md @@ -25,21 +25,21 @@ with the crates that carry it. | Package | Version | Licence | | --- | --- | --- | -| `@tauri-apps/api` | 2.12.0 | Apache-2.0 OR MIT | -| `@tauri-apps/plugin-dialog` | 2.8.0 | MIT OR Apache-2.0 | -| `@tauri-apps/plugin-opener` | 2.6.0 | MIT OR Apache-2.0 | -| `argparse` | 3.0.2 | PSF-2.0 | +| `@tauri-apps/api` | 2.12.4 | Apache-2.0 OR MIT | +| `@tauri-apps/plugin-dialog` | 2.8.3 | MIT OR Apache-2.0 | +| `@tauri-apps/plugin-opener` | 2.7.2 | MIT OR Apache-2.0 | +| `argparse` | 3.0.3 | PSF-2.0 | | `entities` | 8.1.0 | BSD-2-Clause | | `linkify-it` | 6.1.0 | MIT | -| `markdown-it` | 15.0.2 | MIT | +| `markdown-it` | 15.0.3 | MIT | | `mdurl` | 2.1.0 | MIT | | `punycode.js` | 2.3.1 | MIT | -| `react` | 19.3.0 | MIT | -| `react-dom` | 19.3.0 | MIT | +| `react` | 19.3.1 | MIT | +| `react-dom` | 19.3.1 | MIT | | `scheduler` | 0.28.0 | MIT | | `uc.micro` | 3.0.0 | MIT | -## In the core (442 crates) +## In the core (425 crates) | Crate | Version | Licence | | --- | --- | --- | @@ -54,7 +54,7 @@ with the crates that carry it. | `alloc-stdlib` | 0.3.0 | BSD-3-Clause | | `allocator-api2` | 0.2.21 | MIT OR Apache-2.0 | | `anyhow` | 1.0.104 | MIT OR Apache-2.0 | -| `arboard` | 3.6.1 | MIT OR Apache-2.0 | +| `arboard` | 3.7.0 | MIT OR Apache-2.0 | | `arrayref` | 0.3.9 | BSD-2-Clause | | `arrayvec` | 0.7.8 | MIT OR Apache-2.0 | | `atomic-waker` | 1.1.2 | Apache-2.0 OR MIT | @@ -70,12 +70,10 @@ with the crates that carry it. | `brotli` | 9.0.0 | BSD-3-Clause AND MIT | | `brotli-decompressor` | 6.0.1 | BSD-3-Clause/MIT | | `bytemuck` | 1.25.2 | Zlib OR Apache-2.0 OR MIT | -| `byteorder` | 1.5.0 | Unlicense OR MIT | | `byteorder-lite` | 0.1.0 | Unlicense OR MIT | | `bytes` | 1.12.1 | MIT | | `cfb` | 0.14.0 | MIT | -| `cfb` | 0.7.3 | MIT | -| `cfg-if` | 1.0.4 | MIT OR Apache-2.0 | +| `cfg-if` | 1.0.5 | MIT OR Apache-2.0 | | `cgl` | 0.3.2 | MIT / Apache-2.0 | | `chrono` | 0.4.45 | MIT OR Apache-2.0 | | `clipboard-win` | 5.4.1 | BSL-1.0 | @@ -94,14 +92,14 @@ with the crates that carry it. | `core-graphics-types` | 0.2.0 | MIT OR Apache-2.0 | | `core_detect` | 1.0.0 | MIT/Apache-2.0 | | `cpufeatures` | 0.3.1 | MIT OR Apache-2.0 | -| `crc32fast` | 1.5.2 | MIT OR Apache-2.0 | +| `crc32fast` | 1.5.3 | MIT OR Apache-2.0 | | `critical-section` | 1.2.0 | MIT OR Apache-2.0 | | `crossbeam-channel` | 0.5.17 | MIT OR Apache-2.0 | | `crossbeam-utils` | 0.8.23 | MIT OR Apache-2.0 | | `ctor` | 1.0.13 | Apache-2.0 OR MIT | | `cursor-icon` | 1.2.0 | MIT OR Apache-2.0 OR Zlib | | `data-url` | 0.3.2 | MIT OR Apache-2.0 | -| `deranged` | 0.5.8 | MIT OR Apache-2.0 | +| `deranged` | 0.5.9 | MIT OR Apache-2.0 | | `derive_more` | 2.1.1 | MIT | | `dirs` | 7.0.0 | MIT OR Apache-2.0 | | `dirs-sys` | 0.5.0 | MIT OR Apache-2.0 | @@ -110,8 +108,8 @@ with the crates that carry it. | `dpi` | 0.1.2 | Apache-2.0 AND MIT | | `dunce` | 1.0.5 | CC0-1.0 OR MIT-0 OR Apache-2.0 | | `embed_plist` | 1.2.2 | MIT OR Apache-2.0 | -| `encoding_rs` | 0.8.41 | (Apache-2.0 OR MIT) AND BSD-3-Clause | -| `equivalent` | 1.0.2 | Apache-2.0 OR MIT | +| `encoding_rs` | 0.8.42 | (Apache-2.0 OR MIT) AND BSD-3-Clause | +| `equivalent` | 1.0.3 | Apache-2.0 OR MIT | | `erased-serde` | 0.4.10 | MIT OR Apache-2.0 | | `errno` | 0.3.14 | MIT OR Apache-2.0 | | `error-code` | 3.4.0 | BSL-1.0 | @@ -129,7 +127,7 @@ with the crates that carry it. | `float-cmp` | 0.9.0 | MIT | | `fnv` | 1.0.7 | Apache-2.0 / MIT | | `foldhash` | 0.2.0 | Zlib | -| `font-types` | 0.12.5 | MIT OR Apache-2.0 | +| `font-types` | 0.12.7 | MIT OR Apache-2.0 | | `fontdb` | 0.24.0 | MIT | | `fontique` | 0.11.1 | Apache-2.0 OR MIT | | `foreign-types` | 0.5.0 | MIT/Apache-2.0 | @@ -142,6 +140,7 @@ with the crates that carry it. | `futures-util` | 0.3.34 | MIT OR Apache-2.0 | | `getrandom` | 0.2.17 | MIT OR Apache-2.0 | | `getrandom` | 0.3.4 | MIT OR Apache-2.0 | +| `getrandom` | 0.4.3 | MIT OR Apache-2.0 | | `gif` | 0.14.2 | MIT OR Apache-2.0 | | `glob` | 0.3.4 | MIT OR Apache-2.0 | | `global-hotkey` | 0.8.0 | Apache-2.0 OR MIT | @@ -161,9 +160,9 @@ with the crates that carry it. | `http-body` | 1.1.0 | MIT | | `http-body-util` | 0.1.5 | MIT | | `httparse` | 1.10.1 | MIT OR Apache-2.0 | -| `hyper` | 1.11.1 | MIT | +| `hyper` | 1.12.0 | MIT | | `hyper-rustls` | 0.27.10 | Apache-2.0 OR ISC OR MIT | -| `hyper-util` | 0.1.20 | MIT | +| `hyper-util` | 0.1.21 | MIT | | `i-slint-backend-selector` | 1.18.1 | GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 | | `i-slint-backend-winit` | 1.18.1 | GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 | | `i-slint-common` | 1.18.1 | GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 | @@ -189,7 +188,6 @@ with the crates that carry it. | `image-webp` | 0.2.4 | MIT OR Apache-2.0 | | `imagesize` | 0.15.0 | MIT | | `indexmap` | 2.14.2 | Apache-2.0 OR MIT | -| `infer` | 0.19.0 | MIT | | `infer` | 0.22.0 | MIT | | `ipnet` | 2.12.2 | MIT OR Apache-2.0 | | `itoa` | 1.0.18 | MIT OR Apache-2.0 | @@ -198,8 +196,8 @@ with the crates that carry it. | `keyboard-types` | 0.7.0 | MIT OR Apache-2.0 | | `keyboard-types` | 0.8.3 | MIT OR Apache-2.0 | | `kurbo` | 0.13.1 | Apache-2.0 OR MIT | -| `lazy_static` | 1.5.0 | MIT OR Apache-2.0 | -| `libc` | 0.2.189 | MIT OR Apache-2.0 | +| `lazy_static` | 1.5.1 | MIT OR Apache-2.0 | +| `libc` | 0.2.191 | MIT OR Apache-2.0 | | `libloading` | 0.8.9 | ISC | | `libm` | 0.2.16 | MIT | | `libsqlite3-sys` | 0.38.2 | MIT | @@ -207,30 +205,29 @@ with the crates that carry it. | `litemap` | 0.8.3 | Unicode-3.0 | | `lock_api` | 0.4.14 | MIT OR Apache-2.0 | | `log` | 0.4.34 | MIT OR Apache-2.0 | -| `lyon_algorithms` | 1.0.21 | MIT OR Apache-2.0 | +| `lyon_algorithms` | 1.0.22 | MIT OR Apache-2.0 | | `lyon_extra` | 1.1.0 | MIT OR Apache-2.0 | -| `lyon_geom` | 1.0.19 | MIT OR Apache-2.0 | +| `lyon_geom` | 1.0.20 | MIT OR Apache-2.0 | | `lyon_path` | 1.0.19 | MIT OR Apache-2.0 | | `memchr` | 2.8.3 | Unlicense OR MIT | | `memmap2` | 0.9.11 | MIT OR Apache-2.0 | | `memoffset` | 0.9.1 | MIT | | `mime` | 0.3.17 | MIT OR Apache-2.0 | -| `minisign-verify` | 0.2.5 | MIT | +| `minisign-verify` | 0.3.0 | MIT | | `miniz_oxide` | 0.8.9 | MIT OR Zlib OR Apache-2.0 | | `miniz_oxide` | 0.9.1 | MIT OR Zlib OR Apache-2.0 | -| `mio` | 1.2.3 | MIT | +| `mio` | 1.2.4 | MIT | | `moxcms` | 0.8.1 | BSD-3-Clause OR Apache-2.0 | | `muda` | 0.19.3 | Apache-2.0 OR MIT | | `muda` | 0.20.0 | Apache-2.0 OR MIT | -| `multiversion` | 0.9.0 | MIT OR Apache-2.0 | | `naga` | 30.0.1 | MIT OR Apache-2.0 | | `naga-types` | 30.0.1 | MIT OR Apache-2.0 | | `num-complex` | 0.4.6 | MIT OR Apache-2.0 | | `num-conv` | 0.2.2 | MIT OR Apache-2.0 | | `num-traits` | 0.2.19 | MIT OR Apache-2.0 | | `objc-sys` | 0.3.5 | MIT | -| `objc2` | 0.5.2 | MIT | -| `objc2` | 0.6.4 | MIT | +| `objc2` | 0.5.3 | MIT | +| `objc2` | 0.6.5 | MIT | | `objc2-app-kit` | 0.2.2 | MIT | | `objc2-app-kit` | 0.3.2 | Zlib OR Apache-2.0 OR MIT | | `objc2-application-services` | 0.3.2 | Zlib OR Apache-2.0 OR MIT | @@ -267,7 +264,7 @@ with the crates that carry it. | `osakit` | 0.3.1 | MIT OR Apache-2.0 | | `parking_lot` | 0.12.5 | MIT OR Apache-2.0 | | `parking_lot_core` | 0.9.12 | MIT OR Apache-2.0 | -| `parlance` | 0.1.0 | Apache-2.0 OR MIT | +| `parlance` | 0.1.1 | Apache-2.0 OR MIT | | `parley` | 0.11.1 | Apache-2.0 OR MIT | | `parley_data` | 0.11.1 | Apache-2.0 OR MIT | | `percent-encoding` | 2.3.2 | MIT OR Apache-2.0 | @@ -276,14 +273,14 @@ with the crates that carry it. | `pico-args` | 0.5.0 | MIT | | `pin-project` | 1.1.13 | Apache-2.0 OR MIT | | `pin-project-lite` | 0.2.17 | Apache-2.0 OR MIT | -| `pin-utils` | 0.1.0 | MIT OR Apache-2.0 | +| `pin-utils` | 0.1.1 | MIT OR Apache-2.0 | | `pin-weak` | 1.1.0 | MIT | -| `plist` | 1.10.1 | MIT | +| `plist` | 1.10.2 | MIT | | `png` | 0.18.1 | MIT OR Apache-2.0 | | `polycool` | 0.4.0 | MIT OR Apache-2.0 | | `portable-atomic` | 1.15.0 | Apache-2.0 OR MIT | | `potential_utf` | 0.1.6 | Unicode-3.0 | -| `powerfmt` | 0.2.0 | MIT OR Apache-2.0 | +| `powerfmt` | 0.2.1 | MIT OR Apache-2.0 | | `presser` | 0.3.1 | MIT OR Apache-2.0 | | `profiling` | 1.0.18 | MIT OR Apache-2.0 | | `pulldown-cmark` | 0.13.4 | MIT | @@ -307,11 +304,11 @@ with the crates that carry it. | `roxmltree` | 0.21.1 | MIT OR Apache-2.0 | | `rusqlite` | 0.40.2 | MIT | | `rustc-hash` | 1.1.0 | Apache-2.0/MIT | -| `rustix` | 1.1.4 | Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT | +| `rustix` | 1.1.5 | Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT | | `rustls` | 0.23.46 | Apache-2.0 OR ISC OR MIT | | `rustls-pki-types` | 1.15.1 | MIT OR Apache-2.0 | | `rustls-platform-verifier` | 0.7.1 | MIT OR Apache-2.0 | -| `rustls-webpki` | 0.103.15 | ISC | +| `rustls-webpki` | 0.103.16 | ISC | | `same-file` | 1.0.6 | Unlicense/MIT | | `scoped-tls-hkt` | 0.1.5 | MIT/Apache-2.0 | | `scopeguard` | 1.2.0 | MIT OR Apache-2.0 | @@ -321,25 +318,22 @@ with the crates that carry it. | `serde` | 1.0.229 | MIT OR Apache-2.0 | | `serde-untagged` | 0.1.9 | MIT OR Apache-2.0 | | `serde_core` | 1.0.229 | MIT OR Apache-2.0 | -| `serde_json` | 1.0.151 | MIT OR Apache-2.0 | -| `serde_spanned` | 1.1.1 | MIT OR Apache-2.0 | -| `serde_with` | 3.23.0 | MIT OR Apache-2.0 | +| `serde_json` | 1.0.154 | MIT OR Apache-2.0 | +| `serde_spanned` | 1.1.2 | MIT OR Apache-2.0 | +| `serde_with` | 3.24.0 | MIT OR Apache-2.0 | | `serialize-to-javascript` | 0.1.2 | MIT OR Apache-2.0 | | `shared_child` | 1.1.2 | MIT | -| `sigchld` | 0.2.5 | MIT | -| `signal-hook` | 0.4.4 | MIT OR Apache-2.0 | -| `signal-hook-registry` | 1.4.8 | MIT OR Apache-2.0 | | `simd-adler32` | 0.3.10 | MIT | | `simdutf8` | 0.1.5 | MIT OR Apache-2.0 | | `simplecss` | 0.2.2 | Apache-2.0 OR MIT | -| `siphasher` | 1.0.3 | MIT/Apache-2.0 | +| `siphasher` | 1.0.4 | MIT OR Apache-2.0 | | `skia-bindings` | 0.153.3 | MIT | | `skia-safe` | 0.153.3 | MIT | | `skrifa` | 0.44.0 | MIT OR Apache-2.0 | | `slab` | 0.4.12 | MIT | | `slint` | 1.18.1 | GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 | | `slotmap` | 1.1.1 | Zlib | -| `smallvec` | 1.16.1 | MIT OR Apache-2.0 | +| `smallvec` | 1.16.3 | MIT OR Apache-2.0 | | `smol_str` | 0.2.2 | MIT OR Apache-2.0 | | `socket2` | 0.6.5 | MIT OR Apache-2.0 | | `softbuffer` | 0.4.8 | MIT OR Apache-2.0 | @@ -369,17 +363,17 @@ with the crates that carry it. | `taffy` | 0.10.1 | MIT | | `tao` | 0.37.1 | Apache-2.0 | | `tar` | 0.4.46 | MIT OR Apache-2.0 | -| `tauri` | 2.12.0 | Apache-2.0 OR MIT | -| `tauri-plugin-dialog` | 2.8.0 | Apache-2.0 OR MIT | -| `tauri-plugin-fs` | 2.6.0 | Apache-2.0 OR MIT | -| `tauri-plugin-global-shortcut` | 2.4.0 | Apache-2.0 OR MIT | -| `tauri-plugin-opener` | 2.6.0 | Apache-2.0 OR MIT | -| `tauri-plugin-shell` | 2.4.0 | Apache-2.0 OR MIT | -| `tauri-plugin-single-instance` | 2.5.0 | Apache-2.0 OR MIT | -| `tauri-plugin-updater` | 2.13.0 | Apache-2.0 OR MIT | -| `tauri-runtime` | 2.12.0 | Apache-2.0 OR MIT | -| `tauri-runtime-wry` | 2.12.0 | Apache-2.0 OR MIT | -| `tauri-utils` | 2.10.0 | Apache-2.0 OR MIT | +| `tauri` | 2.12.4 | Apache-2.0 OR MIT | +| `tauri-plugin-dialog` | 2.8.3 | Apache-2.0 OR MIT | +| `tauri-plugin-fs` | 2.7.1 | Apache-2.0 OR MIT | +| `tauri-plugin-global-shortcut` | 2.4.1 | Apache-2.0 OR MIT | +| `tauri-plugin-opener` | 2.7.2 | Apache-2.0 OR MIT | +| `tauri-plugin-shell` | 2.5.0 | Apache-2.0 OR MIT | +| `tauri-plugin-single-instance` | 2.5.4 | Apache-2.0 OR MIT | +| `tauri-plugin-updater` | 2.14.0 | Apache-2.0 OR MIT | +| `tauri-runtime` | 2.12.2 | Apache-2.0 OR MIT | +| `tauri-runtime-wry` | 2.12.2 | Apache-2.0 OR MIT | +| `tauri-utils` | 2.10.2 | Apache-2.0 OR MIT | | `tempfile` | 3.27.0 | MIT OR Apache-2.0 | | `thiserror` | 2.0.21 | MIT OR Apache-2.0 | | `tiff` | 0.11.3 | MIT | @@ -388,15 +382,14 @@ with the crates that carry it. | `tiny-skia` | 0.12.0 | BSD-3-Clause | | `tiny-skia-path` | 0.12.0 | BSD-3-Clause | | `tinystr` | 0.8.4 | Unicode-3.0 | -| `tinyvec` | 1.13.2 | Zlib OR Apache-2.0 OR MIT | -| `tinyvec_macros` | 0.1.1 | MIT OR Apache-2.0 OR Zlib | -| `tokio` | 1.53.1 | MIT | -| `tokio-rustls` | 0.26.5 | MIT OR Apache-2.0 | -| `tokio-util` | 0.7.19 | MIT | -| `toml` | 1.1.6+spec-1.1.0 | MIT OR Apache-2.0 | -| `toml_datetime` | 1.1.1+spec-1.1.0 | MIT OR Apache-2.0 | -| `toml_parser` | 1.1.3+spec-1.1.0 | MIT OR Apache-2.0 | -| `toml_writer` | 1.1.2+spec-1.1.0 | MIT OR Apache-2.0 | +| `tinyvec` | 1.13.3 | Zlib OR Apache-2.0 OR MIT | +| `tokio` | 1.54.0 | MIT | +| `tokio-rustls` | 0.26.6 | MIT OR Apache-2.0 | +| `tokio-util` | 0.7.20 | MIT | +| `toml` | 1.1.8+spec-1.1.0 | MIT OR Apache-2.0 | +| `toml_datetime` | 1.1.2+spec-1.1.0 | MIT OR Apache-2.0 | +| `toml_parser` | 1.1.5+spec-1.1.0 | MIT OR Apache-2.0 | +| `toml_writer` | 1.1.3+spec-1.1.0 | MIT OR Apache-2.0 | | `tower` | 0.5.3 | MIT | | `tower-http` | 0.6.11 | MIT | | `tower-layer` | 0.3.3 | MIT | @@ -406,11 +399,11 @@ with the crates that carry it. | `tray-icon` | 0.25.1 | MIT OR Apache-2.0 | | `try-lock` | 0.2.5 | MIT | | `typeid` | 1.0.3 | MIT OR Apache-2.0 | -| `unicase` | 2.9.0 | MIT OR Apache-2.0 | +| `unicase` | 2.10.0 | MIT OR Apache-2.0 | | `unicode-bidi` | 0.3.18 | MIT OR Apache-2.0 | -| `unicode-ident` | 1.0.24 | (MIT OR Apache-2.0) AND Unicode-3.0 | +| `unicode-ident` | 1.0.27 | (MIT OR Apache-2.0) AND Unicode-3.0 | | `unicode-linebreak` | 0.1.5 | Apache-2.0 | -| `unicode-normalization` | 0.1.25 | MIT OR Apache-2.0 | +| `unicode-normalization` | 0.1.26 | (MIT OR Apache-2.0) AND Unicode-3.0 | | `unicode-script` | 0.5.8 | MIT OR Apache-2.0 | | `unicode-segmentation` | 1.13.3 | MIT OR Apache-2.0 | | `unicode-vo` | 0.1.0 | MIT/Apache-2.0 | @@ -420,10 +413,10 @@ with the crates that carry it. | `urlpattern` | 0.6.0 | MIT | | `usvg` | 0.48.1 | Apache-2.0 OR MIT | | `utf8_iter` | 1.0.4 | Apache-2.0 OR MIT | -| `uuid` | 1.26.1 | Apache-2.0 OR MIT | +| `uuid` | 1.28.0 | Apache-2.0 OR MIT | | `vtable` | 0.5.0 | MIT OR Apache-2.0 | | `walkdir` | 2.5.0 | Unlicense/MIT | -| `want` | 0.3.1 | MIT | +| `want` | 0.3.2 | MIT | | `web-time` | 1.1.0 | MIT OR Apache-2.0 | | `webbrowser` | 1.2.4 | MIT OR Apache-2.0 | | `webview2-com` | 0.39.1 | MIT | @@ -438,22 +431,14 @@ with the crates that carry it. | `wgpu-types` | 30.0.1 | MIT OR Apache-2.0 | | `winapi-util` | 0.1.11 | Unlicense OR MIT | | `window-vibrancy` | 0.8.1 | Apache-2.0 OR MIT | -| `windows` | 0.61.3 | MIT OR Apache-2.0 | | `windows` | 0.62.2 | MIT OR Apache-2.0 | -| `windows-collections` | 0.2.0 | MIT OR Apache-2.0 | | `windows-collections` | 0.3.2 | MIT OR Apache-2.0 | -| `windows-core` | 0.61.2 | MIT OR Apache-2.0 | | `windows-core` | 0.62.2 | MIT OR Apache-2.0 | -| `windows-future` | 0.2.1 | MIT OR Apache-2.0 | | `windows-future` | 0.3.2 | MIT OR Apache-2.0 | -| `windows-link` | 0.1.3 | MIT OR Apache-2.0 | | `windows-link` | 0.2.1 | MIT OR Apache-2.0 | -| `windows-numerics` | 0.2.0 | MIT OR Apache-2.0 | | `windows-numerics` | 0.3.1 | MIT OR Apache-2.0 | | `windows-registry` | 0.6.1 | MIT OR Apache-2.0 | -| `windows-result` | 0.3.4 | MIT OR Apache-2.0 | | `windows-result` | 0.4.1 | MIT OR Apache-2.0 | -| `windows-strings` | 0.4.2 | MIT OR Apache-2.0 | | `windows-strings` | 0.5.1 | MIT OR Apache-2.0 | | `windows-sys` | 0.52.0 | MIT OR Apache-2.0 | | `windows-sys` | 0.59.0 | MIT OR Apache-2.0 | @@ -461,7 +446,6 @@ with the crates that carry it. | `windows-sys` | 0.61.2 | MIT OR Apache-2.0 | | `windows-targets` | 0.52.6 | MIT OR Apache-2.0 | | `windows-targets` | 0.53.5 | MIT OR Apache-2.0 | -| `windows-threading` | 0.1.0 | MIT OR Apache-2.0 | | `windows-threading` | 0.2.1 | MIT OR Apache-2.0 | | `windows-version` | 0.1.7 | MIT OR Apache-2.0 | | `windows_x86_64_msvc` | 0.52.6 | MIT OR Apache-2.0 | @@ -474,21 +458,20 @@ with the crates that carry it. | `wry` | 0.57.0 | Apache-2.0 OR MIT | | `xattr` | 1.6.1 | MIT OR Apache-2.0 | | `xmlwriter` | 0.1.0 | MIT | -| `xxhash-rust` | 0.8.18 | BSL-1.0 | +| `xxhash-rust` | 0.8.19 | BSL-1.0 | | `yoke` | 0.8.3 | Unicode-3.0 | -| `zerocopy` | 0.8.57 | BSD-2-Clause OR Apache-2.0 OR MIT | +| `zerocopy` | 0.8.63 | BSD-2-Clause OR Apache-2.0 OR MIT | | `zerofrom` | 0.1.8 | Unicode-3.0 | -| `zeroize` | 1.9.0 | Apache-2.0 OR MIT | +| `zeroize` | 1.9.1 | Apache-2.0 OR MIT | | `zerotrie` | 0.2.5 | Unicode-3.0 | | `zerovec` | 0.11.8 | Unicode-3.0 | -| `zip` | 4.6.1 | MIT | | `zmij` | 1.0.23 | MIT | | `zune-core` | 0.5.3 | MIT OR Apache-2.0 OR Zlib | | `zune-jpeg` | 0.5.15 | MIT OR Apache-2.0 OR Zlib | ## The notices themselves -### `@tauri-apps/api` 2.12.0 — Apache-2.0 OR MIT +### `@tauri-apps/api` 2.12.4 — Apache-2.0 OR MIT ```text LICENSE-APACHE-2.0 @@ -695,7 +678,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -### `@tauri-apps/plugin-dialog` 2.8.0 — MIT OR Apache-2.0 +### `@tauri-apps/plugin-dialog` 2.8.3 — MIT OR Apache-2.0 ```text MIT License @@ -721,7 +704,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -### `@tauri-apps/plugin-opener` 2.6.0 — MIT OR Apache-2.0 +### `@tauri-apps/plugin-opener` 2.7.2 — MIT OR Apache-2.0 ```text MIT License @@ -747,7 +730,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -### `argparse` 3.0.2 — PSF-2.0 +### `argparse` 3.0.3 — PSF-2.0 ```text LICENSE @@ -848,7 +831,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -### `markdown-it` 15.0.2 — MIT +### `markdown-it` 15.0.3 — MIT ```text LICENSE @@ -956,7 +939,7 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -### `react` 19.3.0 — MIT +### `react` 19.3.1 — MIT ```text LICENSE @@ -984,7 +967,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -### `react-dom` 19.3.0 — MIT +### `react-dom` 19.3.1 — MIT ```text LICENSE diff --git a/THIRD-PARTY-LICENSES.md b/THIRD-PARTY-LICENSES.md index b13a88e5..7908d8a2 100644 --- a/THIRD-PARTY-LICENSES.md +++ b/THIRD-PARTY-LICENSES.md @@ -2,9 +2,9 @@ -The licence texts of the 442 crates named in +The licence texts of the 425 crates named in [THIRD-PARTY-BUNDLED.md](https://github.com/rgdevment/CopyPaste/blob/main/THIRD-PARTY-BUNDLED.md), each written once with -the crates that carry it: 260 texts. A text is read in full from the +the crates that carry it: 254 texts. A text is read in full from the crate as it is published, from its licence, copying and notice files and its LICENSES folder. A crate that publishes none gets the licence its manifest declares, Apache-2.0 first where it is offered, with the holders its manifest @@ -12,7 +12,7 @@ names. ## Text 1 -Carried by `const-field-offset` 0.2.1, `vtable` 0.5.0. Written out for `accesskit` 0.24.1, `accesskit_consumer` 0.38.0, `accesskit_macos` 0.26.3, `accesskit_windows` 0.34.0, `accesskit_winit` 0.33.2, `dispatch2` 0.3.1, `lyon_algorithms` 1.0.21, `lyon_extra` 1.1.0, `lyon_geom` 1.0.19, `lyon_path` 1.0.19, `objc2-app-kit` 0.3.2, `objc2-application-services` 0.3.2, `objc2-av-foundation` 0.3.2, `objc2-avf-audio` 0.3.2, `objc2-cloud-kit` 0.3.2, `objc2-core-audio-types` 0.3.2, `objc2-core-data` 0.3.2, `objc2-core-foundation` 0.3.2, `objc2-core-graphics` 0.3.2, `objc2-core-image` 0.3.2, `objc2-core-media` 0.3.2, `objc2-core-ml` 0.3.2, `objc2-core-services` 0.3.2, `objc2-core-text` 0.3.2, `objc2-core-video` 0.3.2, `objc2-exception-helper` 0.1.1, `objc2-image-io` 0.3.2, `objc2-media-toolbox` 0.3.2, `objc2-metal` 0.3.2, `objc2-osa-kit` 0.3.2, `objc2-quartz-core` 0.3.2, `objc2-service-management` 0.3.2, `objc2-vision` 0.3.2, `objc2-web-kit` 0.3.2, `profiling` 1.0.18, from the licence the manifest declares: the crate ships no licence file. +Carried by `const-field-offset` 0.2.1, `vtable` 0.5.0. Written out for `accesskit` 0.24.1, `accesskit_consumer` 0.38.0, `accesskit_macos` 0.26.3, `accesskit_windows` 0.34.0, `accesskit_winit` 0.33.2, `dispatch2` 0.3.1, `lyon_algorithms` 1.0.22, `lyon_extra` 1.1.0, `lyon_geom` 1.0.20, `lyon_path` 1.0.19, `objc2-app-kit` 0.3.2, `objc2-application-services` 0.3.2, `objc2-av-foundation` 0.3.2, `objc2-avf-audio` 0.3.2, `objc2-cloud-kit` 0.3.2, `objc2-core-audio-types` 0.3.2, `objc2-core-data` 0.3.2, `objc2-core-foundation` 0.3.2, `objc2-core-graphics` 0.3.2, `objc2-core-image` 0.3.2, `objc2-core-media` 0.3.2, `objc2-core-ml` 0.3.2, `objc2-core-services` 0.3.2, `objc2-core-text` 0.3.2, `objc2-core-video` 0.3.2, `objc2-exception-helper` 0.1.1, `objc2-image-io` 0.3.2, `objc2-media-toolbox` 0.3.2, `objc2-metal` 0.3.2, `objc2-osa-kit` 0.3.2, `objc2-quartz-core` 0.3.2, `objc2-service-management` 0.3.2, `objc2-vision` 0.3.2, `objc2-web-kit` 0.3.2, `profiling` 1.0.18, from the licence the manifest declares: the crate ships no licence file. ```text Apache License @@ -319,7 +319,7 @@ limitations under the License. ## Text 4 -Carried by `adler2` 2.0.1, `allocator-api2` 0.2.21, `anyhow` 1.0.104, `atomic-waker` 1.1.2, `erased-serde` 0.4.10, `fastrand` 2.5.0, `glow` 0.18.0, `itoa` 1.0.18, `once_cell` 1.21.4, `pin-project` 1.1.13, `pin-project-lite` 0.2.17, `portable-atomic` 1.15.0, `rustc-hash` 1.1.0, `rustix` 1.1.4, `semver` 1.0.28, `serde` 1.0.229, `serde-untagged` 0.1.9, `serde_core` 1.0.229, `serde_json` 1.0.151, `smol_str` 0.2.2, `spin_on` 0.1.1, `thiserror` 2.0.21, `typeid` 1.0.3, `unicode-ident` 1.0.24, `zmij` 1.0.23. +Carried by `adler2` 2.0.1, `allocator-api2` 0.2.21, `anyhow` 1.0.104, `atomic-waker` 1.1.2, `erased-serde` 0.4.10, `fastrand` 2.5.0, `glow` 0.18.0, `itoa` 1.0.18, `lazy_static` 1.5.1, `once_cell` 1.21.4, `pin-project` 1.1.13, `pin-project-lite` 0.2.17, `portable-atomic` 1.15.0, `rustc-hash` 1.1.0, `rustix` 1.1.5, `semver` 1.0.28, `serde` 1.0.229, `serde-untagged` 0.1.9, `serde_core` 1.0.229, `serde_json` 1.0.154, `smol_str` 0.2.2, `spin_on` 0.1.1, `thiserror` 2.0.21, `typeid` 1.0.3, `unicode-ident` 1.0.27, `zmij` 1.0.23. ```text Permission is hereby granted, free of charge, to any @@ -349,7 +349,7 @@ DEALINGS IN THE SOFTWARE. ## Text 5 -Carried by `aho-corasick` 1.1.5, `byteorder` 1.5.0, `memchr` 2.8.3, `same-file` 1.0.6, `walkdir` 2.5.0, `winapi-util` 0.1.11. +Carried by `aho-corasick` 1.1.5, `memchr` 2.8.3, `same-file` 1.0.6, `walkdir` 2.5.0, `winapi-util` 0.1.11. ```text This project is dual-licensed under the Unlicense and MIT licenses. @@ -359,7 +359,7 @@ You may use this code under the terms of either license. ## Text 6 -Carried by `aho-corasick` 1.1.5, `byteorder` 1.5.0, `byteorder-lite` 0.1.0, `memchr` 2.8.3, `walkdir` 2.5.0. +Carried by `aho-corasick` 1.1.5, `byteorder-lite` 0.1.0, `memchr` 2.8.3, `walkdir` 2.5.0. ```text The MIT License (MIT) @@ -441,7 +441,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## Text 9 -Carried by `allocator-api2` 0.2.21, `anyhow` 1.0.104, `constant_time_eq` 0.4.2, `erased-serde` 0.4.10, `itoa` 1.0.18, `libc` 0.2.189, `osakit` 0.3.1, `semver` 1.0.28, `serde` 1.0.229, `serde-untagged` 0.1.9, `serde_core` 1.0.229, `serde_json` 1.0.151, `thiserror` 2.0.21, `typeid` 1.0.3, `unicode-ident` 1.0.24. +Carried by `allocator-api2` 0.2.21, `anyhow` 1.0.104, `constant_time_eq` 0.4.2, `erased-serde` 0.4.10, `itoa` 1.0.18, `libc` 0.2.191, `osakit` 0.3.1, `semver` 1.0.28, `serde` 1.0.229, `serde-untagged` 0.1.9, `serde_core` 1.0.229, `serde_json` 1.0.154, `thiserror` 2.0.21, `typeid` 1.0.3, `unicode-ident` 1.0.27. ```text Apache License @@ -624,7 +624,7 @@ END OF TERMS AND CONDITIONS ## Text 10 -Carried by `arboard` 3.6.1, `fdeflate` 0.3.7, `field-offset` 0.3.6, `half` 2.7.1, `image` 0.25.10, `image-webp` 0.2.4, `linebender_resource_handle` 0.1.1, `miniz_oxide` 0.8.9, `miniz_oxide` 0.9.1, `naga` 30.0.1, `naga-types` 30.0.1, `num-conv` 0.2.2, `pin-project` 1.1.13, `pin-project-lite` 0.2.17, `portable-atomic` 1.15.0, `range-alloc` 0.1.5, `raw-window-handle` 0.6.2, `resvg` 0.48.1, `simdutf8` 0.1.5, `sync_wrapper` 1.0.2, `tauri` 2.12.0, `tauri-plugin-dialog` 2.8.0, `tauri-plugin-fs` 2.6.0, `tauri-plugin-global-shortcut` 2.4.0, `tauri-plugin-opener` 2.6.0, `tauri-plugin-shell` 2.4.0, `tauri-plugin-single-instance` 2.5.0, `tauri-plugin-updater` 2.13.0, `tauri-runtime` 2.12.0, `tauri-runtime-wry` 2.12.0, `tauri-utils` 2.10.0, `time` 0.3.55, `time-core` 0.1.9, `usvg` 0.48.1, `wgpu` 30.0.1, `wgpu-core` 30.0.1, `wgpu-core-deps-apple` 30.0.1, `wgpu-core-deps-windows-linux-android` 30.0.1, `wgpu-hal` 30.0.1, `wgpu-naga-bridge` 30.0.1, `wgpu-types` 30.0.1. +Carried by `arboard` 3.7.0, `fdeflate` 0.3.7, `field-offset` 0.3.6, `half` 2.7.1, `image` 0.25.10, `image-webp` 0.2.4, `linebender_resource_handle` 0.1.1, `miniz_oxide` 0.8.9, `miniz_oxide` 0.9.1, `naga` 30.0.1, `naga-types` 30.0.1, `num-conv` 0.2.2, `pin-project` 1.1.13, `pin-project-lite` 0.2.17, `portable-atomic` 1.15.0, `range-alloc` 0.1.5, `raw-window-handle` 0.6.2, `resvg` 0.48.1, `simdutf8` 0.1.5, `sync_wrapper` 1.0.2, `tauri` 2.12.4, `tauri-plugin-dialog` 2.8.3, `tauri-plugin-fs` 2.7.1, `tauri-plugin-global-shortcut` 2.4.1, `tauri-plugin-opener` 2.7.2, `tauri-plugin-shell` 2.5.0, `tauri-plugin-single-instance` 2.5.4, `tauri-plugin-updater` 2.14.0, `tauri-runtime` 2.12.2, `tauri-runtime-wry` 2.12.2, `tauri-utils` 2.10.2, `time` 0.3.55, `time-core` 0.1.9, `usvg` 0.48.1, `wgpu` 30.0.1, `wgpu-core` 30.0.1, `wgpu-core-deps-apple` 30.0.1, `wgpu-core-deps-windows-linux-android` 30.0.1, `wgpu-hal` 30.0.1, `wgpu-naga-bridge` 30.0.1, `wgpu-types` 30.0.1. ```text Apache License @@ -807,7 +807,7 @@ Apache License ## Text 11 -Carried by `arboard` 3.6.1. +Carried by `arboard` 3.7.0. ```text MIT License @@ -868,7 +868,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## Text 13 -Carried by `arrayvec` 0.7.8, `atomic-waker` 1.1.2, `base64` 0.22.1, `base64` 0.23.1, `bitflags` 1.3.2, `bitflags` 2.13.2, `cfg-if` 1.0.4, `cgl` 0.3.2, `core-foundation` 0.10.1, `core-foundation` 0.9.4, `core-foundation-sys` 0.8.7, `core-graphics` 0.23.2, `core-graphics` 0.25.0, `core-graphics-types` 0.1.3, `core-graphics-types` 0.2.0, `core_detect` 1.0.0, `critical-section` 1.2.0, `crossbeam-channel` 0.5.17, `crossbeam-utils` 0.8.23, `data-url` 0.3.2, `equivalent` 1.0.2, `errno` 0.3.14, `euclid` 0.22.14, `fastrand` 2.5.0, `filetime` 0.2.29, `flate2` 1.1.10, `fnv` 1.0.7, `fontique` 0.11.1, `form_urlencoded` 1.2.2, `gif` 0.14.2, `glob` 0.3.4, `global-hotkey` 0.8.0, `glow` 0.18.0, `hashbrown` 0.16.1, `hashbrown` 0.17.1, `heck` 0.5.0, `htmlparser` 0.2.1, `httparse` 1.10.1, `hyper-rustls` 0.27.10, `idna` 1.1.0, `idna_adapter` 1.2.2, `indexmap` 2.14.2, `keyboard-types` 0.7.0, `keyboard-types` 0.8.3, `lazy_static` 1.5.0, `lock_api` 0.4.14, `log` 0.4.34, `mime` 0.3.17, `muda` 0.19.3, `muda` 0.20.0, `num-complex` 0.4.6, `num-traits` 0.2.19, `once_cell` 1.21.4, `parking_lot` 0.12.5, `parking_lot_core` 0.9.12, `parlance` 0.1.0, `parley` 0.11.1, `parley_data` 0.11.1, `percent-encoding` 2.3.2, `png` 0.18.1, `regex` 1.13.1, `regex-automata` 0.4.18, `regex-lite` 0.1.9, `regex-syntax` 0.8.11, `renderdoc-sys` 1.1.0, `roxmltree` 0.21.1, `rustc-hash` 1.1.0, `rustix` 1.1.4, `rustls` 0.23.46, `scoped-tls-hkt` 0.1.5, `scopeguard` 1.2.0, `security-framework` 3.7.0, `security-framework-sys` 2.17.0, `serde_with` 3.23.0, `signal-hook` 0.4.4, `signal-hook-registry` 1.4.8, `simplecss` 0.2.2, `smallvec` 1.16.1, `smol_str` 0.2.2, `socket2` 0.6.5, `spin_on` 0.1.1, `stable_deref_trait` 1.2.1, `svgtypes` 0.16.1, `system-configuration` 0.7.0, `system-configuration-sys` 0.6.0, `tar` 0.4.46, `tempfile` 3.27.0, `tray-icon` 0.25.1, `unicase` 2.9.0, `unicode-bidi` 0.3.18, `unicode-normalization` 0.1.25, `unicode-segmentation` 1.13.3, `unicode-vo` 0.1.0, `unicode-width` 0.2.2, `url` 2.5.8, `uuid` 1.26.1, `weezl` 0.1.12, `window-vibrancy` 0.8.1, `wry` 0.57.0, `xattr` 1.6.1. +Carried by `arrayvec` 0.7.8, `atomic-waker` 1.1.2, `base64` 0.22.1, `base64` 0.23.1, `bitflags` 1.3.2, `bitflags` 2.13.2, `cfg-if` 1.0.5, `cgl` 0.3.2, `core-foundation` 0.10.1, `core-foundation` 0.9.4, `core-foundation-sys` 0.8.7, `core-graphics` 0.23.2, `core-graphics` 0.25.0, `core-graphics-types` 0.1.3, `core-graphics-types` 0.2.0, `core_detect` 1.0.0, `critical-section` 1.2.0, `crossbeam-channel` 0.5.17, `crossbeam-utils` 0.8.23, `data-url` 0.3.2, `equivalent` 1.0.3, `errno` 0.3.14, `euclid` 0.22.14, `fastrand` 2.5.0, `filetime` 0.2.29, `flate2` 1.1.10, `fnv` 1.0.7, `fontique` 0.11.1, `form_urlencoded` 1.2.2, `gif` 0.14.2, `glob` 0.3.4, `global-hotkey` 0.8.0, `glow` 0.18.0, `hashbrown` 0.16.1, `hashbrown` 0.17.1, `heck` 0.5.0, `htmlparser` 0.2.1, `httparse` 1.10.1, `hyper-rustls` 0.27.10, `idna` 1.1.0, `idna_adapter` 1.2.2, `indexmap` 2.14.2, `keyboard-types` 0.7.0, `keyboard-types` 0.8.3, `lazy_static` 1.5.1, `lock_api` 0.4.14, `log` 0.4.34, `mime` 0.3.17, `muda` 0.19.3, `muda` 0.20.0, `num-complex` 0.4.6, `num-traits` 0.2.19, `once_cell` 1.21.4, `parking_lot` 0.12.5, `parking_lot_core` 0.9.12, `parlance` 0.1.1, `parley` 0.11.1, `parley_data` 0.11.1, `percent-encoding` 2.3.2, `png` 0.18.1, `regex` 1.13.1, `regex-automata` 0.4.18, `regex-lite` 0.1.9, `regex-syntax` 0.8.11, `renderdoc-sys` 1.1.0, `roxmltree` 0.21.1, `rustc-hash` 1.1.0, `rustix` 1.1.5, `rustls` 0.23.46, `scoped-tls-hkt` 0.1.5, `scopeguard` 1.2.0, `security-framework` 3.7.0, `security-framework-sys` 2.17.0, `serde_with` 3.24.0, `simplecss` 0.2.2, `smallvec` 1.16.3, `smol_str` 0.2.2, `socket2` 0.6.5, `spin_on` 0.1.1, `stable_deref_trait` 1.2.1, `svgtypes` 0.16.1, `system-configuration` 0.7.0, `system-configuration-sys` 0.6.0, `tar` 0.4.46, `tempfile` 3.27.0, `tray-icon` 0.25.1, `unicase` 2.10.0, `unicode-bidi` 0.3.18, `unicode-normalization` 0.1.26, `unicode-segmentation` 1.13.3, `unicode-vo` 0.1.0, `unicode-width` 0.2.2, `url` 2.5.8, `uuid` 1.28.0, `weezl` 0.1.12, `window-vibrancy` 0.8.1, `wry` 0.57.0, `xattr` 1.6.1. ```text Apache License @@ -2081,7 +2081,7 @@ express Statement of Purpose. ## Text 25 -Written out for `block2` 0.5.1, `objc2` 0.5.2, from the licence the manifest declares: the crate ships no licence file. +Written out for `block2` 0.5.1, `objc2` 0.5.3, from the licence the manifest declares: the crate ships no licence file. ```text MIT License @@ -2109,7 +2109,7 @@ SOFTWARE. ## Text 26 -Written out for `block2` 0.6.2, `objc-sys` 0.3.5, `objc2` 0.6.4, `objc2-encode` 4.1.0, from the licence the manifest declares: the crate ships no licence file. +Written out for `block2` 0.6.2, `objc-sys` 0.3.5, `objc2` 0.6.5, `objc2-encode` 4.1.0, from the licence the manifest declares: the crate ships no licence file. ```text MIT License @@ -2247,7 +2247,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI ## Text 30 -Carried by `bytemuck` 1.25.2, `tinyvec` 1.13.2. +Carried by `bytemuck` 1.25.2, `tinyvec` 1.13.3. ```text Copyright (c) 2019 Daniel "Lokathor" Gee. @@ -2297,7 +2297,7 @@ DEALINGS IN THE SOFTWARE. ## Text 32 -Carried by `cfb` 0.14.0, `cfb` 0.7.3. +Carried by `cfb` 0.14.0. ```text MIT License @@ -2325,7 +2325,7 @@ SOFTWARE. ## Text 33 -Carried by `cfg-if` 1.0.4, `filetime` 0.2.29, `socket2` 0.6.5. +Carried by `cfg-if` 1.0.5, `filetime` 0.2.29, `socket2` 0.6.5. ```text Copyright (c) 2014 Alex Crichton @@ -2687,7 +2687,7 @@ SOFTWARE. ## Text 39 -Carried by `codespan-reporting` 0.13.1, `embed_plist` 1.2.2, `encoding_rs` 0.8.41, `kurbo` 0.13.1, `multiversion` 0.9.0, `polycool` 0.4.0, `raw-window-metal` 1.1.0, `rustls-platform-verifier` 0.7.1, `serialize-to-javascript` 0.1.2, `static_assertions` 1.1.0, `sys-locale` 0.3.2, `tinyvec` 1.13.2, `unicode-linebreak` 0.1.5, `utf8_iter` 1.0.4, `zeroize` 1.9.0, `zune-core` 0.5.3, `zune-jpeg` 0.5.15. +Carried by `codespan-reporting` 0.13.1, `embed_plist` 1.2.2, `encoding_rs` 0.8.42, `kurbo` 0.13.1, `polycool` 0.4.0, `raw-window-metal` 1.1.0, `rustls-platform-verifier` 0.7.1, `serialize-to-javascript` 0.1.2, `siphasher` 1.0.4, `static_assertions` 1.1.0, `sys-locale` 0.3.2, `tinyvec` 1.13.3, `unicode-linebreak` 0.1.5, `utf8_iter` 1.0.4, `zeroize` 1.9.1, `zune-core` 0.5.3, `zune-jpeg` 0.5.15. ```text Apache License @@ -3474,7 +3474,7 @@ DEALINGS IN THE SOFTWARE. ## Text 48 -Carried by `crc32fast` 1.5.2, `ctor` 1.0.13, `dpi` 0.1.2, `fallible-iterator` 0.3.0, `fallible-streaming-iterator` 0.1.9, `foreign-types` 0.5.0, `foreign-types-shared` 0.3.1, `json-patch` 4.2.0, `quick-error` 2.0.1, `serde_spanned` 1.1.1, `tao` 0.37.1, `toml` 1.1.6+spec-1.1.0, `toml_datetime` 1.1.1+spec-1.1.0, `toml_parser` 1.1.3+spec-1.1.0, `toml_writer` 1.1.2+spec-1.1.0, `winit` 0.30.13. +Carried by `crc32fast` 1.5.3, `ctor` 1.0.13, `dpi` 0.1.2, `fallible-iterator` 0.3.0, `fallible-streaming-iterator` 0.1.9, `foreign-types` 0.5.0, `foreign-types-shared` 0.3.1, `json-patch` 4.2.0, `quick-error` 2.0.1, `tao` 0.37.1, `winit` 0.30.13. ```text Apache License @@ -3682,7 +3682,7 @@ Apache License ## Text 49 -Carried by `crc32fast` 1.5.2. +Carried by `crc32fast` 1.5.3. ```text MIT License @@ -4376,7 +4376,7 @@ limitations under the License. ## Text 53 -Carried by `ctor` 1.0.13, `tinyvec` 1.13.2. +Carried by `ctor` 1.0.13, `tinyvec` 1.13.3. ```text Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: @@ -4672,7 +4672,7 @@ DEALINGS IN THE SOFTWARE. ## Text 58 -Carried by `deranged` 0.5.8. +Carried by `deranged` 0.5.9. ```text Apache License @@ -4880,7 +4880,7 @@ Apache License ## Text 59 -Carried by `deranged` 0.5.8. +Carried by `deranged` 0.5.9. ```text Copyright (c) 2024 Jacob Pratt et al. @@ -5255,7 +5255,7 @@ SOFTWARE. ## Text 66 -Carried by `encoding_rs` 0.8.41, `utf8_iter` 1.0.4. +Carried by `encoding_rs` 0.8.42, `utf8_iter` 1.0.4. ```text Copyright Mozilla Foundation @@ -5287,7 +5287,7 @@ DEALINGS IN THE SOFTWARE. ## Text 67 -Carried by `encoding_rs` 0.8.41. +Carried by `encoding_rs` 0.8.42. ```text Copyright © WHATWG (Apple, Google, Mozilla, Microsoft). @@ -5320,7 +5320,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## Text 68 -Carried by `equivalent` 1.0.2. +Carried by `equivalent` 1.0.3. ```text Copyright (c) 2016--2023 @@ -5384,7 +5384,7 @@ DEALINGS IN THE SOFTWARE. ## Text 70 -Carried by `error-code` 3.4.0, `xxhash-rust` 0.8.18. +Carried by `error-code` 3.4.0, `xxhash-rust` 0.8.19. ```text Boost Software License - Version 1.0 - August 17th, 2003 @@ -5735,7 +5735,7 @@ the following restrictions: ## Text 82 -Carried by `font-types` 0.12.5, `read-fonts` 0.41.0, `skrifa` 0.44.0, `write-fonts` 0.50.0. +Carried by `font-types` 0.12.7, `read-fonts` 0.41.0, `skrifa` 0.44.0, `write-fonts` 0.50.0. ```text Apache License @@ -5809,7 +5809,7 @@ limitations under the License. ## Text 83 -Carried by `font-types` 0.12.5, `read-fonts` 0.41.0, `skrifa` 0.44.0, `write-fonts` 0.50.0. +Carried by `font-types` 0.12.7, `read-fonts` 0.41.0, `skrifa` 0.44.0, `write-fonts` 0.50.0. ```text Copyright (c) 2019 Fontations Developers @@ -6201,7 +6201,7 @@ DEALINGS IN THE SOFTWARE. ## Text 90 -Carried by `getrandom` 0.2.17, `getrandom` 0.3.4. +Carried by `getrandom` 0.2.17, `getrandom` 0.3.4, `getrandom` 0.4.3. ```text Apache License @@ -6475,6 +6475,39 @@ DEALINGS IN THE SOFTWARE. ## Text 93 +Carried by `getrandom` 0.4.3. + +```text +Copyright (c) 2018-2026 The rust-random Project Developers +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. +``` + +## Text 94 + Carried by `gif` 0.14.2. ```text @@ -6501,7 +6534,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 94 +## Text 95 Carried by `global-hotkey` 0.8.0, `muda` 0.19.3, `muda` 0.20.0, `tray-icon` 0.25.1. @@ -6529,7 +6562,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 95 +## Text 96 Carried by `glow` 0.18.0. @@ -6551,7 +6584,7 @@ freely, subject to the following restrictions: 3. This notice may not be removed or altered from any source distribution. ``` -## Text 96 +## Text 97 Carried by `glutin` 0.32.3, `glutin_egl_sys` 0.7.1, `glutin_wgl_sys` 0.6.1, `softbuffer` 0.4.8. @@ -6759,7 +6792,7 @@ Apache License limitations under the License. ``` -## Text 97 +## Text 98 Carried by `gpu-allocator` 0.28.0. @@ -6967,7 +7000,7 @@ See the License for the specific language governing permissions and limitations under the License. ``` -## Text 98 +## Text 99 Carried by `gpu-allocator` 0.28.0. @@ -6981,7 +7014,7 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 99 +## Text 100 Carried by `half` 2.7.1, `linebender_resource_handle` 0.1.1, `simdutf8` 0.1.5. @@ -7007,7 +7040,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 100 +## Text 101 Carried by `harfrust` 0.12.0. @@ -7036,7 +7069,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 101 +## Text 102 Carried by `hashbrown` 0.16.1, `hashbrown` 0.17.1. @@ -7068,7 +7101,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 102 +## Text 103 Carried by `hashlink` 0.12.2. @@ -7101,9 +7134,9 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 103 +## Text 104 -Carried by `heck` 0.5.0, `unicode-bidi` 0.3.18, `unicode-normalization` 0.1.25, `unicode-segmentation` 1.13.3, `unicode-width` 0.2.2. +Carried by `heck` 0.5.0, `unicode-bidi` 0.3.18, `unicode-normalization` 0.1.26, `unicode-segmentation` 1.13.3, `unicode-width` 0.2.2. ```text Copyright (c) 2015 The Rust Project Developers @@ -7133,7 +7166,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 104 +## Text 105 Carried by `htmlparser` 0.2.1, `simplecss` 0.2.2, `unicode-vo` 0.1.0. @@ -7161,7 +7194,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 105 +## Text 106 Carried by `http` 1.5.0. @@ -7369,7 +7402,7 @@ See the License for the specific language governing permissions and limitations under the License. ``` -## Text 106 +## Text 107 Carried by `http` 1.5.0. @@ -7401,7 +7434,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 107 +## Text 108 Carried by `http-body` 1.1.0, `http-body-util` 0.1.5. @@ -7433,7 +7466,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 108 +## Text 109 Carried by `httparse` 1.10.1. @@ -7459,9 +7492,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 109 +## Text 110 -Carried by `hyper` 1.11.1, `unicase` 2.9.0. +Carried by `hyper` 1.12.0, `unicase` 2.10.0. ```text Copyright (c) 2014-2026 Sean McArthur @@ -7485,7 +7518,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 110 +## Text 111 Carried by `hyper-rustls` 0.27.10, `rustls` 0.23.46. @@ -7507,7 +7540,7 @@ ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ``` -## Text 111 +## Text 112 Carried by `hyper-rustls` 0.27.10, `rustls` 0.23.46. @@ -7539,9 +7572,9 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 112 +## Text 113 -Carried by `hyper-util` 0.1.20. +Carried by `hyper-util` 0.1.21. ```text Copyright (c) 2023-2025 Sean McArthur @@ -7565,7 +7598,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 113 +## Text 114 Carried by `i-slint-backend-selector` 1.18.1, `i-slint-backend-winit` 1.18.1, `i-slint-common` 1.18.1, `i-slint-core` 1.18.1, `i-slint-renderer-skia` 1.18.1, `slint` 1.18.1. @@ -7804,7 +7837,7 @@ You should also get your employer (if you work as a programmer) or school, if an The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ``` -## Text 114 +## Text 115 Carried by `i-slint-backend-selector` 1.18.1, `i-slint-backend-winit` 1.18.1, `i-slint-common` 1.18.1, `i-slint-core` 1.18.1, `i-slint-renderer-skia` 1.18.1, `slint` 1.18.1. @@ -7854,7 +7887,7 @@ SixtyFPS is only liable for conflicting rights of third parties if SixtyFPS was Unless required by law, SixtyFPS won't be liable for any direct, indirect, incidental, or consequential damages arising in any way out of the use of the Software. ``` -## Text 115 +## Text 116 Carried by `i-slint-backend-selector` 1.18.1, `i-slint-backend-winit` 1.18.1, `i-slint-common` 1.18.1, `i-slint-core` 1.18.1, `i-slint-renderer-skia` 1.18.1, `slint` 1.18.1. @@ -7978,7 +8011,7 @@ The following can be purchased as an Add-On (c) GUI Test Framework. ``` -## Text 116 +## Text 117 Carried by `iana-time-zone` 0.1.65. @@ -8186,7 +8219,7 @@ See the License for the specific language governing permissions and limitations under the License. ``` -## Text 117 +## Text 118 Carried by `iana-time-zone` 0.1.65. @@ -8218,7 +8251,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 118 +## Text 119 Carried by `idna_adapter` 1.2.2. @@ -8250,7 +8283,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 119 +## Text 120 Carried by `imagesize` 0.15.0. @@ -8278,7 +8311,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 120 +## Text 121 Carried by `indexmap` 2.14.2. @@ -8310,9 +8343,9 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 121 +## Text 122 -Carried by `infer` 0.19.0, `infer` 0.22.0. +Carried by `infer` 0.22.0. ```text MIT License @@ -8338,7 +8371,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 122 +## Text 123 Carried by `ipnet` 2.12.2. @@ -8546,7 +8579,7 @@ Apache License limitations under the License. ``` -## Text 123 +## Text 124 Carried by `ipnet` 2.12.2. @@ -8560,7 +8593,7 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 124 +## Text 125 Carried by `json-patch` 4.2.0. @@ -8588,7 +8621,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 125 +## Text 126 Carried by `jsonptr` 0.7.1. @@ -8796,7 +8829,7 @@ See the License for the specific language governing permissions and limitations under the License. ``` -## Text 126 +## Text 127 Carried by `jsonptr` 0.7.1. @@ -8824,7 +8857,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 127 +## Text 128 Carried by `keyboard-types` 0.7.0, `keyboard-types` 0.8.3. @@ -8850,7 +8883,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 128 +## Text 129 Carried by `kurbo` 0.13.1, `polycool` 0.4.0. @@ -8882,41 +8915,9 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 129 - -Carried by `lazy_static` 1.5.0. - -```text -Copyright (c) 2010 The Rust Project Developers - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. -``` - ## Text 130 -Carried by `libc` 0.2.189. +Carried by `libc` 0.2.191. ```text Copyright (c) The Rust Project Developers @@ -9583,7 +9584,7 @@ THE SOFTWARE. ## Text 139 -Carried by `minisign-verify` 0.2.5. +Carried by `minisign-verify` 0.3.0. ```text Copyright (c) 2019-2025 Frank Denis @@ -9733,7 +9734,7 @@ Permission is granted to anyone to use this software for any purpose, including ## Text 143 -Carried by `mio` 1.2.3. +Carried by `mio` 1.2.4. ```text Copyright (c) 2014 Carl Lerche and other MIO contributors @@ -10000,20 +10001,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## Text 146 -Carried by `multiversion` 0.9.0. - -```text -Copyright 2019 Caleb Zulawski - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -``` - -## Text 147 - Carried by `naga` 30.0.1, `naga-types` 30.0.1, `wgpu` 30.0.1, `wgpu-core` 30.0.1, `wgpu-core-deps-apple` 30.0.1, `wgpu-core-deps-windows-linux-android` 30.0.1, `wgpu-hal` 30.0.1, `wgpu-naga-bridge` 30.0.1, `wgpu-types` 30.0.1. ```text @@ -10040,7 +10027,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 148 +## Text 147 Carried by `num-conv` 0.2.2. @@ -10066,7 +10053,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 149 +## Text 148 Written out for `objc2-app-kit` 0.2.2, from the licence the manifest declares: the crate ships no licence file. @@ -10094,7 +10081,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 150 +## Text 149 Written out for `objc2-foundation` 0.2.2, `objc2-foundation` 0.3.2, from the licence the manifest declares: the crate ships no licence file. @@ -10122,7 +10109,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 151 +## Text 150 Carried by `open` 5.4.4. @@ -10154,7 +10141,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 152 +## Text 151 Carried by `option-ext` 0.2.0. @@ -10534,7 +10521,7 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice defined by the Mozilla Public License, v. 2.0. ``` -## Text 153 +## Text 152 Carried by `ordered-float` 5.5.0. @@ -10566,7 +10553,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 154 +## Text 153 Carried by `os_pipe` 1.2.3, `shared_child` 1.1.2. @@ -10592,7 +10579,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 155 +## Text 154 Carried by `osakit` 0.3.1. @@ -10624,9 +10611,9 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 156 +## Text 155 -Carried by `parlance` 0.1.0, `parley` 0.11.1, `parley_data` 0.11.1. +Carried by `parlance` 0.1.1, `parley` 0.11.1, `parley_data` 0.11.1. ```text Copyright 2020 the Parley Authors @@ -10656,7 +10643,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 157 +## Text 156 Carried by `phf` 0.13.1, `phf_shared` 0.13.1. @@ -10683,7 +10670,7 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 158 +## Text 157 Carried by `pico-args` 0.5.0. @@ -10709,9 +10696,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 159 +## Text 158 -Carried by `pin-utils` 0.1.0. +Carried by `pin-utils` 0.1.1. ```text Apache License @@ -10917,9 +10904,9 @@ See the License for the specific language governing permissions and limitations under the License. ``` -## Text 160 +## Text 159 -Carried by `pin-utils` 0.1.0. +Carried by `pin-utils` 0.1.1. ```text Copyright (c) 2018 The pin-utils authors @@ -10949,7 +10936,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 161 +## Text 160 Carried by `pin-weak` 1.1.0. @@ -10975,9 +10962,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 162 +## Text 161 -Carried by `plist` 1.10.1. +Carried by `plist` 1.10.2. ```text Copyright (c) 2015 Edward Barnard @@ -11001,7 +10988,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 163 +## Text 162 Carried by `png` 0.18.1. @@ -11033,9 +11020,9 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 164 +## Text 163 -Carried by `powerfmt` 0.2.0. +Carried by `powerfmt` 0.2.1. ```text Apache License @@ -11241,9 +11228,9 @@ Apache License limitations under the License. ``` -## Text 165 +## Text 164 -Carried by `powerfmt` 0.2.0. +Carried by `powerfmt` 0.2.1. ```text Copyright (c) 2023 Jacob Pratt et al. @@ -11267,7 +11254,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 166 +## Text 165 Carried by `presser` 0.3.1. @@ -11299,7 +11286,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 167 +## Text 166 Carried by `pulldown-cmark` 0.13.4. @@ -11327,7 +11314,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 168 +## Text 167 Carried by `quick-error` 2.0.1. @@ -11353,7 +11340,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 169 +## Text 168 Carried by `quick-xml` 0.42.0. @@ -11383,7 +11370,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 170 +## Text 169 Carried by `range-alloc` 0.1.5. @@ -11411,7 +11398,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 171 +## Text 170 Carried by `raw-window-handle` 0.6.2. @@ -11439,7 +11426,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 172 +## Text 171 Carried by `raw-window-handle` 0.6.2. @@ -11457,9 +11444,9 @@ Permission is granted to anyone to use this software for any purpose, including 3. This notice may not be removed or altered from any source distribution. ``` -## Text 173 +## Text 172 -Carried by `raw-window-metal` 1.1.0. +Carried by `raw-window-metal` 1.1.0, `siphasher` 1.0.4. ```text Permission is hereby granted, free of charge, to any person obtaining a copy @@ -11481,7 +11468,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 174 +## Text 173 Carried by `renderdoc-sys` 1.1.0. @@ -11513,7 +11500,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 175 +## Text 174 Carried by `reqwest` 0.13.5. @@ -11721,7 +11708,7 @@ See the License for the specific language governing permissions and limitations under the License. ``` -## Text 176 +## Text 175 Carried by `reqwest` 0.13.5. @@ -11747,7 +11734,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 177 +## Text 176 Carried by `resvg` 0.48.1, `usvg` 0.48.1. @@ -11779,7 +11766,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 178 +## Text 177 Carried by `rfd` 0.16.0. @@ -11807,7 +11794,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 179 +## Text 178 Carried by `rgb` 0.8.53. @@ -11835,7 +11822,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 180 +## Text 179 Carried by `ring` 0.17.14. @@ -11851,7 +11838,7 @@ See src/polyfill/once_cell/LICENSE-APACHE and src/polyfill/once_cell/LICENSE-MIT for the license to code that was sourced from the once_cell project. ``` -## Text 181 +## Text 180 Carried by `ring` 0.17.14. @@ -12129,7 +12116,7 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ``` -## Text 182 +## Text 181 Carried by `ring` 0.17.14. @@ -12149,7 +12136,7 @@ OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ``` -## Text 183 +## Text 182 Carried by `roxmltree` 0.21.1. @@ -12177,9 +12164,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 184 +## Text 183 -Carried by `rustix` 1.1.4. +Carried by `rustix` 1.1.5. ```text Apache License @@ -12402,7 +12389,7 @@ the License, but only in their entirety and only with respect to the Combined Software. ``` -## Text 185 +## Text 184 Carried by `rustls-pki-types` 1.15.1. @@ -12610,7 +12597,7 @@ See the License for the specific language governing permissions and limitations under the License. ``` -## Text 186 +## Text 185 Carried by `rustls-pki-types` 1.15.1. @@ -12642,7 +12629,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 187 +## Text 186 Carried by `rustls-platform-verifier` 0.7.1. @@ -12670,9 +12657,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 188 +## Text 187 -Carried by `rustls-webpki` 0.103.15. +Carried by `rustls-webpki` 0.103.16. ```text Except as otherwise noted, this project is licensed under the following @@ -12696,7 +12683,7 @@ The files under third-party/chromium are licensed as described in third-party/chromium/LICENSE. ``` -## Text 189 +## Text 188 Carried by `same-file` 1.0.6, `winapi-util` 0.1.11. @@ -12724,7 +12711,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 190 +## Text 189 Carried by `scoped-tls-hkt` 0.1.5. @@ -12756,7 +12743,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 191 +## Text 190 Carried by `scopeguard` 1.2.0. @@ -12788,7 +12775,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 192 +## Text 191 Carried by `security-framework` 3.7.0, `security-framework-sys` 2.17.0. @@ -12815,100 +12802,220 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 193 +## Text 192 -Carried by `serde_spanned` 1.1.1, `toml` 1.1.6+spec-1.1.0, `toml_datetime` 1.1.1+spec-1.1.0, `toml_parser` 1.1.3+spec-1.1.0, `toml_writer` 1.1.2+spec-1.1.0. +Carried by `serde_spanned` 1.1.2, `toml` 1.1.8+spec-1.1.0, `toml_datetime` 1.1.2+spec-1.1.0, `toml_parser` 1.1.5+spec-1.1.0, `toml_writer` 1.1.3+spec-1.1.0. ```text -Copyright (c) Individual contributors +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. + 1. Definitions. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -``` + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -## Text 194 + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -Carried by `serde_with` 3.23.0. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. -```text -Copyright (c) 2015 + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. -``` + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). -## Text 195 + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. -Carried by `serialize-to-javascript` 0.1.2. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." -```text -MIT License + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. -Copyright (c) 2021 Chip Reed + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright Individual contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. ``` -## Text 196 +## Text 193 -Written out for `sigchld` 0.2.5, from the licence the manifest declares: the crate ships no licence file. +Carried by `serde_spanned` 1.1.2, `toml` 1.1.8+spec-1.1.0, `toml_datetime` 1.1.2+spec-1.1.0, `toml_parser` 1.1.5+spec-1.1.0, `toml_writer` 1.1.3+spec-1.1.0. ```text -MIT License - -Copyright (c) Jack O'Connor +Copyright (c) Individual contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -12929,12 +13036,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 197 +## Text 194 -Carried by `signal-hook` 0.4.4, `signal-hook-registry` 1.4.8. +Carried by `serde_with` 3.24.0. ```text -Copyright (c) 2017 tokio-jsonrpc developers +Copyright (c) 2015 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -12961,7 +13068,35 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 198 +## Text 195 + +Carried by `serialize-to-javascript` 0.1.2. + +```text +MIT License + +Copyright (c) 2021 Chip Reed + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +## Text 196 Carried by `simd-adler32` 0.3.10. @@ -12989,9 +13124,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 199 +## Text 197 -Carried by `siphasher` 1.0.3. +Carried by `siphasher` 1.0.4. ```text Copyright 2012-2016 The Rust Project Developers. @@ -13003,7 +13138,7 @@ http://www.apache.org/licenses/LICENSE-2.0> or the MIT license option. ``` -## Text 200 +## Text 198 Written out for `skia-bindings` 0.153.3, from the licence the manifest declares: the crate ships no licence file. @@ -13031,7 +13166,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 201 +## Text 199 Written out for `skia-safe` 0.153.3, from the licence the manifest declares: the crate ships no licence file. @@ -13059,7 +13194,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 202 +## Text 200 Carried by `slab` 0.4.12. @@ -13091,7 +13226,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 203 +## Text 201 Carried by `slotmap` 1.1.1. @@ -13117,9 +13252,9 @@ the following restrictions: 3. This notice may not be removed or altered from any source distribution. ``` -## Text 204 +## Text 202 -Carried by `smallvec` 1.16.1. +Carried by `smallvec` 1.16.3. ```text Copyright (c) 2018 The Servo Project Developers @@ -13149,7 +13284,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 205 +## Text 203 Carried by `softbuffer` 0.4.8. @@ -13175,7 +13310,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 206 +## Text 204 Carried by `stable_deref_trait` 1.2.1. @@ -13207,7 +13342,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 207 +## Text 205 Carried by `static_assertions` 1.1.0. @@ -13235,7 +13370,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 208 +## Text 206 Carried by `strict-num` 0.1.1. @@ -13261,7 +13396,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 209 +## Text 207 Carried by `strum` 0.28.0. @@ -13289,7 +13424,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 210 +## Text 208 Carried by `subtle` 2.6.1. @@ -13325,7 +13460,7 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ``` -## Text 211 +## Text 209 Carried by `svgtypes` 0.16.1. @@ -13351,7 +13486,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 212 +## Text 210 Carried by `symphonia` 0.6.1, `symphonia-bundle-flac` 0.6.1, `symphonia-bundle-mp3` 0.6.1, `symphonia-codec-aac` 0.6.1, `symphonia-codec-pcm` 0.6.1, `symphonia-codec-vorbis` 0.6.1, `symphonia-common` 0.6.1, `symphonia-core` 0.6.1, `symphonia-format-isomp4` 0.6.1, `symphonia-format-ogg` 0.6.1, `symphonia-format-riff` 0.6.1, `symphonia-metadata` 0.6.1. @@ -13714,91 +13849,31 @@ Exhibit A - Source Code Form License Notice ------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. -``` - -## Text 213 - -Carried by `sys-locale` 0.3.2. - -```text -MIT License - -Copyright (c) 2021 1Password - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -``` - -## Text 214 - -Carried by `system-configuration` 0.7.0, `system-configuration-sys` 0.6.0. - -```text -Copyright (c) 2024 Mullvad VPN AB - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. ``` -## Text 215 +## Text 211 -Written out for `taffy` 0.10.1, from the licence the manifest declares: the crate ships no licence file. +Carried by `sys-locale` 0.3.2. ```text MIT License -Copyright (c) Alice Cecile , Johnathan Kelley , Nico Burns +Copyright (c) 2021 1Password Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -13819,12 +13894,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 216 +## Text 212 -Carried by `tar` 0.4.46. +Carried by `system-configuration` 0.7.0, `system-configuration-sys` 0.6.0. ```text -Copyright (c) The tar-rs Project Contributors +Copyright (c) 2024 Mullvad VPN AB Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -13851,42 +13926,14 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 217 - -Carried by `tauri` 2.12.0, `tauri-plugin-dialog` 2.8.0, `tauri-plugin-fs` 2.6.0, `tauri-plugin-global-shortcut` 2.4.0, `tauri-plugin-opener` 2.6.0, `tauri-plugin-shell` 2.4.0, `tauri-plugin-updater` 2.13.0, `tauri-runtime` 2.12.0, `tauri-runtime-wry` 2.12.0, `tauri-utils` 2.10.0. - -```text -MIT License - -Copyright (c) 2017 - Present Tauri Apps Contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -``` - -## Text 218 +## Text 213 -Carried by `tauri-plugin-single-instance` 2.5.0. +Written out for `taffy` 0.10.1, from the licence the manifest declares: the crate ships no licence file. ```text MIT License -Copyright (c) 2017 - Present The Tauri Programme in the Commons Conservancy +Copyright (c) Alice Cecile , Johnathan Kelley , Nico Burns Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -13907,12 +13954,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 219 +## Text 214 -Carried by `tempfile` 3.27.0, `xattr` 1.6.1. +Carried by `tar` 0.4.46. ```text -Copyright (c) 2015 Steven Allen +Copyright (c) The tar-rs Project Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -13939,14 +13986,14 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 220 +## Text 215 -Carried by `tiff` 0.11.3. +Carried by `tauri` 2.12.4, `tauri-plugin-dialog` 2.8.3, `tauri-plugin-fs` 2.7.1, `tauri-plugin-global-shortcut` 2.4.1, `tauri-plugin-opener` 2.7.2, `tauri-plugin-shell` 2.5.0, `tauri-plugin-updater` 2.14.0, `tauri-runtime` 2.12.2, `tauri-runtime-wry` 2.12.2, `tauri-utils` 2.10.2. ```text MIT License -Copyright (c) 2018 PistonDevelopers +Copyright (c) 2017 - Present Tauri Apps Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -13967,12 +14014,14 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 221 +## Text 216 -Carried by `time` 0.3.55, `time-core` 0.1.9. +Carried by `tauri-plugin-single-instance` 2.5.4. ```text -Copyright (c) Jacob Pratt et al. +MIT License + +Copyright (c) 2017 - Present The Tauri Programme in the Commons Conservancy Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -13986,266 +14035,79 @@ copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -``` - -## Text 222 - -Carried by `tiny-skia` 0.12.0, `tiny-skia-path` 0.12.0. - -```text -Copyright (c) 2011 Google Inc. All rights reserved. -Copyright (c) 2020 Yevhenii Reizner All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -``` - -## Text 223 - -Carried by `tinyvec_macros` 0.1.1. - -```text -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +## Text 217 - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +Carried by `tempfile` 3.27.0, `xattr` 1.6.1. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +```text +Copyright (c) 2015 Steven Allen - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. +``` - END OF TERMS AND CONDITIONS +## Text 218 - APPENDIX: How to apply the Apache License to your work. +Carried by `tiff` 0.11.3. - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. +```text +MIT License - Copyright 2020 Tomasz "Soveu" Marx +Copyright (c) 2018 PistonDevelopers - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - http://www.apache.org/licenses/LICENSE-2.0 +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. ``` -## Text 224 +## Text 219 -Carried by `tinyvec_macros` 0.1.1. +Carried by `time` 0.3.55, `time-core` 0.1.9. ```text -MIT License - -Copyright (c) 2020 Soveu +Copyright (c) Jacob Pratt et al. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -14266,35 +14128,46 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 225 +## Text 220 -Carried by `tinyvec_macros` 0.1.1. +Carried by `tiny-skia` 0.12.0, `tiny-skia-path` 0.12.0. ```text -zlib License +Copyright (c) 2011 Google Inc. All rights reserved. +Copyright (c) 2020 Yevhenii Reizner All rights reserved. -(C) 2020 Tomasz "Soveu" Marx +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ``` -## Text 226 +## Text 221 -Carried by `tokio` 1.53.1, `tokio-util` 0.7.19. +Carried by `tokio` 1.54.0, `tokio-util` 0.7.20. ```text MIT License @@ -14320,9 +14193,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 227 +## Text 222 -Carried by `tokio-rustls` 0.26.5. +Carried by `tokio-rustls` 0.26.6. ```text Apache License @@ -14528,9 +14401,9 @@ See the License for the specific language governing permissions and limitations under the License. ``` -## Text 228 +## Text 223 -Carried by `tokio-rustls` 0.26.5. +Carried by `tokio-rustls` 0.26.6. ```text Copyright (c) 2017 quininer kel @@ -14560,7 +14433,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 229 +## Text 224 Carried by `tower` 0.5.3, `tower-layer` 0.3.3, `tower-service` 0.3.3. @@ -14592,7 +14465,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 230 +## Text 225 Carried by `tower-http` 0.6.11. @@ -14624,7 +14497,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 231 +## Text 226 Carried by `tracing` 0.1.44, `tracing-core` 0.1.36. @@ -14656,7 +14529,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 232 +## Text 227 Carried by `try-lock` 0.2.5. @@ -14683,9 +14556,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 233 +## Text 228 -Carried by `unicode-ident` 1.0.24. +Carried by `unicode-ident` 1.0.27, `unicode-normalization` 0.1.26. ```text UNICODE LICENSE V3 @@ -14729,7 +14602,7 @@ dealings in these Data Files or Software without prior written authorization of the copyright holder. ``` -## Text 234 +## Text 229 Carried by `unicode-script` 0.5.8. @@ -14937,7 +14810,7 @@ See the License for the specific language governing permissions and limitations under the License. ``` -## Text 235 +## Text 230 Carried by `unicode-script` 0.5.8. @@ -14971,7 +14844,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 236 +## Text 231 Carried by `untrusted` 0.9.0. @@ -14991,7 +14864,7 @@ Carried by `untrusted` 0.9.0. // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ``` -## Text 237 +## Text 232 Carried by `urlpattern` 0.6.0. @@ -15019,9 +14892,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 238 +## Text 233 -Carried by `uuid` 1.26.1. +Carried by `uuid` 1.28.0. ```text Copyright (c) 2014 The Rust Project Developers @@ -15052,9 +14925,9 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 239 +## Text 234 -Carried by `want` 0.3.1. +Carried by `want` 0.3.2. ```text Copyright (c) 2018-2019 Sean McArthur @@ -15078,7 +14951,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 240 +## Text 235 Carried by `web-time` 1.1.0. @@ -15286,7 +15159,7 @@ Apache License limitations under the License. ``` -## Text 241 +## Text 236 Carried by `web-time` 1.1.0. @@ -15314,7 +15187,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 242 +## Text 237 Carried by `webbrowser` 1.2.4. @@ -15511,7 +15384,7 @@ See the License for the specific language governing permissions and limitations under the License. ``` -## Text 243 +## Text 238 Carried by `webbrowser` 1.2.4. @@ -15545,7 +15418,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 244 +## Text 239 Written out for `webview2-com` 0.39.1, from the licence the manifest declares: the crate ships no licence file. @@ -15573,7 +15446,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 245 +## Text 240 Written out for `webview2-com-sys` 0.39.1, from the licence the manifest declares: the crate ships no licence file. @@ -15601,7 +15474,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 246 +## Text 241 Carried by `weezl` 0.1.12. @@ -15629,7 +15502,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 247 +## Text 242 Carried by `window-vibrancy` 0.8.1. @@ -15657,9 +15530,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 248 +## Text 243 -Carried by `windows` 0.61.3, `windows` 0.62.2, `windows-collections` 0.2.0, `windows-collections` 0.3.2, `windows-core` 0.61.2, `windows-core` 0.62.2, `windows-future` 0.2.1, `windows-future` 0.3.2, `windows-link` 0.1.3, `windows-link` 0.2.1, `windows-numerics` 0.2.0, `windows-numerics` 0.3.1, `windows-registry` 0.6.1, `windows-result` 0.3.4, `windows-result` 0.4.1, `windows-strings` 0.4.2, `windows-strings` 0.5.1, `windows-sys` 0.52.0, `windows-sys` 0.59.0, `windows-sys` 0.60.2, `windows-sys` 0.61.2, `windows-targets` 0.52.6, `windows-targets` 0.53.5, `windows-threading` 0.1.0, `windows-threading` 0.2.1, `windows-version` 0.1.7, `windows_x86_64_msvc` 0.52.6, `windows_x86_64_msvc` 0.53.1. +Carried by `windows` 0.62.2, `windows-collections` 0.3.2, `windows-core` 0.62.2, `windows-future` 0.3.2, `windows-link` 0.2.1, `windows-numerics` 0.3.1, `windows-registry` 0.6.1, `windows-result` 0.4.1, `windows-strings` 0.5.1, `windows-sys` 0.52.0, `windows-sys` 0.59.0, `windows-sys` 0.60.2, `windows-sys` 0.61.2, `windows-targets` 0.52.6, `windows-targets` 0.53.5, `windows-threading` 0.2.1, `windows-version` 0.1.7, `windows_x86_64_msvc` 0.52.6, `windows_x86_64_msvc` 0.53.1. ```text Apache License @@ -15865,9 +15738,9 @@ Apache License limitations under the License. ``` -## Text 249 +## Text 244 -Carried by `windows` 0.61.3, `windows` 0.62.2, `windows-collections` 0.2.0, `windows-collections` 0.3.2, `windows-core` 0.61.2, `windows-core` 0.62.2, `windows-future` 0.2.1, `windows-future` 0.3.2, `windows-link` 0.1.3, `windows-link` 0.2.1, `windows-numerics` 0.2.0, `windows-numerics` 0.3.1, `windows-registry` 0.6.1, `windows-result` 0.3.4, `windows-result` 0.4.1, `windows-strings` 0.4.2, `windows-strings` 0.5.1, `windows-sys` 0.52.0, `windows-sys` 0.59.0, `windows-sys` 0.60.2, `windows-sys` 0.61.2, `windows-targets` 0.52.6, `windows-targets` 0.53.5, `windows-threading` 0.1.0, `windows-threading` 0.2.1, `windows-version` 0.1.7, `windows_x86_64_msvc` 0.52.6, `windows_x86_64_msvc` 0.53.1. +Carried by `windows` 0.62.2, `windows-collections` 0.3.2, `windows-core` 0.62.2, `windows-future` 0.3.2, `windows-link` 0.2.1, `windows-numerics` 0.3.1, `windows-registry` 0.6.1, `windows-result` 0.4.1, `windows-strings` 0.5.1, `windows-sys` 0.52.0, `windows-sys` 0.59.0, `windows-sys` 0.60.2, `windows-sys` 0.61.2, `windows-targets` 0.52.6, `windows-targets` 0.53.5, `windows-threading` 0.2.1, `windows-version` 0.1.7, `windows_x86_64_msvc` 0.52.6, `windows_x86_64_msvc` 0.53.1. ```text MIT License @@ -15893,7 +15766,7 @@ MIT License SOFTWARE ``` -## Text 250 +## Text 245 Carried by `winnow` 1.0.4. @@ -15918,7 +15791,7 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 251 +## Text 246 Carried by `winreg` 0.56.0. @@ -15944,7 +15817,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 252 +## Text 247 Carried by `wry` 0.57.0. @@ -15972,7 +15845,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 253 +## Text 248 Carried by `xmlwriter` 0.1.0. @@ -16000,9 +15873,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 254 +## Text 249 -Carried by `zerocopy` 0.8.57. +Carried by `zerocopy` 0.8.63. ```text Apache License @@ -16208,9 +16081,9 @@ Apache License limitations under the License. ``` -## Text 255 +## Text 250 -Carried by `zerocopy` 0.8.57. +Carried by `zerocopy` 0.8.63. ```text Copyright 2019 The Fuchsia Authors. @@ -16239,9 +16112,9 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ``` -## Text 256 +## Text 251 -Carried by `zerocopy` 0.8.57. +Carried by `zerocopy` 0.8.63. ```text Copyright 2023 The Fuchsia Authors @@ -16271,9 +16144,9 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 257 +## Text 252 -Carried by `zeroize` 1.9.0. +Carried by `zeroize` 1.9.1. ```text Copyright (c) 2018-2026 The RustCrypto Project Developers @@ -16303,38 +16176,7 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 258 - -Carried by `zip` 4.6.1. - -```text -The MIT License (MIT) - -Copyright (c) 2014 Mathijs van de Nes - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Some files in the "tests/data" subdirectory of this repository are under other -licences; see files named LICENSE.*.txt for details. -``` - -## Text 259 +## Text 253 Carried by `zune-core` 0.5.3, `zune-jpeg` 0.5.15. @@ -16362,7 +16204,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -## Text 260 +## Text 254 Carried by `zune-core` 0.5.3, `zune-jpeg` 0.5.15. diff --git a/app/package-lock.json b/app/package-lock.json index 99f9163c..3064cf41 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -43,15 +43,15 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-7.1.2.tgz", - "integrity": "sha512-99DHAnXDB5z6EEK+9GMpVI7Mw4oxj97dY5bpOzMnjADQWxI8rN6TvTduuFLUhUMlS7/CfVZ06tcZsus6cltnNw==", + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-7.1.7.tgz", + "integrity": "sha512-Q7ioeear07HwixdIitIn9KS1LZi97CEDFCSjPNm9v+y8KNbsu9q4Lrd4zUQW4faED+E7qxvfeVnbNRW46wFKuw==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.4.1", - "@csstools/css-color-parser": "^4.2.4", - "@csstools/css-parser-algorithms": "^4.0.1", + "@csstools/css-calc": "^3.4.3", + "@csstools/css-color-parser": "^4.2.6", + "@csstools/css-parser-algorithms": "^4.0.2", "@csstools/css-tokenizer": "^4.0.2", "lru-cache": "^11.5.3" }, @@ -60,9 +60,9 @@ } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-9.2.2.tgz", - "integrity": "sha512-lSWTBMjAcmu2xn5yEDU7jh6QDV+C8GEKtdJ4pIQhXh26RkKQ7S3FuQlt+zZkUbTdJ4d3XyV1kPI/G0zWXxqaqw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-10.0.4.tgz", + "integrity": "sha512-A6f1nKy99I6tyoK82U6kBHvQQZmdHmTmPzJYPY/0eaOW0r8/qPmEOwjGHs+hL/vCgOwQTupu4LT1XtXNUuDruA==", "dev": true, "license": "MIT", "dependencies": { @@ -100,19 +100,19 @@ } }, "node_modules/@babel/core": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-8.0.6.tgz", - "integrity": "sha512-5zwYt1V4ji3mXKKRIAkohSJ29WepxNwxQi+7y7P5AcVPh1dcxnZBU2cfxHnPwS+u9+lZnXPsv30TQaF2xg+Tfg==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-8.0.7.tgz", + "integrity": "sha512-ZIsZWBG6Y1oa+8fkQVp0xeCdjCHBkXFCCIWrmg9SvejVvfcVQgKKRmGrBDWfM7rilhvnRoEuaqa5dkK7KB3pHA==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^8.0.6", "@babel/generator": "^8.0.6", - "@babel/helper-compilation-targets": "^8.0.6", - "@babel/helpers": "^8.0.5", - "@babel/parser": "^8.0.6", + "@babel/helper-compilation-targets": "^8.0.7", + "@babel/helpers": "^8.0.7", + "@babel/parser": "^8.0.7", "@babel/template": "^8.0.0", - "@babel/traverse": "^8.0.6", + "@babel/traverse": "^8.0.7", "@babel/types": "^8.0.6", "@types/gensync": "^1.0.5", "convert-source-map": "^2.0.0", @@ -120,8 +120,8 @@ "gensync": "^1.0.0-beta.2", "import-meta-resolve": "^4.2.0", "json5": "^2.2.3", - "obug": "^2.1.1", - "verkit": "^0.3.2" + "obug": "^3.0.0", + "verkit": "^0.5.0" }, "engines": { "node": "^22.18.0 || >=24.11.0" @@ -163,9 +163,9 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-8.0.6.tgz", - "integrity": "sha512-HTrtZ4+iA0+kzdbCgvdSk1U4pEl3BvpGnlUbualCGNbrVhhQvhgBzurTUmqpWyvyHbWYWaIfdx2mOlL9LJjsew==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-8.0.7.tgz", + "integrity": "sha512-ilAZCdOOlOVA7dQbaFNw2f/59p6GW33NxTopc3DvEE3efp3ZXTrGX/yZScaKw8/vd9bq31Ag0EcXiLw32bAgJg==", "dev": true, "license": "MIT", "dependencies": { @@ -173,16 +173,16 @@ "@babel/helper-validator-option": "^8.0.0", "browserslist": "^4.24.0", "flru": "1.0.2", - "verkit": "^0.3.2" + "verkit": "^0.5.0" }, "engines": { "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-8.0.6.tgz", - "integrity": "sha512-Hy7wG2Pk1LnAkFMq0CbBk789XMTYVzYGxR7tKgk+TOpZckQRME3Tdou4mMT/8DFjJFxFZ8R6UsS4DR/duBKlVA==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-8.0.7.tgz", + "integrity": "sha512-7ug3KrOhNVPPxFFLTel0/pMzimKzU/vTlNJKVL/dKguCpmNJZjjibyFbWg+Qs8QHmiIZPNuZ2UNnDGdHWGEpOg==", "dev": true, "license": "MIT", "dependencies": { @@ -191,8 +191,8 @@ "@babel/helper-optimise-call-expression": "^8.0.0", "@babel/helper-replace-supers": "^8.0.1", "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0", - "@babel/traverse": "^8.0.6", - "verkit": "^0.3.2" + "@babel/traverse": "^8.0.7", + "verkit": "^0.5.0" }, "engines": { "node": "^22.18.0 || >=24.11.0" @@ -346,23 +346,23 @@ } }, "node_modules/@babel/helpers": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-8.0.5.tgz", - "integrity": "sha512-fQtPOXjYOYv85PIdwotp2TJGVYOycX0PQq+l844fFAxOULtBy8BVF35GyeueX0r4KvDthqPH5xAI1clQPk/2uA==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-8.0.7.tgz", + "integrity": "sha512-5dMj5kFwS2AY7Dt4PZp4px3c5ThMbbEa7tZfuHTncCGSFYq8uoA1ufDE1IS/lYpQedE+3+GQ3cPZUiplIu195w==", "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^8.0.0", - "@babel/types": "^8.0.5" + "@babel/types": "^8.0.6" }, "engines": { "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/parser": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.6.tgz", - "integrity": "sha512-LpGDIYJAzc3Y3PT9x+FxBrGYu2PlWxLmyN7SwPTzaX0LSwEmFJBsRnPBqmaXF2r1v+Zhz6lNiEJ+7yKtM5+Ugg==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.7.tgz", + "integrity": "sha512-UkDwEbPO1px2JQSrdh4qIgaH1JgG7GO/pFeJkpxhDxIETkT/QvGpnigXIw75ViHYPtIgKITmVUJqLjiO+JuWjA==", "dev": true, "license": "MIT", "dependencies": { @@ -602,16 +602,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-8.0.1.tgz", - "integrity": "sha512-qrPhQIN1NLrPmzgazF9XKQqXrOcp/WJly+K+6ReFonn24FZqRJO7clxOJo6Ni75L+2vAqI3cHVU2OJLBxoPp5A==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-8.0.7.tgz", + "integrity": "sha512-sUFLFphAG6YNjCnJpSKpyoNxkfyeM2KNuUjJJN0R6dZusMcK2V3Fg11MVHPFvb37AZeDNocc+xM748vdh9z82Q==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^8.0.1", "@babel/helper-validator-option": "^8.0.0", "@babel/plugin-transform-modules-commonjs": "^8.0.1", - "@babel/plugin-transform-typescript": "^8.0.1" + "@babel/plugin-transform-typescript": "^8.0.6" }, "engines": { "node": "^22.18.0 || >=24.11.0" @@ -621,9 +621,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", - "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "version": "7.29.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.10.tgz", + "integrity": "sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==", "dev": true, "license": "MIT", "engines": { @@ -646,19 +646,19 @@ } }, "node_modules/@babel/traverse": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-8.0.6.tgz", - "integrity": "sha512-ilYV+qLStGzSKLipJlETdvdtpK3rAuwfCmCoGKv15MU4EoeIuLkespSNoNLFGOPSciEHx9TLWtN5mv0fz5w5mQ==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-8.0.7.tgz", + "integrity": "sha512-bVV0brinsTWgc6ptSIoQo3GbITtl0VZAqEUJbHHcyfDPEu+q/fEvlYEa+6H85HoK8IdksKBFtKJbJFZ6Kff+zg==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^8.0.6", "@babel/generator": "^8.0.6", "@babel/helper-globals": "^8.0.6", - "@babel/parser": "^8.0.6", + "@babel/parser": "^8.0.7", "@babel/template": "^8.0.0", "@babel/types": "^8.0.6", - "obug": "^2.1.1" + "obug": "^3.0.0" }, "engines": { "node": "^22.18.0 || >=24.11.0" @@ -689,9 +689,9 @@ } }, "node_modules/@biomejs/biome": { - "version": "2.5.14", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.5.14.tgz", - "integrity": "sha512-0FabLIjd4M/dm8VFI86RMaLLdgepzbdfiAL2R8cr7V81OYYrP1w7Z73KfAwPK5h9SrEBXTzNG2y+mBwPo9xRnw==", + "version": "2.5.15", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.5.15.tgz", + "integrity": "sha512-WZTW4slm/pdkh92K6t/3aEN++44JD1PQ7squ7RCMLI1flHGl43DVOIGXvCjHiZgBMO1V4uYxoFNtqrIA4qGuIQ==", "dev": true, "license": "MIT OR Apache-2.0", "bin": { @@ -705,20 +705,20 @@ "url": "https://opencollective.com/biome" }, "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "2.5.14", - "@biomejs/cli-darwin-x64": "2.5.14", - "@biomejs/cli-linux-arm64": "2.5.14", - "@biomejs/cli-linux-arm64-musl": "2.5.14", - "@biomejs/cli-linux-x64": "2.5.14", - "@biomejs/cli-linux-x64-musl": "2.5.14", - "@biomejs/cli-win32-arm64": "2.5.14", - "@biomejs/cli-win32-x64": "2.5.14" + "@biomejs/cli-darwin-arm64": "2.5.15", + "@biomejs/cli-darwin-x64": "2.5.15", + "@biomejs/cli-linux-arm64": "2.5.15", + "@biomejs/cli-linux-arm64-musl": "2.5.15", + "@biomejs/cli-linux-x64": "2.5.15", + "@biomejs/cli-linux-x64-musl": "2.5.15", + "@biomejs/cli-win32-arm64": "2.5.15", + "@biomejs/cli-win32-x64": "2.5.15" } }, "node_modules/@biomejs/cli-darwin-arm64": { - "version": "2.5.14", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.5.14.tgz", - "integrity": "sha512-UnzaXO65L4tsZimFITFP2M121GyhDcWFrT3pL5ZJ5U4XcS/0L5VHYytVohdCf/gnDUFHgl2I9xnt5bV/J1kxHQ==", + "version": "2.5.15", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.5.15.tgz", + "integrity": "sha512-BZVzFhJ/mUvTLMYbc9x6el0o2Uv5zP7bACYyhFb6fSc1giroXm7PL0a5KqMJ9F+/BnkYRjagD/ROSDVOZ6eapg==", "cpu": [ "arm64" ], @@ -733,9 +733,9 @@ } }, "node_modules/@biomejs/cli-darwin-x64": { - "version": "2.5.14", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.5.14.tgz", - "integrity": "sha512-kiy8qA16K93J7uvFfWi4LgjqDpnRKyePAna6A0Y4jxyUga35SYpIZ2cNWlhy0lsfgqRenCpfymnJWEZ6mgpRgA==", + "version": "2.5.15", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.5.15.tgz", + "integrity": "sha512-V5Kw63V+fVGNFhFrizDxMbGXAzZCh8kYzJpy3GI6gTapWDg7bZK9oYC9CbVgQSEdTnupz0U5Efz8Ev+5vdBBXw==", "cpu": [ "x64" ], @@ -750,9 +750,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64": { - "version": "2.5.14", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.5.14.tgz", - "integrity": "sha512-vO/9BaU1n30CiFNLx49gMTMtbCAAqlo/EqFoG0BU3deQInTbJrmXSmTQ9e3FoDZIKQnvSLDVNL4lx1ci7y1T1Q==", + "version": "2.5.15", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.5.15.tgz", + "integrity": "sha512-XaG7P7eeSLYETD3K9grfB0mQmpLQZjygdbsxekWBJAg4am79fGAtRpfRyNnTvXB2fZFNnJZG3nXm7HBat0+VUw==", "cpu": [ "arm64" ], @@ -770,9 +770,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "2.5.14", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.5.14.tgz", - "integrity": "sha512-SJ9PrZkBnnH9dHJDnxk34vKs0GB2dbsioaft6/hPhWJ7AHpwYH83Isnhj0FSRpFkGgpVfJ1lds23ApB2czUDLQ==", + "version": "2.5.15", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.5.15.tgz", + "integrity": "sha512-tGzZUTcJCV7tj5Adh/Gn6nR4MycqA3iohq2LEcrarAgRBkU0h0OKd2UzCRkOsOYOuUGaUJb4YmqRqyy2feGGSw==", "cpu": [ "arm64" ], @@ -790,9 +790,9 @@ } }, "node_modules/@biomejs/cli-linux-x64": { - "version": "2.5.14", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.5.14.tgz", - "integrity": "sha512-VHZRa7CCQBUWKxNwUvHJeuW03WFRgN5NWO//SDGOitc9QIeNyfA42V9zlKm+x82xFSG9Bzi5fi+hbhm9anO8yA==", + "version": "2.5.15", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.5.15.tgz", + "integrity": "sha512-xE4iEW/3LqlYj9GFgGrFsFSH51dEEpUbYWBfeOv0q87WkUDxK2o/HhreSb7qMJqck70RVM6Lg96hgedcAYcOkA==", "cpu": [ "x64" ], @@ -810,9 +810,9 @@ } }, "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "2.5.14", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.5.14.tgz", - "integrity": "sha512-2kI5PrMgW5dcEZYrstLPmUmCwkUwZY39rP4BN93Vxbwcs2O57LDQOktUZZYPvvspN5i0mhGr3TJtF5sU26NUWg==", + "version": "2.5.15", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.5.15.tgz", + "integrity": "sha512-IlxUcyxilVGPsE008x13pWdkTbU3nQpP2i9b5UrbOYj6goBkKsRX1XB7yJLcV+O1H9LBchIIm4adOaVLZBX0ZQ==", "cpu": [ "x64" ], @@ -830,9 +830,9 @@ } }, "node_modules/@biomejs/cli-win32-arm64": { - "version": "2.5.14", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.5.14.tgz", - "integrity": "sha512-pHgAFffmZtaYoxavEsWEYNvcA7NwOIjLyqw2HXyLbt16xYryX0L4fMV2u0G9ag6LNYPIoqWaWqzUcnc6rLGGXg==", + "version": "2.5.15", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.5.15.tgz", + "integrity": "sha512-2kPKzhNlm8C+Ru3GcO0Me2ODkCBLrVOUNuyi84RJyWDVKAA4+Kjj3jMjL938lF6BRfvltC4vB2nPY9SvN51Ovg==", "cpu": [ "arm64" ], @@ -847,9 +847,9 @@ } }, "node_modules/@biomejs/cli-win32-x64": { - "version": "2.5.14", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.5.14.tgz", - "integrity": "sha512-oJWmBhoHsnhUKIke+0gXDX0mltJrWHA1UyHsrTlXwX0TL64ilVZAo+TYZm97baecV0esBdpzy3k96q+09JaZUQ==", + "version": "2.5.15", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.5.15.tgz", + "integrity": "sha512-yAzh4UqEImV6Hcy0zjUqNfJAsUhoD64FBQCdTG8Md/Z2wQeVP/ZmJ3XRYAs1g8J9fjTFyl2fCtc5FB5til47+g==", "cpu": [ "x64" ], @@ -864,13 +864,13 @@ } }, "node_modules/@bramus/specificity": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", - "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.3.tgz", + "integrity": "sha512-0GEz8qJWokkUVYQYRukmkSHIFNoBH8QTreeHrAFbvz1XFYc3Y+puhMs8PQ5x8GNugiC2l5jvDBXKLbBIByeSBw==", "dev": true, "license": "MIT", "dependencies": { - "css-tree": "^3.0.0" + "css-tree": "^3.2.1" }, "bin": { "specificity": "bin/cli.js" @@ -897,9 +897,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.4.1.tgz", - "integrity": "sha512-EtC7SoN1j6J4E4DCwg5QgbO5TGxgxIA1RXqe+W+qUM+BUcezx9wT+/tiQ/WO2yCX4i5X+Cuf9ciJ22aP4UEwWw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.4.3.tgz", + "integrity": "sha512-iex20d8CHVkyvg6B7UKV7uHnI2Bqo9g+EFfT9E0y+GvTvhZ/DwONJ+9aKb1dlqm0ZiGsL5RXjp0fCoJYnkeDjA==", "dev": true, "funding": [ { @@ -916,14 +916,14 @@ "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.1", + "@csstools/css-parser-algorithms": "^4.0.2", "@csstools/css-tokenizer": "^4.0.2" } }, "node_modules/@csstools/css-color-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.2.4.tgz", - "integrity": "sha512-DyefytAZ735mX4Dq/WcDAXFtXhaEFvme0ZS9tVEBAc2whxUthXr0R0L2rmEPm59SrMBkGrFzQviBXMs/UtnABQ==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.2.6.tgz", + "integrity": "sha512-iiPQ3iRWwnJkeEn6RIu6SJPr7hYrLz6XZ9s/QZl+2/LI5KQVjpl2fdmDSZKuD4xP6GMmMPgHFFXg6k1Wkz0Trg==", "dev": true, "funding": [ { @@ -938,20 +938,20 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.1.2", - "@csstools/css-calc": "^3.4.1" + "@csstools/css-calc": "^3.4.3" }, "engines": { "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.1", + "@csstools/css-parser-algorithms": "^4.0.2", "@csstools/css-tokenizer": "^4.0.2" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.1.tgz", - "integrity": "sha512-ShL8BqPfbKJrJiKFH0xBbN0i7Nrh9HXYRuF+pzyj93R/BL2YAsUxJeqANErzqM+0JGl7vjHp+3OIgd/DL69YIA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.2.tgz", + "integrity": "sha512-40cSKyMvK+tq4qz6Awrlye2WGuOKt3FwPgtGg6KTfbHOWNw+Rk1rzbAtZnZ6IBhsY491HLRnDXwoyBAijmmILA==", "dev": true, "funding": [ { @@ -972,9 +972,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.14.tgz", - "integrity": "sha512-HpbVXyrofRXpHpgkNIjU/3EWR4WJvOkO3emNK/L6X/mTJU7bGUI3AkkpoTNXznQLp0KRjLHELTGeKI5dIkI9JQ==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.15.tgz", + "integrity": "sha512-J0u7HkVl2nzSlhsiTOp4AmwcUQ3D+mGEEKfBy/7To5/y7F2OHwyLrXfrhR0SMgr4p5Lo+eaMVSeai24zUcBIxA==", "dev": true, "funding": [ { @@ -1035,9 +1035,9 @@ } }, "node_modules/@inquirer/ansi": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.8.tgz", - "integrity": "sha512-WpQM+Ti6Z40EFwwt+uL2p4UabT+W179zHp6HhLVOzfbwnVn05IPO/eXIZXGNqcT1jbQ15SujNLzQ39k4QPPxBQ==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.9.tgz", + "integrity": "sha512-0Ywt3S8tqM6TWUcsRlBFQ1x+X3/o8kktX0ZiKAnByYb9GFDknnOhse1PVtfiD2BXPI8ar+BWx9PV9R0lQIcygw==", "dev": true, "license": "MIT", "engines": { @@ -1045,16 +1045,16 @@ } }, "node_modules/@inquirer/checkbox": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.2.5.tgz", - "integrity": "sha512-bRt8J8m+Fot9CXv+zNQGXUq2ET0MggR1fPz7v6edN6MFYmsbfGnMmkmWZJEegMKqrAC8ej/o1sqisHZXZJMAfQ==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.2.7.tgz", + "integrity": "sha512-/+QmGE/9bvE/EobaZDnzYe+T+QWoJrnmxwBQNtoi2OVSUR9d1znYsNyEoUrOZvFSxDYttrhzRIpXpaLkN+iIsg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.8", - "@inquirer/core": "^12.0.3", + "@inquirer/ansi": "^2.0.9", + "@inquirer/core": "^12.0.5", "@inquirer/figures": "^2.0.9", - "@inquirer/type": "4.1.1" + "@inquirer/type": "4.2.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1069,14 +1069,14 @@ } }, "node_modules/@inquirer/confirm": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.3.2.tgz", - "integrity": "sha512-Xvr/0HggjddPtGppuqVmxhTw+Hr8PvsZ/k0HmOEaAqQEt80OITNkFWnsdNmyT0/eM4Ab+iJLx2R8rctlEyfSVg==", + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.3.4.tgz", + "integrity": "sha512-ZwnaZZDa1zxsyVrN32s447ydMnKcw7e8WWNT+R+Qsu0zAn8Rs6yi9d1B80Kob1Ul2cfUi7t8JD2t4/K7uEZpqA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^12.0.3", - "@inquirer/type": "4.1.1" + "@inquirer/core": "^12.0.5", + "@inquirer/type": "4.2.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1091,15 +1091,15 @@ } }, "node_modules/@inquirer/core": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-12.0.3.tgz", - "integrity": "sha512-wsSy0sznmXwkty+2PzZwx00Cazc/E0r0B7mAzdGROz2Ct+DFZXaK7WDjGZvgjRldxH5ZhFVfF2lgkYrqgOw2KA==", + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-12.0.5.tgz", + "integrity": "sha512-c0ZSnO9oVk/IlEGoZK3u8b3IZQeu9I6jUkXJSQnQEVRXsjKvtAq3AGqFL2LgfJhlzMZne08pZHWRWasIcI3Rew==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.8", + "@inquirer/ansi": "^2.0.9", "@inquirer/figures": "^2.0.9", - "@inquirer/type": "4.1.1", + "@inquirer/type": "4.2.0", "cli-width": "^4.1.0", "fast-wrap-ansi": "^0.2.0", "mute-stream": "^3.0.0", @@ -1118,15 +1118,15 @@ } }, "node_modules/@inquirer/editor": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.3.3.tgz", - "integrity": "sha512-YsKkS2q63IiLtaDK/9nqzdComN97SDQrmKiyNggN+ceP4ty+Z6VwyTz3FpjeUWeW1Efss2xHFKCC9sx7hnrsxg==", + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.3.5.tgz", + "integrity": "sha512-6lU3/pPx5z3lHWejFW061MV4qZooBQYv/+EeGhNOPiP/i+hrYsHfxxBnnDGsAfg8YdLUd69YckoeOjtr3QuAUg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^12.0.3", - "@inquirer/external-editor": "^3.0.5", - "@inquirer/type": "4.1.1" + "@inquirer/core": "^12.0.5", + "@inquirer/external-editor": "^3.0.6", + "@inquirer/type": "4.2.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1141,14 +1141,14 @@ } }, "node_modules/@inquirer/expand": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.1.5.tgz", - "integrity": "sha512-uHuXLmXW+TtIfT/9vSBotypAkqn1n34Ul+CLGPos/xANyO4Ff5xZzkYhbKR4NEcfVK4a9mHQOpwVZzluSHFRGw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.1.7.tgz", + "integrity": "sha512-eiJ31YFCaB6fLoJCqLIn8S6eqUyME6vwr8KcP5h8cxmA+bV9RRVPO+kywoxb7G63HduDXV6sN/SM7o2R+ahEcQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^12.0.3", - "@inquirer/type": "4.1.1" + "@inquirer/core": "^12.0.5", + "@inquirer/type": "4.2.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1163,9 +1163,9 @@ } }, "node_modules/@inquirer/external-editor": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-3.0.5.tgz", - "integrity": "sha512-f3QQJRIX5ZEneBHNUIuPjmbdzHnmRFJA8r2dkcb8q+OM5Uv5KtnuAttQumnrjcBVBM3mcTX1CkmtAkU58VRZxg==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-3.0.6.tgz", + "integrity": "sha512-rWmw6WG8JZ7LMn/srXEylYGhL6EXXJeROE7/4x4GREh6NgzqJBDbIgpNGsYoLPfobeb4VZtEYzPGnT5EFNYhiQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1195,14 +1195,14 @@ } }, "node_modules/@inquirer/input": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.1.6.tgz", - "integrity": "sha512-HtcJhB2QFVXbLuJ5S3syhNbTUVxYvwqV4VRBDkQceBloC9bmTViUoRFP5PbSaDZb3HzfPmpuU/gG4ybVBz4FHA==", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.1.8.tgz", + "integrity": "sha512-psOSTgkL8y/OtgJJYbqJ0oISr2QBE0U1Ro/qQdA/EKjeJiwiUTQgQmq8o4ESNzVOWthIeh3YLD7BCUR9dKnR5g==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^12.0.3", - "@inquirer/type": "4.1.1" + "@inquirer/core": "^12.0.5", + "@inquirer/type": "4.2.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1217,14 +1217,14 @@ } }, "node_modules/@inquirer/number": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.2.3.tgz", - "integrity": "sha512-6Yuwh1NGSbu1Lo4N1EWjXs1jKRntLg/ZCwhmeorEHde90v1XxAozdbd4Iu30eOQLW+6h1hp2O9ujNfLSbTPJnA==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.2.5.tgz", + "integrity": "sha512-lEy7LWsdF5qHx5QjHZqabUqM9P7i5uTMCt8GRzqxmwXXKbapKJDA+ucVflVVPAyj4snD5DTAD4L+sct85XOlOQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^12.0.3", - "@inquirer/type": "4.1.1" + "@inquirer/core": "^12.0.5", + "@inquirer/type": "4.2.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1239,15 +1239,15 @@ } }, "node_modules/@inquirer/password": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.2.2.tgz", - "integrity": "sha512-W9zYdyzogK+6110mqwaSJWCBu2yA5Q/OfnGSjjZB1bNpHlmUozXxTl0+QOZBNeVd6Qo81/qT75gW05gLAtITxw==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.2.4.tgz", + "integrity": "sha512-T7ir3fflSSVCYEVqNyMBq+pIMsilQRtbZcD5gxn6Ewsin5TJWBxrGBdXveWtmeXVAeoInfhS+BhBUZaL4sFSDg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.8", - "@inquirer/core": "^12.0.3", - "@inquirer/type": "4.1.1" + "@inquirer/ansi": "^2.0.9", + "@inquirer/core": "^12.0.5", + "@inquirer/type": "4.2.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1262,22 +1262,22 @@ } }, "node_modules/@inquirer/prompts": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.7.2.tgz", - "integrity": "sha512-QoRB4wFIjgH5iOhSjoIKMkTvSHDuV+O3OITlIqAYO0oK5x364GJILXiMBvlPiE+klg7Xx9tq5XVqQHcGUDYYPA==", + "version": "8.7.4", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.7.4.tgz", + "integrity": "sha512-SAJt+QhY5rOJAIgZBw9TrHWfgrp6wsb9cqRCyqax+Hl6EiFfRXmD9EsIWkST8yq/dQ8H46Is2Sr/JG7Ls/LQ+Q==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^5.2.5", - "@inquirer/confirm": "^6.3.2", - "@inquirer/editor": "^5.3.3", - "@inquirer/expand": "^5.1.5", - "@inquirer/input": "^5.1.6", - "@inquirer/number": "^4.2.3", - "@inquirer/password": "^5.2.2", - "@inquirer/rawlist": "^5.3.5", - "@inquirer/search": "^4.3.3", - "@inquirer/select": "^5.2.5" + "@inquirer/checkbox": "^5.2.7", + "@inquirer/confirm": "^6.3.4", + "@inquirer/editor": "^5.3.5", + "@inquirer/expand": "^5.1.7", + "@inquirer/input": "^5.1.8", + "@inquirer/number": "^4.2.5", + "@inquirer/password": "^5.2.4", + "@inquirer/rawlist": "^5.3.7", + "@inquirer/search": "^4.3.5", + "@inquirer/select": "^5.2.7" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1292,14 +1292,14 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.3.5.tgz", - "integrity": "sha512-1oHky1ONfCOwNrnkQGDE1oaSij/3fI6HFMSf2H/WsGO2lEyDX9My82iggITSy9ddSZ8yk8j9v41OI0fVoSIoaA==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.3.7.tgz", + "integrity": "sha512-XveEe8v3BHj9ec00n+9i8FHjWhXjS6+jCTizYvXCqKUKtgkrq9xid8S5j3mYGW96qfxG3mwNoud3m3v8GDk9Pw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^12.0.3", - "@inquirer/type": "4.1.1" + "@inquirer/core": "^12.0.5", + "@inquirer/type": "4.2.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1314,15 +1314,15 @@ } }, "node_modules/@inquirer/search": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.3.3.tgz", - "integrity": "sha512-fyuIU1Nbpvwlikjg3gXwJFDI11+EFjqQ7P+iByfmivIKQ1vmaykNrD/vy5unHuUqUpsOsnvJ25//tPF7E/RBRA==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.3.5.tgz", + "integrity": "sha512-kIUecMugEN2YTvTmff+uYz0nAE0f9RFNDVZknfrh264vAQM9P8tnsXiUp7z8XbGuNIBEtFMJhvc9QquawpC46A==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^12.0.3", + "@inquirer/core": "^12.0.5", "@inquirer/figures": "^2.0.9", - "@inquirer/type": "4.1.1" + "@inquirer/type": "4.2.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1337,16 +1337,16 @@ } }, "node_modules/@inquirer/select": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.2.5.tgz", - "integrity": "sha512-9kc15hr8r/kI+3DO/xLog5nOzTz1jqsHXa6JBFzmQKhkoJ8Slda1I1L/uD8ZSZ9tF1yp79wwXe7mclvX1rqR2Q==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.2.7.tgz", + "integrity": "sha512-pRDWO4dTqSAvFQdO8yclKMtXNDm9K9HmvWB5UZmT3clw2OlOBNXveHzhyFmO/0d0yJMqlPcNITus1Jtpm6t8VQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.8", - "@inquirer/core": "^12.0.3", + "@inquirer/ansi": "^2.0.9", + "@inquirer/core": "^12.0.5", "@inquirer/figures": "^2.0.9", - "@inquirer/type": "4.1.1" + "@inquirer/type": "4.2.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" @@ -1361,9 +1361,9 @@ } }, "node_modules/@inquirer/type": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.1.1.tgz", - "integrity": "sha512-yJoHYrMnxIsJZCY+0Vb66Dy3he3kL3e2wOBKhoSwWWAzZAY82emlxwgprCtp6yRixvNRNq9ztfRWQYPNr3Go7A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.2.0.tgz", + "integrity": "sha512-2rnHX8RPo4glJYqnFc/v3nQeIhDcjyRRyaT7MGcfL/8xv/8K03SXYoA2tX06WVSKywWOE/ncbG3dtuzLjR5TCQ==", "dev": true, "license": "MIT", "engines": { @@ -1418,9 +1418,9 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.151.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.151.0.tgz", - "integrity": "sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA==", + "version": "0.154.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.154.0.tgz", + "integrity": "sha512-KYOUGQFlLWR+s4QMV2Q9ko38TZm7EdO87Qm7rvZLqk/webse/cDjtyxKhg/47l0byCbs/k46LT8qc4PKjAikzA==", "dev": true, "license": "MIT", "funding": { @@ -1428,9 +1428,9 @@ } }, "node_modules/@rolldown/binding-android-arm-eabi": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.11.tgz", - "integrity": "sha512-A5kXfGKvKWWZE0TtPrfsvT+q4Y5d1QG8gGUzpYjGydM+fARM9MuX90PrXYXe0XbsDVgyxxNzHo6giCj90bsFNw==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.14.tgz", + "integrity": "sha512-aWR+XKH9+rW7m5fWq/5360J3mHycrx/o6xZM2DQFdJnTMdyP7/WzxPjhtLbVWdKo2y612/4U1bWqb3HQhiF7vg==", "cpu": [ "arm" ], @@ -1445,9 +1445,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.11.tgz", - "integrity": "sha512-z6cTycz+iJ4PVkuL4HHW4DfTfoeU/2nqYYuSOrTmH7yHK5Y0LCOnA03V4ZNxavyVaU1oOqUgIg2klN/s+USGOA==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.14.tgz", + "integrity": "sha512-QiVxHofl6A8lQU7WAtOUY4QMVZXohxwz7WJJoeh8NBEUyKfIkMRKhYyq8az/1RypNiIXzNTtiS6KwHz0erxYRQ==", "cpu": [ "arm64" ], @@ -1462,9 +1462,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.11.tgz", - "integrity": "sha512-jShvqNtP6vDC6/A5JOAzbVV+DkgHqhl/ScVCJEbt+TUY6QYz7YnXcrg3sLtFBniro0f/Ld50ZwCWA6f7KYD1nQ==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.14.tgz", + "integrity": "sha512-lTQOzHuBIooh3jIr5XINQkjPGEuGy+Dsy0meXDr6Sjty0b99kYgGh4uBC/8mJX1T0kC8d6S0aPP1Y+bHkh6aBw==", "cpu": [ "arm64" ], @@ -1479,9 +1479,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.11.tgz", - "integrity": "sha512-f2i2xiNWq1Z1l2++q2fuhZRdLAT3aqxD6vRNm1RAxpUoBcdqNB3C0s1Bt+K+PbEx2F5F4gQp6hqKkphCY/xF9w==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.14.tgz", + "integrity": "sha512-hyMKEGatjmBYCs/Q4sbIcL/GqpFEqsX3wc+HYVQ/85A4rxc1o7rPm4DUI4GV4k/h0ITddwFSGpqQunI14GXjTA==", "cpu": [ "x64" ], @@ -1496,9 +1496,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.11.tgz", - "integrity": "sha512-4Ir5FSOKIAMr4r0kExpt1s3bMgzJU3rA45AYOHtQpls0oNeqcYBKrWMlckrYH4KCfGLfkfn1tN1dmZPMVsdXow==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.14.tgz", + "integrity": "sha512-u371GbXoVXrEgP20PwzoGNOdAOqAMhzo19JzzY+V4YmmnC+DTOoqdbMu+O+54emM59Mik/UdrtWgcuEDKWRPKA==", "cpu": [ "x64" ], @@ -1513,9 +1513,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.11.tgz", - "integrity": "sha512-/gnRDM+39BROzAN/k1OZjDPnDMcZxB/0EUxKjONO5yVkNEvlsoMDrxGNKgZi/ttFriS2gwlDNzB65pvNbFOXIQ==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.14.tgz", + "integrity": "sha512-BqwKsdZQf6EqVWr8fv2MrDYzAvOZ7+NYFSJESRGs87fkseEhs0TU9TXgRJTkZoRRkxTizyEg1LKUXfU3/78uqg==", "cpu": [ "arm" ], @@ -1530,9 +1530,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.11.tgz", - "integrity": "sha512-PFaK8HwvAHbaKbBcDNQihjMKYvFnA5hiENx/l5tphTDz1E0WFp32l0A7aq7lyUwGsRw/xSrNIy/gIK4thrSCrw==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.14.tgz", + "integrity": "sha512-SD9kY8M009x/7s57Z1dgUVlP5+uYBgKQK0Tkr1WIWngrtUJmRCW1RJFMY7QDla2khXhmg2i5Io7MUjcmZNZ/KQ==", "cpu": [ "arm64" ], @@ -1550,9 +1550,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.11.tgz", - "integrity": "sha512-AskzJUIKRLPxkruR1wLKewGbOw+EYfU/9lOrBFj4AFrEA8hPpKFnODWNu2WLaNs0QNkEb9QIJufmVZZIL/bJlg==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.14.tgz", + "integrity": "sha512-BJ2CL19M6uuWesMgnqJzgxoI+N+eV7b0A9O9vLV42y+gitC41fNa8KElau1tHVzuLWX5GzEuxMPhAO0tQXQMkg==", "cpu": [ "arm64" ], @@ -1570,9 +1570,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.11.tgz", - "integrity": "sha512-qlUGAheh2yh8afH7QBgx0PrRHN85hKnNd78x8MeMhXivuevgd8vgf6/CstOzmNKY/lLTHvNTrPy98cLnAugzJw==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.14.tgz", + "integrity": "sha512-4+Kl8daPV8NDHaD7mfCcc1pRM+Qg7ab8DyMm5FG5WoZgv4h2i3KFN1CybYBNbQqmuYm7ftJLvmMI1eHYJ22S/Q==", "cpu": [ "ppc64" ], @@ -1590,9 +1590,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.11.tgz", - "integrity": "sha512-secpEad+0vCbSfn8upFySkDskv+bGPk3THSDS9Y89yc4rb4kzqHp8Dmyd9BkQW4SnhNXBZCl/6CrO//hZahNJQ==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.14.tgz", + "integrity": "sha512-V/h8ePq1fKDrmtFMz6xcCN3DKvuvMRrwwD1q0PkBeeo4DpK64biaKvqWGVxqCeYKqeRk7gE7/iKPxLCn08O97A==", "cpu": [ "s390x" ], @@ -1610,9 +1610,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.11.tgz", - "integrity": "sha512-mOVBT3dPpkWm8XBWPmU4bf+U6dYDLeMo/9ojUmis4N0L5uu10qra5vOyngZ7/PSdoE4G9KvRt4bloRxNjLas7A==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.14.tgz", + "integrity": "sha512-WxalXzgrLVpKC93xfpaJ3gCXUWzeCr+FRCbDVD2mUAy4L6Vo3lNVz0epUEUpxPWJkLNYUwM4OSIikv36OJ9mLg==", "cpu": [ "x64" ], @@ -1630,9 +1630,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.11.tgz", - "integrity": "sha512-Is78i9A8Ui4SqcxUwFJ9uMmjDn58IbVTjFWYdQestFEgeuEmHMLGNriXnVJKkwG2YiZjw8cP0zCTyDMdDGtOOg==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.14.tgz", + "integrity": "sha512-3G3tnAmTpdk9jO3GQtyHXqeFD2SlecfTws/Y3M2mmj9nMBwwuLT4kur8sZKeu7ENUHSpVO3cIsm5A52LEWWwlg==", "cpu": [ "x64" ], @@ -1650,9 +1650,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.11.tgz", - "integrity": "sha512-dUCXneZ87INUMyQ0D+C0HrEBNUPNXHaPmU5GTjyKTJEiussw9Kaj5Ln8UztPe4epV/ffvgNBEadksdYhmW6xJA==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.14.tgz", + "integrity": "sha512-qyr5XiNGxm2ytx17vvtcJ9nXn6v1gENETi503bJx3OGwZ1tSonj7BosxbMa/xeAfSl5iS9X6KjEWYXLu6v1L7Q==", "cpu": [ "arm64" ], @@ -1667,9 +1667,9 @@ } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.11.tgz", - "integrity": "sha512-jByxb6qfd+bH1xUd0qnfFnb17i9sWBPY2tOavJ0l3tdr3OTu+Kvtm8cd/JV5nFt657b1VqGltxg9olOEfofXWw==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.14.tgz", + "integrity": "sha512-oA4o5o0S2yB199YyYXDzKUv1Z56Rc+mgOjwm7Z/vJ9Z8igiDPYvoOuDyo6g7AK/ZaF09nPhDKVnGBcYHO11GXA==", "cpu": [ "arm64" ], @@ -1684,9 +1684,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.11.tgz", - "integrity": "sha512-/PzKqzAJ03i19oy2ItPvyvaVjOjBCNnfaJs8yvUdGBKmiESgnrJSQ2awd81QzFbbnAmu7YO9ZnJrDCb9VSJPRA==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.14.tgz", + "integrity": "sha512-9mE94bf2GZUaR/fUSXCMpBoWkctu421Mi0ORpm4zqfbkjKep7RxzPFa5etcGs5h+2KApoWBOA/hAJa/7saGgEQ==", "cpu": [ "x64" ], @@ -1845,9 +1845,9 @@ } }, "node_modules/@tauri-apps/api": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.12.0.tgz", - "integrity": "sha512-fUSxFX8VABYe9W9K5ROdEaKVkNUFRcMSRofjruvaxztXA+I0XnQHcYHF8m/a6iExRUxsUf0HsFWhPBuH9IgzJw==", + "version": "2.12.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.12.4.tgz", + "integrity": "sha512-pVmfis+4zT8H0Qhp3xPZx9Ju7kpzvA6rr/PSJPyuwfvucTQ8sVt61NYU9KMkK703UFlYadFmjKA4HhybOtN0gg==", "license": "Apache-2.0 OR MIT", "funding": { "type": "opencollective", @@ -1855,9 +1855,9 @@ } }, "node_modules/@tauri-apps/cli": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.12.0.tgz", - "integrity": "sha512-GIShnAR4C16kSTA8NO02fo8fOw/I5z5sAUEB5S2HlPHFnBkbihL4c9a/MpkxOm1+q5S+tFd3X4QUjHWxfyGzpQ==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.12.3.tgz", + "integrity": "sha512-f7/LsY74SVb1ChmOPw1ajOpxii0GSzDAgmWHRci8JUYuuai04rXsSbFobpmB0sP2DdlvMD/B5ZotEn8GOGMRUg==", "dev": true, "license": "Apache-2.0 OR MIT", "bin": { @@ -1871,23 +1871,23 @@ "url": "https://opencollective.com/tauri" }, "optionalDependencies": { - "@tauri-apps/cli-darwin-arm64": "2.12.0", - "@tauri-apps/cli-darwin-x64": "2.12.0", - "@tauri-apps/cli-linux-arm-gnueabihf": "2.12.0", - "@tauri-apps/cli-linux-arm64-gnu": "2.12.0", - "@tauri-apps/cli-linux-arm64-musl": "2.12.0", - "@tauri-apps/cli-linux-riscv64-gnu": "2.12.0", - "@tauri-apps/cli-linux-x64-gnu": "2.12.0", - "@tauri-apps/cli-linux-x64-musl": "2.12.0", - "@tauri-apps/cli-win32-arm64-msvc": "2.12.0", - "@tauri-apps/cli-win32-ia32-msvc": "2.12.0", - "@tauri-apps/cli-win32-x64-msvc": "2.12.0" + "@tauri-apps/cli-darwin-arm64": "2.12.3", + "@tauri-apps/cli-darwin-x64": "2.12.3", + "@tauri-apps/cli-linux-arm-gnueabihf": "2.12.3", + "@tauri-apps/cli-linux-arm64-gnu": "2.12.3", + "@tauri-apps/cli-linux-arm64-musl": "2.12.3", + "@tauri-apps/cli-linux-riscv64-gnu": "2.12.3", + "@tauri-apps/cli-linux-x64-gnu": "2.12.3", + "@tauri-apps/cli-linux-x64-musl": "2.12.3", + "@tauri-apps/cli-win32-arm64-msvc": "2.12.3", + "@tauri-apps/cli-win32-ia32-msvc": "2.12.3", + "@tauri-apps/cli-win32-x64-msvc": "2.12.3" } }, "node_modules/@tauri-apps/cli-darwin-arm64": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.12.0.tgz", - "integrity": "sha512-v5J+jISihLGtih1+3yWagbsL+5dbLZORu4vaSI0vhY0Heb+MAW+T/1s1RyKxrQrwEPGBG5kqwfDDTnSbmVkuqA==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.12.3.tgz", + "integrity": "sha512-xmVNoJOOKzKLj7GLHXmXLimRby9M42aBIJa0sB80N7o24eKV5JiVmToKTRLVH9yhL05GZ/B6rSSOmbzNFJwBAA==", "cpu": [ "arm64" ], @@ -1902,9 +1902,9 @@ } }, "node_modules/@tauri-apps/cli-darwin-x64": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.12.0.tgz", - "integrity": "sha512-g27I07pfW/dMS8vcNqB9lamgKF0TqLlcy8e7t9qDGsB1iaeyjJWb2TgBF4tM9ZwLqPAZUXbsz28oXljO12WC4g==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.12.3.tgz", + "integrity": "sha512-URd+0usfmUQQyb5kNPiKt2OT8gp7oGU7QR+qOppB6e35mpVBFFVNhWc9oWb3p0u71fDJ09DpF4T6m9xYxoIB8g==", "cpu": [ "x64" ], @@ -1919,9 +1919,9 @@ } }, "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.12.0.tgz", - "integrity": "sha512-gXyQ710fNc99YuxFxNyeX9PLSrIpbtgBBj7GQo9tSeRT6fIK40q3/gm7X5jqZo7mWLR2m0R/2ALd3vAWo0Z32Q==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.12.3.tgz", + "integrity": "sha512-0kwUVx2LbmOoTRlwF1oDww7th4/NSluv4ZBQ6KRZsFKg4g0TlTcIiJ0VehqkQYUeC9xIT1Mk6XtF52mI155VSQ==", "cpu": [ "arm" ], @@ -1936,9 +1936,9 @@ } }, "node_modules/@tauri-apps/cli-linux-arm64-gnu": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.12.0.tgz", - "integrity": "sha512-H9cyXuq9WgxoHh2NZ+R+oN+W78x5UwaBDEp0/fmqUUkaBoioCuOZErM9xKiIV6bpNAhmw1RoWZ49u37q/vaiAg==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.12.3.tgz", + "integrity": "sha512-gKSGDx6fx+HBLQmG6guChFdisbrCSdx9Yli+j5teOa64gm1CeM+C6NLru5Pj3ZkkEep05BmCFjxvX+cjqAycZQ==", "cpu": [ "arm64" ], @@ -1956,9 +1956,9 @@ } }, "node_modules/@tauri-apps/cli-linux-arm64-musl": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.12.0.tgz", - "integrity": "sha512-5tFuk3JKMBa1M/iN4gN32OYlSfhY3aqb5PO3zCugxaT+sfecyMKpc3EM9VDbhmwWBE9QD4Tfj7wGhlqx2yy2pQ==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.12.3.tgz", + "integrity": "sha512-Yr59qMy/gcvAfBuFdCGlAmGiLsYWMFDbsP4bAI6iNBzcJTGrYWZGeiQhGDo29MQwfF/NUBqyM2qljXu5tZ6wjQ==", "cpu": [ "arm64" ], @@ -1976,9 +1976,9 @@ } }, "node_modules/@tauri-apps/cli-linux-riscv64-gnu": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.12.0.tgz", - "integrity": "sha512-LOrMyV+nb7pKq8P0BZtTBQuyzm1ORjn16R9MlupmxuT5LqxtuYJlw3VMwbaeXCToJ8jbP5u9JnkfmbqDlvETXw==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.12.3.tgz", + "integrity": "sha512-jKr0/REBMnLKC0OwPQZkyge0mKDaNZ0b/AbfGwVyCgFfwS730EVLfVDo3nt7MUu6jJaytRq08+xSj5qfy+U1+Q==", "cpu": [ "riscv64" ], @@ -1996,9 +1996,9 @@ } }, "node_modules/@tauri-apps/cli-linux-x64-gnu": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.12.0.tgz", - "integrity": "sha512-aMIkI+X9qvD2+k80QZB3tuOYT41/cEheikC510CwAIZ31KLXORsRASYYzM4mi1/58ICmtzSLFhCC08keir7COw==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.12.3.tgz", + "integrity": "sha512-gTkEqJAGCMROGanxHnzaJzQ+/rXl39HWVg0/hDODS1wDWBGqoceqGC6Qm1+mQbyT11xnsB8mKu/gyVID/YpFIw==", "cpu": [ "x64" ], @@ -2016,9 +2016,9 @@ } }, "node_modules/@tauri-apps/cli-linux-x64-musl": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.12.0.tgz", - "integrity": "sha512-9gl3NhUbfuGhSKjeGCypKSdtoezOQRcDUrkhTWtLQEjnajets6peO6NadgI2DF0OzbiiFOzrnnIGMwBS+Ap6Iw==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.12.3.tgz", + "integrity": "sha512-T2dTxL1svRym71fZtaW4pZYXbthbfFsEJr1NeOUg/p7laWXZbUt/8DMSZf8recu9f7+1F/Lv00HtzsEu6vDO9w==", "cpu": [ "x64" ], @@ -2036,9 +2036,9 @@ } }, "node_modules/@tauri-apps/cli-win32-arm64-msvc": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.12.0.tgz", - "integrity": "sha512-1W+v86wsYLuyBDN0iDessD4CD9o+yNyO0m8Dp3+/vfjiZrJ/v7R7/aTRBeikaq2tLGgxeag0gxnFggBNBGw91A==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.12.3.tgz", + "integrity": "sha512-eoiQwpEZWbpsVHcM9BAzqqe4TCHszvr3rsM7pUQ4ofLK0lF1i1d/jX0Qo5DYMqcrUtwQuDdDuOCbcT0Izf1VwQ==", "cpu": [ "arm64" ], @@ -2053,9 +2053,9 @@ } }, "node_modules/@tauri-apps/cli-win32-ia32-msvc": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.12.0.tgz", - "integrity": "sha512-SsBjvq4f7YaBGqcWoE3cycoItPf0SrQeqFqWWgfxoeZWAIz01E31LDSeZ2p/etJiIY0R9oi045chkFfb0O7WGw==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.12.3.tgz", + "integrity": "sha512-kE+KUg6Dbbkgvcw0m99wJVIToFQzJqpMBAXah74WqxaLzssNwSTUccrHp6+QVzMhjQP330tvekFmnQF+0NbE6Q==", "cpu": [ "ia32" ], @@ -2070,9 +2070,9 @@ } }, "node_modules/@tauri-apps/cli-win32-x64-msvc": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.12.0.tgz", - "integrity": "sha512-9zzDKYUH4TKKBgRdDdVQX8fiRO5gJ8hD1nGsHU9DOHG5Jpm3arjbu9Xg1frR20EusG3Sl8X0dppoO/4EoUXUGg==", + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.12.3.tgz", + "integrity": "sha512-L7wndWAgX2mLW7alswpL3d1R0P9FN2WYBgHaQkAYEBxHHGkY4vFX9CjcRQ1LAxDAMIJxrY7/aDziFJeChS84NQ==", "cpu": [ "x64" ], @@ -2087,18 +2087,18 @@ } }, "node_modules/@tauri-apps/plugin-dialog": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.8.0.tgz", - "integrity": "sha512-HSSD5C8UFE9ijD1wue84F7jjaIReFmj8AAPtS+xyjYRltJafIc4BiWHY7SJ6vbbew6u+YljEJHfyNfy5VwywXg==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.8.3.tgz", + "integrity": "sha512-Hd/yBfk2R5v2MFrz/0VArSXeh8xKLLXGunqSiTtcHKn1zNZwaKujuA0VSwUvNfwC4hDoF1PveS+gBDNe3nHspw==", "license": "MIT OR Apache-2.0", "dependencies": { "@tauri-apps/api": "^2.12.0" } }, "node_modules/@tauri-apps/plugin-opener": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-opener/-/plugin-opener-2.6.0.tgz", - "integrity": "sha512-KIl9qkBGyAUrbzfCtdk+NRPTXUOwpMyUKsKN57H6/qA0q8auVywXpfUyWClqX6I/iH8PHmqAUa/KK9YZPWVQew==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-opener/-/plugin-opener-2.7.2.tgz", + "integrity": "sha512-LyybP1VSzTMQiaFYcsbAse47KpivlyXdLZMQzGLEnkgQacGESnpjAfFoQ6h5sqWgAdZDH9szYjPzHMpv0Sz+TQ==", "license": "MIT OR Apache-2.0", "dependencies": { "@tauri-apps/api": "^2.12.0" @@ -2225,9 +2225,9 @@ } }, "node_modules/@testing-library/user-event": { - "version": "14.6.7", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.7.tgz", - "integrity": "sha512-MPCpX8bxe8zS+JmmTwLp8jd0dy1rAm60Te/SL8JrQM3qvQJcBOs1d7IefJMyZzqM3EWBrDn/LWDt1BCGu4ASfg==", + "version": "14.6.8", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.8.tgz", + "integrity": "sha512-vgSSqnANMnkcYR/vUNDbwS7aM3OErRLNUG8vCVVlj4oc6cKffUrccX7UAS5AmJQQNZTSibi9z5GvvRZ0aYgUCQ==", "dev": true, "license": "MIT", "engines": { @@ -2311,9 +2311,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.3.tgz", - "integrity": "sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==", + "version": "26.6.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.5.tgz", + "integrity": "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==", "dev": true, "license": "MIT", "dependencies": { @@ -2681,9 +2681,9 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.1.tgz", - "integrity": "sha512-yxLaQV9gkhS8ezJqCM6+ndU7mDY6gqAg75NQ+0IjwEI8IYOmQCgkRwHKVSfWXW076DsqMo0Dk+0FK1U+M5RgFw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.2.tgz", + "integrity": "sha512-fhJNGUdscQa4HkI0xFxwonWyhnVReCPDbXI7FH7jmzpnVCrFQI7PRrhWecO263610vOrs9tr2Y4xcf8uAdFxbw==", "dev": true, "license": "MIT", "dependencies": { @@ -2695,7 +2695,7 @@ "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", - "oxc-transform-react": "^0.145.0", + "oxc-transform-react": "^0.152.0", "vite": "^8.0.0" }, "peerDependenciesMeta": { @@ -2741,6 +2741,20 @@ } } }, + "node_modules/@vitest/coverage-v8/node_modules/obug": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.2.1.tgz", + "integrity": "sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/@vitest/expect": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.11.tgz", @@ -2907,9 +2921,9 @@ } }, "node_modules/argparse": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.2.tgz", - "integrity": "sha512-mFdDM6WqWKraGLsVb+C9CahPnzTXOefAOLq3jYcca2YZ8bEWpr++Tzj+zSaKW9+X9L5uSxcm1AZ3Y6aZJ09OhQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.3.tgz", + "integrity": "sha512-Sn98ftV3KfsO8xfLPHG6oT8y+b0yvbrLgZjgPDXsharNY15tTAjqIsIju4S32nl6/iEUNNE4v+yL2Zhm8ooP3w==", "funding": [ { "type": "github", @@ -2965,9 +2979,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.11.26", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.26.tgz", - "integrity": "sha512-GLQdD3y6UF8iVuMJl5fHgE4jdn/ua7n+toKfLgNlg3BqQtOZjpy68T8Tup8/wGWZCDlm7KMg7tPb4MPn7oN0TQ==", + "version": "2.11.30", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.30.tgz", + "integrity": "sha512-YJs6Pz17RMNv8HoyKREtCY38E3BV1nPkWVmIb+XN1uHC1Vqt3KZCH/uJH9ZKRoiKb/icZ6tvehyee6RZNbFfRA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -3001,9 +3015,9 @@ } }, "node_modules/browserslist": { - "version": "4.29.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.2.tgz", - "integrity": "sha512-/u9r8k8ue4ZhHCw9ovDtltpWdXeXzjhdxCGj6vm1RGLPXb8lu33EMdoCHF5Sx8oYBS+Q/FYYNmAqlHncxR3RmA==", + "version": "4.29.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.4.tgz", + "integrity": "sha512-2TcbbiwXEq+N0kD36tykpCfyyQigUXmuwNQbnPp4Xk4PX9JOqVIKjJlIDjpH7uY6tmRGoAd+apeT1p60T8wsdA==", "dev": true, "funding": [ { @@ -3021,11 +3035,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.11.26", - "caniuse-lite": "^1.0.30001812", - "electron-to-chromium": "^1.5.439", - "node-releases": "^2.0.57", - "update-browserslist-db": "^1.3.3" + "baseline-browser-mapping": "^2.11.29", + "caniuse-lite": "^1.0.30001816", + "electron-to-chromium": "^1.5.459", + "node-releases": "^2.0.59", + "update-browserslist-db": "^1.3.4" }, "bin": { "browserslist": "cli.js" @@ -3066,9 +3080,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001813", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001813.tgz", - "integrity": "sha512-zfjJo4rM0+fUomGDBW/xcDjhIwz/210DGvip2MAMDZ8KHcRPnOHmEgHPZP0UHlZoxr8fYKVJOqcORhYQcG4FKQ==", + "version": "1.0.30001817", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001817.tgz", + "integrity": "sha512-uZ1JG80BwhtMalIAGPxPfmNhHyd/B/nTdr3hITWlRamSyAdUStP1Gop01e7SD5q6J90ixJvWDbvmiFVfDgn4bw==", "dev": true, "funding": [ { @@ -3187,32 +3201,17 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", - "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-8.0.0.tgz", + "integrity": "sha512-JQUCCK+/CAGbGGx618PlFZMXH81Jtj7t73CHv9dd/zVWvxgGT2zLFRjnKb+Ng46GIwcy+f7f88qd4duqllK+WQ==", "dev": true, "license": "MIT", "dependencies": { "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.0" + "whatwg-url": "^17.1.2" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/data-urls/node_modules/whatwg-url": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", - "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.11.0", - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/decimal.js": { @@ -3284,9 +3283,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.439", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.439.tgz", - "integrity": "sha512-qu6QIPXhsb+CRcAiTMNjR4A1y/7tCYKkKjr5CZXRVih6qkDf79peZ2BpEU3qoDBNCRrcy3Mra3X9nG5oruuA7Q==", + "version": "1.5.462", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.462.tgz", + "integrity": "sha512-9qpCBlXPy5v7n1Q7WTO5rW2StI4WNQhl96HpgXRZLPlNoXAD0LbsQUflovQYAO44Yia073ISusqohncvGSMbGA==", "dev": true, "license": "ISC" }, @@ -3441,9 +3440,9 @@ } }, "node_modules/fast-uri": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", - "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.9.tgz", + "integrity": "sha512-hS/0Wt3Ya043oKXs0sIxrMpKQITXhMLIrVAKKXi4gozGC9v7YRWVnXIZzjNPTO02M9BdxLCWqK1yRXgNziVyJQ==", "dev": true, "funding": [ { @@ -3833,31 +3832,31 @@ "license": "MIT" }, "node_modules/jsdom": { - "version": "30.1.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.1.1.tgz", - "integrity": "sha512-FahmoPK5vbPc+jxV1iErMHmAZypCZ942NHF4+qqaWAuvaKKTBZxawnmAtrbGWLU7MtlxfqIP0qw6aSI+aWGtLg==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.1.3.tgz", + "integrity": "sha512-hQMUPvRgN7KxsfIytDQji7bimuJeRQa6Qo5+iuiZQk5CafeRxLIA10/cG5YCBFNpD9RO3oqIiN4CO1Y44kxqXg==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^7.0.0", - "@asamuzakjp/dom-selector": "^9.2.1", + "@asamuzakjp/css-color": "^7.1.3", + "@asamuzakjp/dom-selector": "^10.0.3", "@bramus/specificity": "^2.4.2", - "@csstools/css-syntax-patches-for-csstree": "^1.1.13", - "@exodus/bytes": "^1.15.1", + "@csstools/css-syntax-patches-for-csstree": "^1.1.15", + "@exodus/bytes": "^1.16.0", "css-tree": "^3.2.1", - "data-urls": "^7.0.0", + "data-urls": "^8.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^7.0.0", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.5.2", + "lru-cache": "^11.5.3", "parse5": "^8.0.1", "saxes": "^6.0.0", "tough-cookie": "^6.0.2", - "undici": "^8.10.2", + "undici": "^8.12.1", "w3c-xmlserializer": "^6.0.0", "webidl-conversions": "^8.0.1", "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^17.1.1", + "whatwg-url": "^17.2.0", "xml-name-validator": "^5.0.0" }, "engines": { @@ -4321,9 +4320,9 @@ } }, "node_modules/markdown-it": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-15.0.2.tgz", - "integrity": "sha512-q4IGxMv56jCqT4OCRCADBoDP3LO4MhmTXjFbphHPXs4g3j9Xg5RDnxqN8IF/3vIWEU+VCnUq+7JUg/cfy2E6Qw==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-15.0.3.tgz", + "integrity": "sha512-+Az7Ojz3iRGu8KYMvJ6xVhvrxP3eE+vEtJX75Ow88XBpcQNV/0lGX5ZynIIBftREo4DC2jsveAMDaeltmm8QvQ==", "funding": [ { "type": "github", @@ -4336,9 +4335,9 @@ ], "license": "MIT", "dependencies": { - "argparse": "^3.0.0", - "entities": "^8.0.0", - "linkify-it": "^6.0.0", + "argparse": "^3.0.3", + "entities": "^8.1.0", + "linkify-it": "^6.1.0", "mdurl": "^2.1.0", "punycode.js": "^2.3.1", "uc.micro": "^3.0.0" @@ -4451,9 +4450,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.19", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", - "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz", + "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==", "dev": true, "funding": [ { @@ -4470,9 +4469,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.57", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.57.tgz", - "integrity": "sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==", + "version": "2.0.59", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.59.tgz", + "integrity": "sha512-5qr2okC4ItAI0hG5SaV0HoYMpnM/Y6+Oqr7AmPYy/2uEoGvS+GbSKLeRxSS1uAdu59yz0ouzcuXievSgg///WA==", "dev": true, "license": "MIT", "engines": { @@ -4523,9 +4522,9 @@ } }, "node_modules/obug": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.2.1.tgz", - "integrity": "sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/obug/-/obug-3.0.0.tgz", + "integrity": "sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==", "dev": true, "funding": [ "https://github.com/sponsors/sxzz", @@ -4600,9 +4599,9 @@ } }, "node_modules/postcss": { - "version": "8.5.28", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", - "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", + "version": "8.5.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.31.tgz", + "integrity": "sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==", "dev": true, "funding": [ { @@ -4620,9 +4619,9 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.18", + "nanoid": "^3.3.20", "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "source-map-js": "^1.2.2" }, "engines": { "node": "^10 || ^12 || >=14" @@ -4707,24 +4706,24 @@ } }, "node_modules/react": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", - "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.1.tgz", + "integrity": "sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", - "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.1.tgz", + "integrity": "sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==", "license": "MIT", "dependencies": { "scheduler": "^0.28.0" }, "peerDependencies": { - "react": "^19.3.0" + "react": "^19.3.1" } }, "node_modules/react-is": { @@ -4760,13 +4759,13 @@ } }, "node_modules/rolldown": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.11.tgz", - "integrity": "sha512-qpSwIyz0jHQq5qXBTNxFmE6664rJ7O+4TvPFOiOaBSrz8IOHc1koKKSqTM2H6u1UG1+TveuC6vaDHKXFOvb1Kw==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.14.tgz", + "integrity": "sha512-eTBTTqMR6uHKLgcUqpJP8ntzDI6V4LYA8negAMBEI7gkgVvOdrx6VsvS2Ym+83KhOPdLCHWJu0w7UQFJZhHKNw==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.151.0", + "@oxc-project/types": "=0.154.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -4776,21 +4775,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm-eabi": "1.2.11", - "@rolldown/binding-android-arm64": "1.2.11", - "@rolldown/binding-darwin-arm64": "1.2.11", - "@rolldown/binding-darwin-x64": "1.2.11", - "@rolldown/binding-freebsd-x64": "1.2.11", - "@rolldown/binding-linux-arm-gnueabihf": "1.2.11", - "@rolldown/binding-linux-arm64-gnu": "1.2.11", - "@rolldown/binding-linux-arm64-musl": "1.2.11", - "@rolldown/binding-linux-ppc64-gnu": "1.2.11", - "@rolldown/binding-linux-s390x-gnu": "1.2.11", - "@rolldown/binding-linux-x64-gnu": "1.2.11", - "@rolldown/binding-linux-x64-musl": "1.2.11", - "@rolldown/binding-openharmony-arm64": "1.2.11", - "@rolldown/binding-win32-arm64-msvc": "1.2.11", - "@rolldown/binding-win32-x64-msvc": "1.2.11" + "@rolldown/binding-android-arm-eabi": "1.2.14", + "@rolldown/binding-android-arm64": "1.2.14", + "@rolldown/binding-darwin-arm64": "1.2.14", + "@rolldown/binding-darwin-x64": "1.2.14", + "@rolldown/binding-freebsd-x64": "1.2.14", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.14", + "@rolldown/binding-linux-arm64-gnu": "1.2.14", + "@rolldown/binding-linux-arm64-musl": "1.2.14", + "@rolldown/binding-linux-ppc64-gnu": "1.2.14", + "@rolldown/binding-linux-s390x-gnu": "1.2.14", + "@rolldown/binding-linux-x64-gnu": "1.2.14", + "@rolldown/binding-linux-x64-musl": "1.2.14", + "@rolldown/binding-openharmony-arm64": "1.2.14", + "@rolldown/binding-win32-arm64-msvc": "1.2.14", + "@rolldown/binding-win32-x64-msvc": "1.2.14" } }, "node_modules/rxjs": { @@ -4989,9 +4988,9 @@ "license": "MIT" }, "node_modules/std-env": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", - "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.3.0.tgz", + "integrity": "sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==", "dev": true, "license": "MIT" }, @@ -5069,9 +5068,9 @@ } }, "node_modules/tinyrainbow": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.1.tgz", - "integrity": "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.2.0.tgz", + "integrity": "sha512-LgO3D9yZJjApUiuUfl9iFAwrtaX4+lok3wJIqttGoKCHlWUqHqbQpnxCf82L8FjgKsh4iGo78hqJwgL8F6To2A==", "dev": true, "license": "MIT", "engines": { @@ -5079,22 +5078,22 @@ } }, "node_modules/tldts": { - "version": "7.4.16", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.16.tgz", - "integrity": "sha512-QwBER5KMR86IIjpIiO7H/Z3IMJPsZ1A6RKPAqzTTgOyUQUSt9FdnKcqhTaJmkY6HVrgouZHZR0ncK5QxvmnQeg==", + "version": "7.4.19", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.19.tgz", + "integrity": "sha512-48dH6aSpQnpbzDUc4vIQZ1VjB8tkK+e8c1yx05/SZK+rkssgjEOlxDd/yU8/a4vGYQ9vRgJr9dwMq9TJ0b3X2Q==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.4.16" + "tldts-core": "^7.4.19" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.4.16", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.16.tgz", - "integrity": "sha512-MDolfaSJtlSK5Y0A1xl3277ekubZwobpBjugknDizI9O5Rm60a1m8k4ICK+MRsCDzPygT81mp3BBf5RKDlFRfA==", + "version": "7.4.19", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.19.tgz", + "integrity": "sha512-goNXV6Ho9TIOfpJZanTd6CKG5DyYgYAL+k+22T0SLh8l6+KHIfBUPFuePuSZv05UttIaaLmI9tb7TmGIdK5AkQ==", "dev": true, "license": "MIT" }, @@ -5112,16 +5111,16 @@ } }, "node_modules/tr46": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", - "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-7.0.0.tgz", + "integrity": "sha512-BcDSDW+SIGWVOns1Zm6Yg91q9AEj7eaID0QDY9oIqJD1A8dscNwMcl9Sms2DeuWCNov1X0/oXanHGYQBSLwZsg==", "dev": true, "license": "MIT", "dependencies": { "punycode": "^2.3.1" }, "engines": { - "node": ">=20" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/tree-kill": { @@ -5162,15 +5161,15 @@ } }, "node_modules/typed-rest-client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-2.3.0.tgz", - "integrity": "sha512-FfBj5tjviexjIus3La4n4s9i+f81Zj7HU+lUlQWK219HMRfmzLsbIf4PZF2+X6EouJKyuANpvvef5VrUWM4AFw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-2.3.1.tgz", + "integrity": "sha512-k4kX5Up6qA68D0Cby2AK+6+vM5k3qTxe+/3FqhnHRExjY5cfbOnzjQZbP/LXleF8hVoDvDqxlgk9KK83HoBZlQ==", "dev": true, "license": "MIT", "dependencies": { "des.js": "^1.1.0", "js-md4": "^0.3.2", - "qs": "^6.14.1", + "qs": "6.15.1", "tunnel": "0.0.6", "underscore": "^1.13.8" }, @@ -5227,9 +5226,9 @@ "license": "MIT" }, "node_modules/undici": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-8.11.2.tgz", - "integrity": "sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ==", + "version": "8.12.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.12.3.tgz", + "integrity": "sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw==", "dev": true, "license": "MIT", "engines": { @@ -5257,9 +5256,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", - "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.4.tgz", + "integrity": "sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==", "dev": true, "funding": [ { @@ -5288,9 +5287,9 @@ } }, "node_modules/verkit": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/verkit/-/verkit-0.3.2.tgz", - "integrity": "sha512-zj/ob3UsvJGN0whEAKFp53REA5X66hvffVqoCtVQAakJKnKlH+/PcOfMoFwIG/o4rElqLv/ycAFlx8ZlXUorCg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/verkit/-/verkit-0.5.0.tgz", + "integrity": "sha512-u4J1hr6Y+C/hit34GwL3eIcUf3wngT8TlYUjK7tk0jxydKLAq3sYvifjdTDA6U3KCKRcQCQDGf/srjxfZF3l7g==", "dev": true, "license": "MIT", "engines": { @@ -5301,16 +5300,16 @@ } }, "node_modules/vite": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.1.tgz", - "integrity": "sha512-/bvH9E9tmCXRGp2uXY3WbOldqpTwFkbha/8ANaEQ6VkxhH60KyqLwgZq6lG2y+4uT55x9+9eUHMpQ7uGnOCKjA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.4.tgz", + "integrity": "sha512-IftLE8phJhdNRIGNEV4JCCvfNScoZQVfcXaN8TQropWGJtOHcu+iAB9pHcuGvmEb/kddw0LBe/jS8ztdC6xdiQ==", "dev": true, "license": "MIT", "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.7", - "postcss": "^8.5.28", - "rolldown": "~1.2.9", + "postcss": "^8.5.29", + "rolldown": "~1.2.12", "tinyglobby": "^0.2.17" }, "bin": { @@ -5468,6 +5467,20 @@ } } }, + "node_modules/vitest/node_modules/obug": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.2.1.tgz", + "integrity": "sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/w3c-xmlserializer": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-6.0.0.tgz", @@ -5482,9 +5495,9 @@ } }, "node_modules/weapon-regex": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/weapon-regex/-/weapon-regex-2.0.5.tgz", - "integrity": "sha512-BJZkSdtcae9Wb8+hKNtAqR+Q61EMOAuQnpCCHKwT50K7fIWg7/2/RnbKR27YB+sMcYxYLUVj+Asm5Y2XhD8mZg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/weapon-regex/-/weapon-regex-2.0.6.tgz", + "integrity": "sha512-iJC2vqYp+bh3r4X6zjuP0h65XqXjgUX3nJgmhj0PQMrdhAbUwCfN76CSTEEQqV3G7468kjOJ69PmytTG8l/8Gg==", "dev": true, "license": "Apache-2.0" }, @@ -5509,14 +5522,14 @@ } }, "node_modules/whatwg-url": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.2.tgz", - "integrity": "sha512-TEZA+Zqxin7Jjsm2cjRohCmen5awh+hT6Zi3VZdqZlNRk7zvOI/9WpBFg/DWlA56bWnzwm6DuB8NS0EsxQH9uQ==", + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.3.0.tgz", + "integrity": "sha512-KwOAJrpf+GTgBvcBQJcP38sMF0DsQKdwtG+TxM2pW44P6E5k0hDbWrDmyuJDIF0Uef0aQq0ZoJs+5oI+k8ddhg==", "dev": true, "license": "MIT", "dependencies": { - "@exodus/bytes": "^1.15.1", - "tr46": "^6.0.0", + "@exodus/bytes": "^1.16.0", + "tr46": "^7.0.0", "webidl-conversions": "^8.0.1" }, "engines": { @@ -5587,9 +5600,9 @@ } }, "node_modules/zod": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.5.tgz", - "integrity": "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==", + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.7.tgz", + "integrity": "sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==", "dev": true, "license": "MIT", "funding": { diff --git a/deny.toml b/deny.toml index f4545b51..a9e82f77 100644 --- a/deny.toml +++ b/deny.toml @@ -7,9 +7,6 @@ targets = [ [advisories] yanked = "deny" -ignore = [ - { crate = "zip@4.6.1", reason = "every 4.x is yanked and tauri-plugin-updater 2.x still needs zip ^4" }, -] [licenses] allow = [ diff --git a/package-lock.json b/package-lock.json index 50b652c5..5123b219 100644 --- a/package-lock.json +++ b/package-lock.json @@ -92,9 +92,9 @@ "license": "MIT" }, "node_modules/ansi-regex": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", - "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, "license": "MIT", "engines": { @@ -325,9 +325,9 @@ } }, "node_modules/ignore": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.10.tgz", - "integrity": "sha512-HpbUakT7xp5miBUywCHf36ZEuAJNklBJDDsGpUIjMzOSmM8ELSfA9Sa/QDPeNeqeoN31u+UTCkL4klCOVvRm4Q==", + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.13.tgz", + "integrity": "sha512-2E8Q6rh+1RRSq/YdaGsNfXsEZy9FVqv6BSSrkmZJP7BnaoPnRfKL+YaofPvP+5rzdk144qSm6i4+hvPgUcbV4Q==", "dev": true, "license": "MIT", "engines": { @@ -506,9 +506,9 @@ } }, "node_modules/markdown-it": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-15.0.1.tgz", - "integrity": "sha512-9/7gE95FNPkfUWrjJIoHZza2iLmuJlPD0UNMxPi7bxUrbCR525YZY0r+zyfes0dZI5ZZ/uNIXUJca0pJvtw41g==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-15.0.3.tgz", + "integrity": "sha512-+Az7Ojz3iRGu8KYMvJ6xVhvrxP3eE+vEtJX75Ow88XBpcQNV/0lGX5ZynIIBftREo4DC2jsveAMDaeltmm8QvQ==", "dev": true, "funding": [ { @@ -522,9 +522,9 @@ ], "license": "MIT", "dependencies": { - "argparse": "^3.0.0", - "entities": "^8.0.0", - "linkify-it": "^6.0.0", + "argparse": "^3.0.3", + "entities": "^8.1.0", + "linkify-it": "^6.1.0", "mdurl": "^2.1.0", "punycode.js": "^2.3.1", "uc.micro": "^3.0.0" @@ -534,9 +534,9 @@ } }, "node_modules/markdown-it/node_modules/argparse": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.2.tgz", - "integrity": "sha512-mFdDM6WqWKraGLsVb+C9CahPnzTXOefAOLq3jYcca2YZ8bEWpr++Tzj+zSaKW9+X9L5uSxcm1AZ3Y6aZJ09OhQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.3.tgz", + "integrity": "sha512-Sn98ftV3KfsO8xfLPHG6oT8y+b0yvbrLgZjgPDXsharNY15tTAjqIsIju4S32nl6/iEUNNE4v+yL2Zhm8ooP3w==", "dev": true, "funding": [ { @@ -844,9 +844,9 @@ } }, "node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.1.0.tgz", + "integrity": "sha512-fS8hnLIjnjvdQIj39Geug8wWsR0HrYZ43KShKxNfwT7t2LOHo/LbWZEzEaSOjwtjdCsjoE6syHhonEzW0zv0+Q==", "dev": true, "funding": [ { @@ -1367,9 +1367,9 @@ "license": "MIT" }, "node_modules/unicorn-magic": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", - "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.1.tgz", + "integrity": "sha512-lzlXPoVB0Uy/FvTaUgX39RbixYiSKoc3JSoSf01+0c2B6FR3qdYIPN7Qjo/AV7n6sqLCk0509cT3LRj1oSZ1+A==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 2657e44a..045ad781 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ }, "overrides": { "katex": "^0.18.2", + "markdown-it": "^15.0.3", "smol-toml": "^1.9.0" }, "scripts": { From 5551cb9702e90a8e06a0f50c18d04eafdfaaac9c Mon Sep 17 00:00:00 2001 From: rgdevment Date: Tue, 20 Oct 2026 15:27:46 -0300 Subject: [PATCH 02/11] feat(keys): paste the latest item as plain text or as any form from anywhere, each with a shortcut of its own --- app/src-tauri/src/keys.rs | 172 +++++++++++++---- app/src-tauri/src/keys_test.rs | 63 ++++-- app/src-tauri/src/lib.rs | 5 +- app/src-tauri/src/panel.rs | 15 ++ app/src-tauri/src/settings.rs | 44 +++-- app/src/core.ts | 43 +++-- app/src/index.css | 6 + app/src/locales.ts | 29 ++- app/src/tests/refusals.test.tsx | 11 +- app/src/tests/setup.ts | 11 +- app/src/tests/window.test.tsx | 59 +++++- app/src/ui/Keys.tsx | 166 +++++++++++----- crates/cp-config/src/lib.rs | 19 ++ crates/cp-config/src/lib_test.rs | 61 ++++++ crates/cp-core/src/paste_as.rs | 14 ++ crates/cp-core/src/paste_as_test.rs | 50 +++++ crates/cp-panel/src/app.rs | 36 +++- crates/cp-panel/src/handing.rs | 24 +++ crates/cp-panel/src/main.rs | 1 + crates/cp-panel/src/orders.rs | 19 +- crates/cp-panel/src/quick.rs | 288 ++++++++++++++++++++++++++++ crates/cp-panel/src/quick_test.rs | 40 ++++ crates/cp-panel/src/showing.rs | 22 ++- crates/cp-panel/ui/chooser.slint | 222 +++++++++++++++++++++ crates/cp-panel/ui/panel.slint | 5 +- 25 files changed, 1256 insertions(+), 169 deletions(-) create mode 100644 crates/cp-panel/src/quick.rs create mode 100644 crates/cp-panel/src/quick_test.rs create mode 100644 crates/cp-panel/ui/chooser.slint diff --git a/app/src-tauri/src/keys.rs b/app/src-tauri/src/keys.rs index cb2a28f9..022593f2 100644 --- a/app/src-tauri/src/keys.rs +++ b/app/src-tauri/src/keys.rs @@ -1,10 +1,73 @@ use crate::note::note; +use cp_config::Config; +use std::collections::HashMap; use std::sync::Mutex; use tauri::{AppHandle, Manager, Runtime}; use tauri_plugin_global_shortcut::{GlobalShortcutExt, Shortcut, ShortcutState}; +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default, serde::Deserialize)] +#[serde(rename_all = "kebab-case")] +pub enum Role { + #[default] + Panel, + Plain, + Forms, +} + +impl Role { + pub const ALL: [Role; 3] = [Role::Panel, Role::Plain, Role::Forms]; + + pub fn of(self, config: &Config) -> &str { + match self { + Role::Panel => &config.shortcut, + Role::Plain => &config.plain_shortcut, + Role::Forms => &config.forms_shortcut, + } + } + + pub fn set(self, config: &mut Config, said: String) { + match self { + Role::Panel => config.shortcut = said, + Role::Plain => config.plain_shortcut = said, + Role::Forms => config.forms_shortcut = said, + } + } + + pub fn fallback(self) -> &'static str { + match self { + Role::Panel => cp_config::SHORTCUT, + Role::Plain => cp_config::PLAIN_SHORTCUT, + Role::Forms => cp_config::FORMS_SHORTCUT, + } + } + + fn spare(self) -> &'static [&'static str] { + match self { + Role::Panel => SPARE, + Role::Plain => PLAIN_SPARE, + Role::Forms => FORMS_SPARE, + } + } + + fn answer(self, app: &AppHandle) { + match self { + Role::Panel => crate::panel::show(app), + Role::Plain => crate::panel::paste_plain(app), + Role::Forms => crate::panel::choose(app), + } + } + + fn named(self) -> &'static str { + match self { + Role::Panel => "the panel", + Role::Plain => "pasting plain", + Role::Forms => "pasting as", + } + } +} + #[derive(Default)] -pub struct Bound(Mutex>); +pub struct Bound(Mutex>); #[derive(serde::Serialize)] pub struct Keys { @@ -12,37 +75,73 @@ pub struct Keys { bound: bool, } -pub fn raise(app: &AppHandle, said: &str) { +pub fn raise(app: &AppHandle, config: &Config) { app.manage(Bound::default()); - match bind(app, said) { - Ok(()) => note(&format!("the «{said}» shortcut answers")), - Err(why) => note(&format!("no shortcut for the panel: {why}")), + for role in Role::ALL { + let said = role.of(config); + if said.is_empty() { + continue; + } + match bind(app, role, said) { + Ok(()) => note(&format!( + "the «{said}» shortcut answers for {}", + role.named() + )), + Err(why) => note(&format!("no shortcut for {}: {why}", role.named())), + } } } -pub fn bind(app: &AppHandle, said: &str) -> Result<(), String> { +pub fn release(app: &AppHandle, role: Role) { + if let Some(one) = held(app, role).and_then(|said| said.parse::().ok()) + && let Err(why) = app.global_shortcut().unregister(one) + { + note(&format!( + "«{one:?}» stayed registered for {}: {why}", + role.named() + )); + } + remember(app, role, None); +} + +pub fn bind(app: &AppHandle, role: Role, said: &str) -> Result<(), String> { + release(app, role); + if said.is_empty() { + return Ok(()); + } let wanted: Shortcut = said .parse() .map_err(|_| format!("«{said}» is not a combination the system understands"))?; - let keys = app.global_shortcut(); - let _ = keys.unregister_all(); - remember(app, None); let handle = app.clone(); - keys.on_shortcut(wanted, move |_app, _shortcut, event| { - if event.state() == ShortcutState::Pressed { - crate::panel::show(&handle); - } - }) - .map_err(|why| format!("the system would not give up «{said}»: {why}"))?; - remember(app, Some(said)); + app.global_shortcut() + .on_shortcut(wanted, move |_app, _shortcut, event| { + if event.state() == ShortcutState::Pressed { + role.answer(&handle); + } + }) + .map_err(|why| format!("the system would not give up «{said}»: {why}"))?; + remember(app, role, Some(said)); Ok(()) } -fn remember(app: &AppHandle, said: Option<&str>) { +fn held(app: &AppHandle, role: Role) -> Option { + app.try_state::().and_then(|state| { + state + .0 + .lock() + .ok() + .and_then(|held| held.get(&role).cloned()) + }) +} + +fn remember(app: &AppHandle, role: Role, said: Option<&str>) { if let Some(state) = app.try_state::() && let Ok(mut held) = state.0.lock() { - *held = said.map(str::to_owned); + match said { + Some(said) => held.insert(role, said.to_owned()), + None => held.remove(&role), + }; } } @@ -51,20 +150,22 @@ pub const SPARE: &[&str] = &["Ctrl+Alt+V", "Ctrl+Cmd+V", "Ctrl+Shift+V"]; #[cfg(not(target_os = "macos"))] pub const SPARE: &[&str] = &["Ctrl+Alt+V", "Alt+Shift+V", "Ctrl+Alt+Shift+V"]; +#[cfg(target_os = "macos")] +pub const PLAIN_SPARE: &[&str] = &["Ctrl+Shift+V", "Ctrl+Cmd+V", "Ctrl+Alt+B"]; +#[cfg(not(target_os = "macos"))] +pub const PLAIN_SPARE: &[&str] = &["Alt+Shift+V", "Ctrl+Alt+Shift+V", "Ctrl+Alt+B"]; + +#[cfg(target_os = "macos")] +pub const FORMS_SPARE: &[&str] = &["Ctrl+Alt+P", "Ctrl+Cmd+P", "Ctrl+Shift+P"]; +#[cfg(not(target_os = "macos"))] +pub const FORMS_SPARE: &[&str] = &["Ctrl+Alt+P", "Alt+Shift+P", "Ctrl+Alt+Shift+P"]; + fn grantable(app: &AppHandle, one: Shortcut) -> bool { let keys = app.global_shortcut(); if keys.is_registered(one) { return false; } - let handle = app.clone(); - if keys - .on_shortcut(one, move |_app, _shortcut, event| { - if event.state() == ShortcutState::Pressed { - crate::panel::show(&handle); - } - }) - .is_err() - { + if keys.on_shortcut(one, |_app, _shortcut, _event| {}).is_err() { return false; } if let Err(why) = keys.unregister(one) { @@ -76,9 +177,10 @@ fn grantable(app: &AppHandle, one: Shortcut) -> bool { } #[tauri::command] -pub fn spare(app: tauri::AppHandle, taken: String) -> Vec { +pub fn spare(app: tauri::AppHandle, taken: String, role: Option) -> Vec { let held = taken.parse::().ok(); - SPARE + role.unwrap_or_default() + .spare() .iter() .filter_map(|said| said.parse::().ok().map(|one| (said, one))) .filter(|(_, one)| held != Some(*one)) @@ -88,14 +190,12 @@ pub fn spare(app: tauri::AppHandle, taken: String) -> Vec { } #[tauri::command] -pub fn keys(app: tauri::AppHandle) -> Keys { +pub fn keys(app: tauri::AppHandle, role: Option) -> Keys { + let role = role.unwrap_or_default(); let wanted = crate::settings::settings() - .map(|one| one.shortcut) - .unwrap_or_else(|_| cp_config::SHORTCUT.to_owned()); - let bound = app - .try_state::() - .and_then(|state| state.0.lock().ok().map(|held| held.is_some())) - .unwrap_or(false); + .map(|one| role.of(&one).to_owned()) + .unwrap_or_else(|_| role.fallback().to_owned()); + let bound = held(&app, role).is_some(); Keys { wanted, bound } } diff --git a/app/src-tauri/src/keys_test.rs b/app/src-tauri/src/keys_test.rs index 7f459000..1ac12f26 100644 --- a/app/src-tauri/src/keys_test.rs +++ b/app/src-tauri/src/keys_test.rs @@ -1,8 +1,43 @@ use super::*; +const EVERY_SPARE: [&[&str]; 3] = [SPARE, PLAIN_SPARE, FORMS_SPARE]; + +fn every_spare() -> impl Iterator { + EVERY_SPARE.into_iter().flatten() +} + #[test] fn what_the_settings_file_ships_with_is_a_combination_the_system_knows() { - assert!(cp_config::SHORTCUT.parse::().is_ok()); + for role in Role::ALL { + assert!(role.fallback().parse::().is_ok(), "{role:?}"); + } +} + +#[test] +fn each_shortcut_reads_and_writes_its_own_line_of_the_settings() { + let mut config = Config::default(); + for role in Role::ALL { + assert_eq!(role.of(&config), role.fallback()); + role.set(&mut config, format!("Ctrl+Alt+F{}", role as u8 + 1)); + } + assert_eq!(config.shortcut, "Ctrl+Alt+F1"); + assert_eq!(config.plain_shortcut, "Ctrl+Alt+F2"); + assert_eq!(config.forms_shortcut, "Ctrl+Alt+F3"); +} + +#[test] +fn the_window_names_each_shortcut_the_way_the_settings_spell_it() { + let roles: Vec = + serde_json::from_str(r#"["panel","plain","forms"]"#).expect("names it knows"); + assert_eq!(roles, Role::ALL); + assert_eq!(Role::default(), Role::Panel); +} + +#[test] +fn every_spare_list_starts_with_the_shortcut_it_ships_with() { + for role in Role::ALL { + assert_eq!(role.spare().first(), Some(&role.fallback()), "{role:?}"); + } } #[test] @@ -14,13 +49,13 @@ fn a_combination_nobody_could_press_is_refused_before_the_system_sees_it() { #[test] fn nothing_is_bound_until_the_system_says_yes() { let bound = Bound::default(); - assert!(bound.0.lock().expect("unpoisoned").is_none()); + assert!(bound.0.lock().expect("unpoisoned").is_empty()); } #[test] fn every_spare_combination_is_one_the_system_can_be_asked_for() { - assert!(!SPARE.is_empty()); - for said in SPARE { + assert!(EVERY_SPARE.iter().all(|one| !one.is_empty())); + for said in every_spare() { assert!( said.parse::().is_ok(), "«{said}» would be dropped in silence" @@ -30,7 +65,7 @@ fn every_spare_combination_is_one_the_system_can_be_asked_for() { #[test] fn the_spare_list_spells_its_modifiers_the_way_the_picker_does() { - for said in SPARE { + for said in every_spare() { let parts: Vec<&str> = said.split('+').collect(); let order = ["Ctrl", "Alt", "Shift", "Cmd"]; let mut seen = 0; @@ -47,13 +82,15 @@ fn the_spare_list_spells_its_modifiers_the_way_the_picker_does() { #[test] fn no_two_spare_entries_are_the_same_combination_spelled_differently() { - let parsed: Vec = SPARE - .iter() - .filter_map(|said| said.parse::().ok()) - .collect(); - for (at, one) in parsed.iter().enumerate() { - for other in &parsed[at + 1..] { - assert_ne!(one, other, "one combination is offered twice"); + for list in EVERY_SPARE { + let parsed: Vec = list + .iter() + .filter_map(|said| said.parse::().ok()) + .collect(); + for (at, one) in parsed.iter().enumerate() { + for other in &parsed[at + 1..] { + assert_ne!(one, other, "one combination is offered twice"); + } } } } @@ -85,7 +122,7 @@ fn no_spare_takes_a_combination_the_system_or_everyday_apps_already_use() { .iter() .map(|said| said.parse::().expect("a real combination")) .collect(); - for said in SPARE { + for said in every_spare() { let one: Shortcut = said.parse().expect("a real combination"); assert!(!spoken.contains(&one), "«{said}» is already spoken for"); } diff --git a/app/src-tauri/src/lib.rs b/app/src-tauri/src/lib.rs index b9fef529..a5397b51 100644 --- a/app/src-tauri/src/lib.rs +++ b/app/src-tauri/src/lib.rs @@ -87,10 +87,7 @@ pub fn run() { waking::on_first_run(); } panel::raise(app.handle()); - let wanted = kept - .as_ref() - .map_or(cp_config::SHORTCUT, |one| one.shortcut.as_str()); - keys::raise(app.handle(), wanted); + keys::raise(app.handle(), &kept.clone().unwrap_or_default()); welcome::raise(app.handle(), fresh); update::keep_looking(); Ok(()) diff --git a/app/src-tauri/src/panel.rs b/app/src-tauri/src/panel.rs index fe47e0ab..c5026d45 100644 --- a/app/src-tauri/src/panel.rs +++ b/app/src-tauri/src/panel.rs @@ -281,6 +281,21 @@ fn allow(app: &AppHandle) { let _ = app; } +pub fn paste_plain(app: &AppHandle) { + ask(app, "plain"); +} + +pub fn choose(app: &AppHandle) { + ask(app, "forms"); +} + +fn ask(app: &AppHandle, what: &str) { + allow(app); + if let Err(Said::Broken) = say(app, what) { + bring_back(app); + } +} + pub fn hide(app: &AppHandle) { if let Err(Said::Broken) = say(app, "hide") { bring_back(app); diff --git a/app/src-tauri/src/settings.rs b/app/src-tauri/src/settings.rs index 23eeb30a..682f6279 100644 --- a/app/src-tauri/src/settings.rs +++ b/app/src-tauri/src/settings.rs @@ -1,3 +1,4 @@ +use crate::keys::Role; use cp_config::Config; use std::path::PathBuf; @@ -126,31 +127,42 @@ fn written(app: &tauri::AppHandle, config: Config) -> Result { let dir = folder().ok_or_else(nowhere)?; let path = cp_config::at(&dir); let was = read_or_reset(&path).ok(); - let before = was.as_ref().map(|one| one.shortcut.clone()); let config = Config { - welcomed: was.and_then(|one| one.welcomed), + welcomed: was.as_ref().and_then(|one| one.welcomed.clone()), ..config }; cp_config::write(&path, &config).map_err(|why| why.to_string())?; let landed = cp_config::read(&path).map_err(|why| why.to_string())?; - if before.as_deref() == Some(landed.shortcut.as_str()) { - return Ok(landed); + let moved: Vec = Role::ALL + .into_iter() + .filter(|role| was.as_ref().map(|one| role.of(one)) != Some(role.of(&landed))) + .collect(); + for role in &moved { + crate::keys::release(app, *role); + } + let mut back = landed.clone(); + let mut refused = None; + for role in moved { + let Err(why) = crate::keys::bind(app, role, role.of(&landed)) else { + continue; + }; + crate::note::note(&format!("the new shortcut could not be taken: {why}")); + let before = was + .as_ref() + .map_or(role.fallback(), |one| role.of(one)) + .to_owned(); + if let Err(twice) = crate::keys::bind(app, role, &before) { + crate::note::note(&format!( + "and the one before it did not come back either: {twice}" + )); + } + role.set(&mut back, before); + refused.get_or_insert(why); } - let Err(why) = crate::keys::bind(app, &landed.shortcut) else { + let Some(why) = refused else { return Ok(landed); }; - crate::note::note(&format!("the new shortcut could not be taken: {why}")); - let was = before.unwrap_or_else(|| cp_config::SHORTCUT.to_owned()); - let back = Config { - shortcut: was.clone(), - ..landed - }; let _ = cp_config::write(&path, &back); - if let Err(twice) = crate::keys::bind(app, &was) { - crate::note::note(&format!( - "and the one before it did not come back either: {twice}" - )); - } Err(why) } diff --git a/app/src/core.ts b/app/src/core.ts index 1626b8fb..1eb66ecd 100644 --- a/app/src/core.ts +++ b/app/src/core.ts @@ -17,6 +17,8 @@ export type Kept = { locale: string | null; theme: Look; shortcut: string; + "plain-shortcut"?: string; + "forms-shortcut"?: string; "hides-when-left": boolean; "keeps-days": number; "images-quota-mb": number; @@ -270,28 +272,33 @@ export function empty(): Promise { export type Keys = { wanted: string; bound: boolean }; -export function useKeys(shortcut: string) { +export type Role = "panel" | "plain" | "forms"; + +export function useKeys(shortcut: string, role: Role = "panel") { const [keys, setKeys] = useState(null); const [spare, setSpare] = useState([]); const live = useRef(true); - const ask = useCallback((taken: string) => { - invoke("keys") - .then((said) => { - if (!live.current) { - return; - } - setKeys(said); - if (said.bound) { - setSpare([]); - return; - } - invoke("spare", { taken }) - .then((free) => live.current && setSpare(free)) - .catch(() => live.current && setSpare([])); - }) - .catch(() => live.current && setKeys(null)); - }, []); + const ask = useCallback( + (taken: string) => { + invoke("keys", { role }) + .then((said) => { + if (!live.current) { + return; + } + setKeys(said); + if (said.bound) { + setSpare([]); + return; + } + invoke("spare", { taken, role }) + .then((free) => live.current && setSpare(free)) + .catch(() => live.current && setSpare([])); + }) + .catch(() => live.current && setKeys(null)); + }, + [role], + ); useEffect(() => { live.current = true; diff --git a/app/src/index.css b/app/src/index.css index 9c406c2b..a6e0bd08 100644 --- a/app/src/index.css +++ b/app/src/index.css @@ -985,6 +985,12 @@ button:disabled { text-decoration: line-through; } +.keys.off { + font-family: inherit; + color: var(--muted); + border-style: dashed; +} + .welcome { height: calc(100% - 35px); display: flex; diff --git a/app/src/locales.ts b/app/src/locales.ts index b1b90b87..1c5eb7ce 100644 --- a/app/src/locales.ts +++ b/app/src/locales.ts @@ -97,7 +97,19 @@ const ES = { keysTaken: "Otro programa ya usa esa combinación, así que el panel no se abre con ella. Elige otra cuando puedas cambiarla", keysFree: "Estas están libres ahora mismo:", - bandOpens: "ABRIR EL PANEL", + bandAnywhere: "EN CUALQUIER PARTE", + keysAsCopied: "Pegar como se copió", + keysAsCopiedWhy: "El de siempre: pega lo último tal cual lo copiaste", + keysPlain: "Pegar en texto plano", + keysPlainWhy: "Pega lo último solo como texto, sin formato y sin abrir el panel", + keysForms: "Pegar como…", + keysFormsWhy: "Muestra junto al puntero las formas de pegar lo último; eliges con un número", + keysOff: "Sin asignar", + keysSet: "Asignar", + keysClear: "Quitar", + keysTwice: "Esa combinación ya la usa otro atajo de CoPanda. Elige otra", + keysTakenPaste: + "Otro programa ya usa esa combinación, así que este atajo no responde. Elige otra cuando puedas cambiarla", keysTable: "Lo que responde el panel", keysTableWhy: "Estas teclas funcionan mientras el panel está abierto", hides: "Ocultar al hacer clic fuera", @@ -446,7 +458,20 @@ const EN: Record = { keysTaken: "Another program already uses that combination, so the panel will not open with it. Pick another one when you can change it", keysFree: "These are free right now:", - bandOpens: "OPENING THE PANEL", + bandAnywhere: "ANYWHERE", + keysAsCopied: "Paste as copied", + keysAsCopiedWhy: "The usual one: pastes the last thing just as you copied it", + keysPlain: "Paste as plain text", + keysPlainWhy: "Pastes the last thing as text alone, no formatting, without opening the panel", + keysForms: "Paste as…", + keysFormsWhy: + "Shows the ways to paste the last thing next to the pointer; pick one with a number", + keysOff: "Not set", + keysSet: "Set", + keysClear: "Remove", + keysTwice: "Another CoPanda shortcut already uses that combination. Pick another", + keysTakenPaste: + "Another program already uses that combination, so this shortcut does not answer. Pick another when you can change it", keysTable: "What the panel answers to", keysTableWhy: "These keys work while the panel is open", hides: "Hide when you click elsewhere", diff --git a/app/src/tests/refusals.test.tsx b/app/src/tests/refusals.test.tsx index a95fafad..9be5dd95 100644 --- a/app/src/tests/refusals.test.tsx +++ b/app/src/tests/refusals.test.tsx @@ -2,14 +2,17 @@ import { render, screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { afterEach, describe, expect, it, vi } from "vitest"; import App from "../App"; +import { forPanel } from "./setup"; type Invoke = (what: string, args?: never) => Promise; -async function insteadOf(handle: (what: string, real?: Invoke) => Promise | null) { +async function insteadOf( + handle: (what: string, real?: Invoke, args?: unknown) => Promise | null, +) { const { invoke } = await import("@tauri-apps/api/core"); const real = vi.mocked(invoke).getMockImplementation() as Invoke; vi.mocked(invoke).mockImplementation(((what: string, args?: never) => { - const mine = handle(what, real); + const mine = handle(what, real, args); return mine ?? real(what, args); }) as never); return () => vi.mocked(invoke).mockImplementation(real as never); @@ -60,8 +63,8 @@ describe("when the backend says no", () => { it("warns the shortcut is taken even when it cannot offer others", async () => { undo.push( - await insteadOf((what) => { - if (what === "keys") { + await insteadOf((what, _real, args) => { + if (what === "keys" && forPanel(args)) { return Promise.resolve({ wanted: "Ctrl+Alt+V", bound: false }); } return what === "spare" ? Promise.reject(new Error("no answer")) : null; diff --git a/app/src/tests/setup.ts b/app/src/tests/setup.ts index efe7d1ff..74ce3b68 100644 --- a/app/src/tests/setup.ts +++ b/app/src/tests/setup.ts @@ -32,6 +32,8 @@ vi.mock("@tauri-apps/api/core", () => ({ locale: asked.locale, theme: "system", shortcut: "Ctrl+Alt+V", + "plain-shortcut": "Alt+Shift+V", + "forms-shortcut": "Ctrl+Alt+P", "hides-when-left": true, "keeps-days": 30, "images-quota-mb": 0, @@ -74,7 +76,9 @@ vi.mock("@tauri-apps/api/core", () => ({ if (what === "empty") return Promise.resolve(null); if (what === "trouble") return Promise.resolve(null); if (what === "keys") { - return Promise.resolve({ wanted: "Ctrl+Alt+V", bound: asked.bound }); + const role = (args as { role?: string } | undefined)?.role ?? "panel"; + const wanted = { panel: "Ctrl+Alt+V", plain: "Alt+Shift+V", forms: "Ctrl+Alt+P" }[role]; + return Promise.resolve({ wanted, bound: role === "panel" ? asked.bound : true }); } if (what === "waking") { return Promise.resolve({ offered: true, wakes: false, theirs: false, managed: false }); @@ -175,3 +179,8 @@ afterEach(() => { asked.usedBytes = 0; asked.glance = { items: 0, today: 0, pinned: 0, bytes: 0 }; }); + +export function forPanel(args: unknown) { + const role = (args as { role?: string } | undefined)?.role; + return role === undefined || role === "panel"; +} diff --git a/app/src/tests/window.test.tsx b/app/src/tests/window.test.tsx index b1bab08a..f4d3ec76 100644 --- a/app/src/tests/window.test.tsx +++ b/app/src/tests/window.test.tsx @@ -3,7 +3,7 @@ import userEvent from "@testing-library/user-event"; import { beforeEach, describe, expect, it, vi } from "vitest"; import App from "../App"; import { adopt } from "../locales"; -import { scene as asked } from "./setup"; +import { scene as asked, forPanel } from "./setup"; describe("the window", () => { beforeEach(() => { @@ -39,6 +39,52 @@ describe("the window", () => { expect(screen.getByText("Doble clic")).toBeDefined(); }); + it("lists every shortcut that works anywhere, the usual paste only as a reminder", async () => { + const who = userEvent.setup(); + render(); + await who.click(screen.getByRole("button", { name: "Atajos de teclado" })); + expect(await screen.findByText("Pegar como se copió")).toBeDefined(); + expect(screen.getByText("Ctrl + V")).toBeDefined(); + expect(screen.getByText("Pegar en texto plano")).toBeDefined(); + expect(await screen.findByText("Alt + Shift + V")).toBeDefined(); + expect(screen.getByText("Pegar como…")).toBeDefined(); + expect(screen.getByText("Ctrl + Alt + P")).toBeDefined(); + expect(screen.getAllByRole("button", { name: "Cambiar" })).toHaveLength(3); + expect(screen.getAllByRole("button", { name: "Quitar" })).toHaveLength(2); + }); + + it("a paste shortcut can be left without a combination", async () => { + const { invoke } = await import("@tauri-apps/api/core"); + const who = userEvent.setup(); + render(); + await who.click(screen.getByRole("button", { name: "Atajos de teclado" })); + const [remove] = await screen.findAllByRole("button", { name: "Quitar" }); + await who.click(remove); + const kept = vi + .mocked(invoke) + .mock.calls.filter(([what]) => what === "keep") + .pop(); + const said = kept?.[1] as { config: Record } | undefined; + expect(said?.config["plain-shortcut"]).toBe(""); + expect(said?.config.shortcut).toBe("Ctrl+Alt+V"); + }); + + it("refuses a combination another CoPanda shortcut already answers to", async () => { + const { invoke } = await import("@tauri-apps/api/core"); + const who = userEvent.setup(); + render(); + await who.click(screen.getByRole("button", { name: "Atajos de teclado" })); + const changes = await screen.findAllByRole("button", { name: "Cambiar" }); + const before = vi.mocked(invoke).mock.calls.filter(([what]) => what === "keep").length; + await who.click(changes[2]); + const stop = await screen.findByRole("button", { name: "Dejarlo como está" }); + stop.focus(); + await who.keyboard("{Alt>}{Shift>}[KeyV]{/Shift}{/Alt}"); + expect(await screen.findByText(/ya la usa otro atajo de CoPanda/)).toBeDefined(); + const after = vi.mocked(invoke).mock.calls.filter(([what]) => what === "keep").length; + expect(after).toBe(before); + }); + it("offers five sections and About, and nothing else", () => { render(); const rail = screen.getByRole("navigation", { name: "Secciones" }); @@ -152,7 +198,7 @@ describe("the window", () => { const { invoke } = await import("@tauri-apps/api/core"); const real = vi.mocked(invoke).getMockImplementation(); vi.mocked(invoke).mockImplementation(((what: string, args?: never) => - what === "keys" + what === "keys" && forPanel(args) ? Promise.resolve({ wanted: "Ctrl+Alt+V", bound: false }) : real?.(what, args)) as never); const who = userEvent.setup(); @@ -167,13 +213,13 @@ describe("the window", () => { const { invoke } = await import("@tauri-apps/api/core"); const real = vi.mocked(invoke).getMockImplementation(); vi.mocked(invoke).mockImplementation(((what: string, args?: never) => - what === "keys" + what === "keys" && forPanel(args) ? Promise.resolve({ wanted: "Ctrl+Alt+V", bound: false }) : real?.(what, args)) as never); render(); await who.click(screen.getByRole("button", { name: "Atajos de teclado" })); expect(await screen.findByText(/Estas están libres ahora mismo/)).toBeDefined(); - const offered = await screen.findByRole("button", { name: "Alt + Shift + V" }); + const offered = await screen.findByRole("button", { name: "Ctrl + Alt + Shift + V" }); await who.click(offered); const asked = vi .mocked(invoke) @@ -181,7 +227,7 @@ describe("the window", () => { .pop(); expect(asked).toBeDefined(); const sent = asked?.[1] as { config: { shortcut: string } } | undefined; - expect(sent?.config.shortcut).toBe("Alt+Shift+V"); + expect(sent?.config.shortcut).toBe("Ctrl+Alt+Shift+V"); vi.mocked(invoke).mockImplementation(real as never); }); @@ -335,7 +381,8 @@ describe("the window", () => { const { invoke } = await import("@tauri-apps/api/core"); render(); await userEvent.click(screen.getByRole("button", { name: "Atajos de teclado" })); - await userEvent.click(await screen.findByRole("button", { name: "Cambiar" })); + const [change] = await screen.findAllByRole("button", { name: "Cambiar" }); + await userEvent.click(change); const stop = await screen.findByRole("button", { name: "Dejarlo como está" }); stop.focus(); await userEvent.keyboard("{Control>}{Alt>}[F9]{/Alt}{/Control}"); diff --git a/app/src/ui/Keys.tsx b/app/src/ui/Keys.tsx index 32601e5c..df9a3ee8 100644 --- a/app/src/ui/Keys.tsx +++ b/app/src/ui/Keys.tsx @@ -1,8 +1,14 @@ import { useState } from "react"; -import { asKeys, combination, type Kept, onMac, useKeys } from "../core"; +import { asKeys, combination, type Kept, onMac, type Role, useKeys } from "../core"; import { panelKeys, t } from "../locales"; import { Band, Line } from "./Bits"; +const FIELD: Record = { + panel: "shortcut", + plain: "plain-shortcut", + forms: "forms-shortcut", +}; + export default function Keys({ kept, change, @@ -10,64 +16,36 @@ export default function Keys({ kept: Kept; change: (what: Partial) => Promise; }) { - const { keys, spare, recheck } = useKeys(kept.shortcut); - const [asking, setAsking] = useState(false); const mac = onMac(); return ( <>

{t("railKeys")}

- + - 0 ? ( -
- {t("keysFree")} - {spare.map((one) => ( - - ))} -
- ) : null - } - > - - {asKeys(kept.shortcut, mac)} - - + + + + {asKeys(mac ? "Cmd+V" : "Ctrl+V", mac)} + + + +

{t("keysTableWhy")}

@@ -87,3 +65,91 @@ export default function Keys({ ); } + +function Shortcut({ + which: role, + says, + why, + kept, + change, +}: { + which: Role; + says: string; + why: string; + kept: Kept; + change: (what: Partial) => Promise; +}) { + const field = FIELD[role]; + const said = kept[field] ?? ""; + const { keys, spare, recheck } = useKeys(said, role); + const [asking, setAsking] = useState(false); + const [twice, setTwice] = useState(false); + const mac = onMac(); + const off = said === ""; + const taken = !asking && !off && keys !== null && !keys.bound; + const take = (one: string) => { + const others = (Object.keys(FIELD) as Role[]).filter((other) => other !== role); + const repeated = one !== "" && others.some((other) => kept[FIELD[other]] === one); + setTwice(repeated); + if (!repeated) { + void change({ [field]: one }).finally(() => recheck(one)); + } + }; + const told = asking + ? t("keysAsk") + : twice + ? t("keysTwice") + : taken + ? t(role === "panel" ? "keysTaken" : "keysTakenPaste") + : why; + + return ( + 0 ? ( +
+ {t("keysFree")} + {spare.map((one) => ( + + ))} +
+ ) : null + } + > + + {off ? t("keysOff") : asKeys(said, mac)} + + + {role !== "panel" && !off && !asking ? ( + + ) : null} +
+ ); +} diff --git a/crates/cp-config/src/lib.rs b/crates/cp-config/src/lib.rs index 1fedc379..a216d014 100644 --- a/crates/cp-config/src/lib.rs +++ b/crates/cp-config/src/lib.rs @@ -11,6 +11,13 @@ pub const FILE: &str = "config.toml"; pub const SHORTCUT: &str = "Ctrl+Alt+V"; +#[cfg(target_os = "macos")] +pub const PLAIN_SHORTCUT: &str = "Ctrl+Shift+V"; +#[cfg(not(target_os = "macos"))] +pub const PLAIN_SHORTCUT: &str = "Alt+Shift+V"; + +pub const FORMS_SHORTCUT: &str = "Ctrl+Alt+P"; + #[cfg(target_os = "macos")] const FORMER_SHORTCUT: &str = "Cmd+Alt+V"; @@ -43,6 +50,8 @@ pub struct Config { pub locale: Option, pub theme: Theme, pub shortcut: String, + pub plain_shortcut: String, + pub forms_shortcut: String, pub hides_when_left: bool, #[serde(with = "count")] pub keeps_days: Option, @@ -89,6 +98,8 @@ impl Default for Config { locale: None, theme: Theme::default(), shortcut: SHORTCUT.to_owned(), + plain_shortcut: PLAIN_SHORTCUT.to_owned(), + forms_shortcut: FORMS_SHORTCUT.to_owned(), hides_when_left: true, keeps_days: Some(KEEPS_DAYS), images_quota_mb: Some(IMAGES_QUOTA_MB), @@ -113,6 +124,14 @@ impl Config { if self.shortcut == FORMER_SHORTCUT { self.shortcut = SHORTCUT.to_owned(); } + self.plain_shortcut = self.plain_shortcut.trim().to_owned(); + self.forms_shortcut = self.forms_shortcut.trim().to_owned(); + if self.plain_shortcut == self.shortcut { + self.plain_shortcut.clear(); + } + if self.forms_shortcut == self.shortcut || self.forms_shortcut == self.plain_shortcut { + self.forms_shortcut.clear(); + } if self.keeps_days == Some(0) { self.keeps_days = None; } diff --git a/crates/cp-config/src/lib_test.rs b/crates/cp-config/src/lib_test.rs index 09656d67..dc9ce528 100644 --- a/crates/cp-config/src/lib_test.rs +++ b/crates/cp-config/src/lib_test.rs @@ -29,6 +29,8 @@ fn what_goes_in_comes_back() { locale: Some("es".into()), theme: Theme::Dark, shortcut: "Ctrl+Shift+V".into(), + plain_shortcut: "Ctrl+Alt+B".into(), + forms_shortcut: String::new(), hides_when_left: false, keeps_days: None, images_quota_mb: Some(512), @@ -225,6 +227,65 @@ fn the_shortcut_loses_the_spaces_around_it() { assert_eq!(asked.shortcut, "Ctrl+Shift+V"); } +#[test] +fn a_fresh_install_pastes_plain_and_asks_how_with_shortcuts_of_their_own() { + let config = Config::default().sane(); + assert_eq!(config.plain_shortcut, PLAIN_SHORTCUT); + assert_eq!(config.forms_shortcut, FORMS_SHORTCUT); + assert_ne!(config.plain_shortcut, config.shortcut); + assert_ne!(config.forms_shortcut, config.shortcut); + assert_ne!(config.forms_shortcut, config.plain_shortcut); +} + +#[test] +fn settings_from_before_the_paste_shortcuts_get_them() { + let dir = a_dir(); + let path = at(dir.path()); + std::fs::write(&path, "shortcut = \"Ctrl+Alt+V\"\n").expect("writes"); + let config = read(&path).expect("reads"); + assert_eq!(config.plain_shortcut, PLAIN_SHORTCUT); + assert_eq!(config.forms_shortcut, FORMS_SHORTCUT); +} + +#[test] +fn a_paste_shortcut_left_blank_stays_off() { + let dir = a_dir(); + let path = at(dir.path()); + let mine = Config { + plain_shortcut: " ".into(), + forms_shortcut: String::new(), + ..Config::default() + }; + write(&path, &mine).expect("writes"); + let config = read(&path).expect("reads"); + assert_eq!(config.plain_shortcut, ""); + assert_eq!(config.forms_shortcut, ""); +} + +#[test] +fn a_combination_already_opening_the_panel_is_not_also_a_paste_shortcut() { + let asked = Config { + shortcut: PLAIN_SHORTCUT.into(), + ..Config::default() + } + .sane(); + assert_eq!(asked.shortcut, PLAIN_SHORTCUT); + assert_eq!(asked.plain_shortcut, ""); + assert_eq!(asked.forms_shortcut, FORMS_SHORTCUT); +} + +#[test] +fn asking_how_never_takes_the_combination_that_pastes_plain() { + let asked = Config { + plain_shortcut: " Ctrl+Alt+B ".into(), + forms_shortcut: "Ctrl+Alt+B".into(), + ..Config::default() + } + .sane(); + assert_eq!(asked.plain_shortcut, "Ctrl+Alt+B"); + assert_eq!(asked.forms_shortcut, ""); +} + #[test] fn a_shortcut_that_matches_no_real_key_combination_is_accepted_untouched() { let asked = Config { diff --git a/crates/cp-core/src/paste_as.rs b/crates/cp-core/src/paste_as.rs index fe58eb64..1d1d40fb 100644 --- a/crates/cp-core/src/paste_as.rs +++ b/crates/cp-core/src/paste_as.rs @@ -204,6 +204,20 @@ pub fn forms_for(content: &Content) -> Vec
{ forms } +pub fn plainest(content: &Content) -> Option { + let read = content.ocr.is_some_and(|ocr| !ocr.trim().is_empty()); + if content.image.is_some() && read { + return Some(Form::ImageOcr); + } + if content.text.as_deref().is_some_and(|text| !text.is_empty()) { + return Some(Form::PlainText); + } + if read { + return Some(Form::ImageOcr); + } + (!content.paths.is_empty()).then_some(Form::Path) +} + pub fn render(form: Form, content: &Content) -> Option { let text = content.text.as_deref().map(str::trim).unwrap_or_default(); let rendered = match form { diff --git a/crates/cp-core/src/paste_as_test.rs b/crates/cp-core/src/paste_as_test.rs index ff31d7ec..0cfef8d2 100644 --- a/crates/cp-core/src/paste_as_test.rs +++ b/crates/cp-core/src/paste_as_test.rs @@ -1276,3 +1276,53 @@ fn a_link_with_no_target_is_just_its_text() { "[sin comillas](x.html)" ); } + +#[test] +fn plain_is_the_text_whether_or_not_it_came_styled() { + let styled = Content { + rich: true, + html: Some("hola".into()), + ..text_of(Kind::Text, "hola") + }; + assert_eq!(plainest(&styled), Some(Form::PlainText)); + assert_eq!( + plainest(&text_of(Kind::Json, "{\"a\":1}")), + Some(Form::PlainText) + ); + assert_eq!( + plainest(&text_of(Kind::Link, "https://a.test")), + Some(Form::PlainText) + ); +} + +#[test] +fn plain_from_a_picture_is_the_text_read_in_it() { + let png = [0u8; 4]; + let read = Content { + kind: Some(Kind::Image), + text: Some("alt".into()), + image: Some(&png), + ocr: Some(" Factura 10 "), + ..Default::default() + }; + assert_eq!(plainest(&read), Some(Form::ImageOcr)); + let unread = Content { + kind: Some(Kind::Image), + image: Some(&png), + ocr: Some(" "), + ..Default::default() + }; + assert_eq!(plainest(&unread), None); +} + +#[test] +fn plain_from_files_is_where_they_live() { + let files = Content { + kind: Some(Kind::File), + paths: vec!["/tmp/a.txt".into(), "/tmp/b.txt".into()], + ..Default::default() + }; + assert_eq!(plainest(&files), Some(Form::Path)); + assert_eq!(plainest(&Content::default()), None); + assert_eq!(plainest(&text_of(Kind::Text, "")), None); +} diff --git a/crates/cp-panel/src/app.rs b/crates/cp-panel/src/app.rs index 947938aa..0e88b9ea 100644 --- a/crates/cp-panel/src/app.rs +++ b/crates/cp-panel/src/app.rs @@ -120,7 +120,8 @@ impl App { state, }; app.wire(&panel); - dress_theme(&panel, kept.light(here::system_is_light()), kept.look); + app.wire_quick(&panel)?; + dress_theme(panel.global::(), kept); refresh(&panel, &app.state); Ok((panel, app)) } @@ -288,6 +289,23 @@ impl App { }); } + fn wire_quick(&self, panel: &Panel) -> Result<(), slint::PlatformError> { + let state = self.state.clone(); + let quick = crate::quick::Quick::start(Rc::new(move || { + let state = state.borrow(); + crate::quick::Aim { + store: state.store.clone(), + engine: state.engine.clone(), + kept: state.kept.get(), + } + }))?; + let (plain, ahead) = (quick.clone(), self.state.borrow().ahead.clone()); + panel.on_plain_asked(move || plain.plain(ahead.swap(0, Ordering::Relaxed))); + let ahead = self.state.borrow().ahead.clone(); + panel.on_forms_asked(move || quick.choose(ahead.swap(0, Ordering::Relaxed))); + Ok(()) + } + fn wire(&self, panel: &Panel) { let ui = self.ui.clone(); let state = self.state.clone(); @@ -582,7 +600,7 @@ impl App { ui.set_chips_scroll(0.0); let kept = state.borrow().kept.get(); state.borrow_mut().metrics.shut_lines = kept.look.density.shut_lines(); - dress_theme(&ui, kept.light(here::system_is_light()), kept.look); + dress_theme(ui.global::(), kept); ui.set_update_line(newer_line().into()); refresh(&ui, &state); back_to_the_newest(&ui, &state); @@ -702,7 +720,7 @@ impl App { note(&format!("{id} has no file another application could take")); return; } - let Some(handle) = handle_of(&ui) else { + let Some(handle) = handle_of(ui.window()) else { note(&format!( "{id} cannot be dragged: the panel has no native window" )); @@ -761,16 +779,16 @@ impl App { } } -pub fn handle_of(panel: &Panel) -> Option { +pub fn handle_of(window: &slint::Window) -> Option { use raw_window_handle::HasWindowHandle; - let handle = panel.window().window_handle(); + let handle = window.window_handle(); HasWindowHandle::window_handle(&handle) .ok() .map(|raw| raw.as_raw()) } pub fn dress(panel: &Panel, wanted: &str, light: bool) { - if let Some(handle) = handle_of(panel) { + if let Some(handle) = handle_of(panel.window()) { here::dress(handle, wanted, light); } } @@ -1191,13 +1209,13 @@ fn step_aside(ui: &Panel, state: &Rc>, leaving: Leaving) { } pub fn forward(panel: &Panel) { - if let Some(handle) = handle_of(panel) { + if let Some(handle) = handle_of(panel.window()) { here::forward(handle); } } -fn dress_theme(ui: &Panel, light: bool, look: crate::kept::Look) { - let theme = ui.global::(); +pub fn dress_theme(theme: crate::Theme<'_>, kept: crate::kept::Kept) { + let (light, look) = (kept.light(here::system_is_light()), kept.look); theme.set_light(light); let swatch = look.accent.swatch(light); theme.set_accent(opaque(swatch.accent)); diff --git a/crates/cp-panel/src/handing.rs b/crates/cp-panel/src/handing.rs index c4baefd1..f6f79a1e 100644 --- a/crates/cp-panel/src/handing.rs +++ b/crates/cp-panel/src/handing.rs @@ -156,6 +156,30 @@ pub fn paste_as( written } +pub fn newest(store: &Store, back: usize) -> Option { + match store.list(&cp_store::Filter::default(), back + 1, None) { + Ok(page) => page.rows.into_iter().nth(back), + Err(why) => { + note(&format!( + "the newest in the history could not be read: {why}" + )); + None + } + } +} + +pub fn paste_plain(store: &Store, engine: Option<&crate::engine::Engine>, id: i64) -> bool { + let Ok(Some(item)) = store.item(id) else { + return false; + }; + let ocr = store.ocr_text(id).ok().flatten(); + let Some(form) = cp_core::paste_as::plainest(&here::content_of(&item, ocr.as_deref())) else { + note(&format!("pasting {id} plain: it holds no text to paste")); + return false; + }; + paste_as(store, engine, id, form.as_str(), Towards::Elsewhere) +} + fn short_of(id: i64, landed: here::Landed) -> bool { if let here::Landed::Short { placed, wanted } = landed { note(&format!( diff --git a/crates/cp-panel/src/main.rs b/crates/cp-panel/src/main.rs index 9223efa9..a9bd34a7 100644 --- a/crates/cp-panel/src/main.rs +++ b/crates/cp-panel/src/main.rs @@ -24,6 +24,7 @@ mod orders; mod paired; mod papers; mod placing; +mod quick; mod reaching; mod say; mod shape; diff --git a/crates/cp-panel/src/orders.rs b/crates/cp-panel/src/orders.rs index 81799607..f71bd51e 100644 --- a/crates/cp-panel/src/orders.rs +++ b/crates/cp-panel/src/orders.rs @@ -58,6 +58,23 @@ pub fn listen( } }); } + "plain" | "forms" => { + let in_front = here::ahead_now(host); + let kept = shelf.renew(); + crate::say::adopt_english(kept.english); + let (aim, plain) = (ahead.clone(), said.trim() == "plain"); + let _ = ui.upgrade_in_event_loop(move |panel| { + if panel.window().is_visible() { + vanish(&panel); + } + aim.store(in_front, Ordering::Relaxed); + if plain { + panel.invoke_plain_asked(); + } else { + panel.invoke_forms_asked(); + } + }); + } "empty" => { let _ = ui.upgrade_in_event_loop(|panel| panel.invoke_emptied()); } @@ -70,7 +87,7 @@ pub fn listen( } } let _ = ui.upgrade_in_event_loop(|panel| { - if let Some(handle) = handle_of(&panel) { + if let Some(handle) = handle_of(panel.window()) { here::ground(handle); } let _ = slint::quit_event_loop(); diff --git a/crates/cp-panel/src/quick.rs b/crates/cp-panel/src/quick.rs new file mode 100644 index 00000000..007e10de --- /dev/null +++ b/crates/cp-panel/src/quick.rs @@ -0,0 +1,288 @@ +use crate::Chooser; +use crate::handing::{forms_of, newest, paste_as, paste_plain}; +use crate::here; +use crate::note::note; +use cp_store::{Listed, Store}; +use slint::{ComponentHandle, ModelRc}; +use std::cell::Cell; +use std::rc::Rc; +use std::time::Duration; + +const WIDE: f64 = 340.0; +const ROW: f64 = 34.0; +const FRAME: f64 = 80.0; +const COMPLAINS_FOR: Duration = Duration::from_millis(2_200); + +pub struct Aim { + pub store: Rc, + pub engine: Option>, + pub kept: crate::kept::Kept, +} + +pub type Reach = Rc Aim>; + +pub struct Quick { + chooser: Chooser, + reach: Reach, + back: Cell, + ahead: Cell, + showing: Cell>, +} + +impl Quick { + pub fn start(reach: Reach) -> Result, slint::PlatformError> { + let quick = Rc::new(Self { + chooser: Chooser::new()?, + reach, + back: Cell::new(0), + ahead: Cell::new(0), + showing: Cell::new(None), + }); + wire(&quick); + Ok(quick) + } + + pub fn plain(&self, ahead: isize) { + let aim = (self.reach)(); + let Some(row) = newest(&aim.store, 0) else { + note("nothing to paste plain: the history is empty"); + return; + }; + if !paste_plain(&aim.store, aim.engine.as_deref(), row.id) { + return; + } + here::paste_into( + ahead, + || {}, + |sent| { + if let here::Sent::Degraded(why) = sent { + note(&format!( + "pasted plain onto the clipboard, unpasted: {why:?}" + )); + } + }, + ); + } + + pub fn choose(&self, ahead: isize) { + self.ahead.set(ahead); + self.back.set(0); + if !self.fill() { + note("nothing to paste as: the history is empty"); + return; + } + let kept = (self.reach)().kept; + crate::app::dress_theme(self.chooser.global::(), kept); + self.chooser.set_complaint(Default::default()); + self.chooser.set_hints( + crate::say::pick( + "1-9 · ⏎ pegar · ←→ otro · esc", + "1-9 · ⏎ paste · ←→ another · esc", + ) + .into(), + ); + self.appear(); + } + + fn appear(&self) { + place(&self.chooser); + if self.chooser.show().is_err() { + return; + } + crate::showing::rescaled(self.chooser.window(), kept_zoom(&self.chooser)); + place(&self.chooser); + if let Some(handle) = crate::app::handle_of(self.chooser.window()) { + here::forward(handle); + } + self.chooser.invoke_focus_keys(); + } + + fn fill(&self) -> bool { + let aim = (self.reach)(); + let back = self.back.get(); + let Some(row) = newest(&aim.store, back) else { + return false; + }; + let rows = forms_of(&aim.store, row.id); + self.chooser + .set_rows(ModelRc::from(Rc::new(slint::VecModel::from(rows)))); + self.chooser.set_current(0); + self.chooser + .set_kind(row.kind.map_or("text", cp_core::kind::Kind::as_str).into()); + self.chooser.set_subject(subject_of(&row).into()); + self.chooser.set_said_when( + crate::age::age_text(crate::app::now_ms(), crate::view::touched_of(&row)).into(), + ); + self.chooser.set_newer(back > 0); + self.chooser + .set_older(newest(&aim.store, back + 1).is_some()); + self.showing.set(Some(row.id)); + true + } + + fn step(&self, by: i32) { + let was = self.back.get(); + let Some(back) = was.checked_add_signed(by as isize) else { + return; + }; + self.back.set(back); + if !self.fill() { + self.back.set(was); + self.fill(); + } + place(&self.chooser); + } + + fn chosen(&self, key: &str) { + let Some(id) = self.showing.get() else { + return; + }; + let aim = (self.reach)(); + let ahead = self.ahead.get(); + if !paste_as( + &aim.store, + aim.engine.as_deref(), + id, + key, + here::towards(ahead), + ) { + self.complain(crate::say::pick( + "no se pudo pegar: el portapapeles está ocupado", + "could not paste: the clipboard is busy", + )); + return; + } + let (hiding, later) = (self.chooser.as_weak(), self.chooser.as_weak()); + let hide = move || { + if let Some(chooser) = hiding.upgrade() { + let _ = chooser.hide(); + } + }; + here::paste_into(ahead, hide, move |sent| { + let Some(chooser) = later.upgrade() else { + return; + }; + match sent { + here::Sent::Done => {} + here::Sent::Nobody => { + note("no window was left to paste into, it stays on the clipboard"); + let _ = chooser.hide(); + } + here::Sent::Degraded(why) => { + let said = crate::excuse::why_not(why, crate::say::in_english()); + note(&format!( + "it stays on the clipboard, unpasted: {why:?}: {said}" + )); + chooser.set_complaint(said.into()); + let _ = chooser.show(); + } + } + }); + } + + fn complain(&self, said: &str) { + self.chooser.set_complaint(said.into()); + let weak = self.chooser.as_weak(); + slint::Timer::single_shot(COMPLAINS_FOR, move || { + if let Some(chooser) = weak.upgrade() { + chooser.set_complaint(Default::default()); + } + }); + } +} + +fn wire(quick: &Rc) { + let chooser = &quick.chooser; + let weak = Rc::downgrade(quick); + chooser.on_chosen(move |key| { + if let Some(quick) = weak.upgrade() { + quick.chosen(key.as_str()); + } + }); + let weak = Rc::downgrade(quick); + chooser.on_step(move |by| { + if let Some(quick) = weak.upgrade() { + quick.step(by); + } + }); + let weak = Rc::downgrade(quick); + chooser.on_dismiss(move || { + if let Some(quick) = weak.upgrade() { + let _ = quick.chooser.hide(); + here::hand_back(quick.ahead.get()); + } + }); + leave_when_left(chooser); +} + +fn leave_when_left(chooser: &Chooser) { + use i_slint_backend_winit::winit::event::WindowEvent; + use i_slint_backend_winit::{EventResult, WinitWindowAccessor}; + let weak = chooser.as_weak(); + chooser.window().on_winit_window_event(move |_, event| { + if let WindowEvent::Focused(false) = event + && let Some(chooser) = weak.upgrade() + && chooser.window().is_visible() + { + let later = chooser.as_weak(); + slint::Timer::single_shot(Duration::ZERO, move || { + if let Some(chooser) = later.upgrade() { + let _ = chooser.hide(); + } + }); + } + EventResult::Propagate + }); +} + +fn kept_zoom(chooser: &Chooser) -> f32 { + chooser.global::().get_zoom() +} + +fn subject_of(row: &Listed) -> String { + if let Some(label) = row.label.as_deref().filter(|one| !one.trim().is_empty()) { + return label.trim().to_owned(); + } + let said = crate::view::squeezed_of(&crate::view::body_of(row)); + if said.is_empty() { + crate::view::label_of(row.kind).to_owned() + } else { + said + } +} + +fn tall(rows: usize) -> f64 { + FRAME + ROW * rows as f64 +} + +fn place(chooser: &Chooser) { + use slint::Model; + let Some(pointer) = here::pointer() else { + return; + }; + let zoom = f64::from(kept_zoom(chooser)); + let size = (WIDE * zoom, tall(chooser.get_rows().row_count()) * zoom); + let window = chooser.window(); + if pointer.physical { + let scale = pointer.scale; + let (x, y) = crate::placing::beside( + pointer.at, + pointer.area, + (size.0 * scale, size.1 * scale), + scale, + ); + #[allow(clippy::cast_possible_truncation)] + window.set_position(slint::PhysicalPosition::new( + x.round() as i32, + y.round() as i32, + )); + } else { + let (x, y) = crate::placing::beside(pointer.at, pointer.area, size, 1.0); + #[allow(clippy::cast_possible_truncation)] + window.set_position(slint::LogicalPosition::new(x as f32, y as f32)); + } +} + +#[cfg(test)] +#[path = "quick_test.rs"] +mod tests; diff --git a/crates/cp-panel/src/quick_test.rs b/crates/cp-panel/src/quick_test.rs new file mode 100644 index 00000000..8d33f33d --- /dev/null +++ b/crates/cp-panel/src/quick_test.rs @@ -0,0 +1,40 @@ +use super::*; +use cp_core::kind::Kind; + +fn listed(kind: Kind, preview: &str, label: Option<&str>) -> Listed { + Listed { + id: 1, + modified_at: 0, + created_at: 0, + kind: Some(kind), + preview: preview.into(), + app: None, + label: label.map(str::to_owned), + color: 0, + thumb_path: None, + paste_count: 0, + last_used_at: None, + broken_since: None, + pinned: false, + group: String::new(), + snippet: None, + } +} + +#[test] +fn the_card_is_headed_by_the_name_it_was_given() { + let row = listed(Kind::Json, "{\"a\":1}", Some(" config ")); + assert_eq!(subject_of(&row), "config"); +} + +#[test] +fn without_a_name_the_card_is_headed_by_what_was_copied_on_one_line() { + let row = listed(Kind::Text, "hola\n mundo ", Some(" ")); + assert_eq!(subject_of(&row), "hola mundo"); +} + +#[test] +fn a_room_for_every_way_to_paste_it() { + assert!(tall(6) > tall(3)); + assert_eq!(tall(2) - tall(1), ROW); +} diff --git a/crates/cp-panel/src/showing.rs b/crates/cp-panel/src/showing.rs index 33ec289b..5a26f60a 100644 --- a/crates/cp-panel/src/showing.rs +++ b/crates/cp-panel/src/showing.rs @@ -43,21 +43,27 @@ pub fn place(panel: &Panel) { } } -pub fn zoom(panel: &Panel) { +pub fn rescaled(window: &slint::Window, zoom: f32) -> Option { use i_slint_backend_winit::WinitWindowAccessor; - let window = panel.window(); - let Some(device) = window.with_winit_window(|winit| winit.scale_factor()) else { - return; - }; - let theme = panel.global::(); + let device = window.with_winit_window(|winit| winit.scale_factor())?; #[allow(clippy::cast_possible_truncation)] - let wanted = (device * f64::from(theme.get_zoom())) as f32; + let wanted = (device * f64::from(zoom)) as f32; if (window.scale_factor() - wanted).abs() < 0.001 { - return; + return None; } window.dispatch_event(slint::platform::WindowEvent::ScaleFactorChanged { scale_factor: wanted, }); + Some(wanted) +} + +pub fn zoom(panel: &Panel) { + use i_slint_backend_winit::WinitWindowAccessor; + let window = panel.window(); + let theme = panel.global::(); + let Some(wanted) = rescaled(window, theme.get_zoom()) else { + return; + }; let side = |logical: f32| (logical * wanted).round().max(1.0) as u32; #[allow(clippy::cast_possible_truncation, clippy::cast_sign_loss)] let size = slint::PhysicalSize::new(side(theme.get_width()), side(theme.get_height())); diff --git a/crates/cp-panel/ui/chooser.slint b/crates/cp-panel/ui/chooser.slint new file mode 100644 index 00000000..8d622e14 --- /dev/null +++ b/crates/cp-panel/ui/chooser.slint @@ -0,0 +1,222 @@ +import { FormRow } from "types.slint"; +import { Theme } from "theme.slint"; +import { Hue } from "cards.slint"; + +export component Chooser inherits Window { + width: 340px; + height: box.preferred-height; + no-frame: true; + always-on-top: true; + background: Theme.apple ? Theme.panel : transparent; + default-font-family: Theme.font; + title: "CoPanda"; + + in property <[FormRow]> rows; + in property kind; + in property subject; + in property said-when; + in property hints; + in property complaint; + in property older; + in property newer; + in-out property current: 0; + in-out property shown: 1.0; + callback chosen(string); + callback step(int); + callback dismiss(); + callback focus-keys(); + focus-keys => { keys.focus(); } + + forward-focus: keys; + + keys := FocusScope { + key-pressed(event) => { + if event.text == Key.Escape { + root.dismiss(); + return accept; + } + if event.text == Key.DownArrow { + root.current = min(root.current + 1, root.rows.length - 1); + return accept; + } + if event.text == Key.UpArrow { + root.current = max(root.current - 1, 0); + return accept; + } + if event.text == Key.LeftArrow && root.older { + root.step(1); + return accept; + } + if event.text == Key.RightArrow && root.newer { + root.step(-1); + return accept; + } + if event.text == Key.Return && root.rows.length > 0 { + root.chosen(root.rows[root.current].key); + return accept; + } + if event.modifiers.control || event.modifiers.alt || event.modifiers.meta { + return reject; + } + if event.text.character-count == 1 && event.text.is-float() && event.text != "0" { + let at = event.text.to-float() - 1; + if at < root.rows.length { + root.chosen(root.rows[at].key); + } + return accept; + } + reject + } + } + + Rectangle { + border-radius: Theme.radius-card; + border-width: 1px; + border-color: Theme.selected-edge; + background: Theme.panel; + opacity: Theme.apple ? 1.0 : root.shown; + clip: true; + animate opacity { duration: Theme.appear; easing: ease-out; } + + box := VerticalLayout { + padding: 8px; + spacing: 2px; + + HorizontalLayout { + height: 26px; + padding-left: 10px; + padding-right: 6px; + spacing: 7px; + alignment: stretch; + Rectangle { + width: 6px; + height: 6px; + border-radius: 2px; + background: Hue.of(root.kind); + y: (parent.height - 6px) / 2; + } + Text { + text: root.subject; + color: Theme.title; + font-size: Theme.fs-small; + font-weight: 600; + vertical-alignment: center; + overflow: elide; + horizontal-stretch: 1; + } + Text { + text: root.said-when; + color: Theme.muted; + font-size: Theme.fs-caption; + vertical-alignment: center; + } + Text { + text: "‹"; + color: root.older ? Theme.muted : Theme.field-border; + font-size: Theme.fs-body; + vertical-alignment: center; + TouchArea { + enabled: root.older; + clicked => { root.step(1); } + } + } + Text { + text: "›"; + color: root.newer ? Theme.muted : Theme.field-border; + font-size: Theme.fs-body; + vertical-alignment: center; + TouchArea { + enabled: root.newer; + clicked => { root.step(-1); } + } + } + } + + Rectangle { + height: 1px; + background: Theme.panel-border; + } + + for form[at] in root.rows : Rectangle { + property chosen-here: at == root.current; + height: 32px; + border-radius: 8px; + background: chosen-here ? Theme.selected : row-touch.has-hover ? Theme.row-hover : transparent; + animate background { duration: chosen-here || row-touch.has-hover ? 0ms : Theme.let-go; } + if chosen-here : Rectangle { + x: 0px; + y: 7px; + width: 3px; + height: parent.height - 14px; + border-radius: 1.5px; + background: Theme.accent; + } + HorizontalLayout { + padding-left: 9px; + padding-right: 10px; + spacing: 10px; + alignment: stretch; + if at < 9 : Rectangle { + width: 18px; + height: 18px; + y: (parent.height - 18px) / 2; + border-radius: 5px; + background: Theme.tile; + Text { + text: at + 1; + color: chosen-here ? Theme.accent : Theme.muted; + font-size: Theme.fs-caption; + font-weight: 600; + horizontal-alignment: center; + vertical-alignment: center; + } + } + if at >= 9 : Rectangle { width: 18px; } + Text { + text: form.label; + color: chosen-here ? Theme.accent : Theme.body; + font-size: Theme.fs-body; + vertical-alignment: center; + min-width: 120px; + overflow: elide; + } + if form.preview != "" : Text { + text: form.preview; + color: Theme.muted; + font-size: Theme.fs-meta; + font-family: Theme.mono-font; + vertical-alignment: center; + horizontal-alignment: right; + overflow: elide; + wrap: no-wrap; + horizontal-stretch: 1; + } + if form.preview == "" : Rectangle { horizontal-stretch: 1; } + } + row-touch := TouchArea { + clicked => { root.chosen(form.key); } + pointer-event(event) => { + if (event.kind == PointerEventKind.move) { + root.current = at; + } + } + } + } + + Rectangle { + height: 1px; + background: Theme.panel-border; + } + + Text { + height: 22px; + text: root.complaint != "" ? root.complaint : root.hints; + color: root.complaint != "" ? Theme.title : Theme.muted; + font-size: Theme.fs-caption; + vertical-alignment: center; + horizontal-alignment: center; + overflow: elide; + } + } + } +} diff --git a/crates/cp-panel/ui/panel.slint b/crates/cp-panel/ui/panel.slint index 32c41005..032ff3f2 100644 --- a/crates/cp-panel/ui/panel.slint +++ b/crates/cp-panel/ui/panel.slint @@ -5,8 +5,9 @@ import { Theme } from "theme.slint"; import { Words } from "words.slint"; import { Icon, Action, Pill, Tag, CardView, Hue } from "cards.slint"; import { NewerStrip } from "newer.slint"; +import { Chooser } from "chooser.slint"; -export { Card, Chip, FormRow, Theme, Words } +export { Card, Chip, FormRow, Theme, Words, Chooser } export component Panel inherits Window { width: Theme.width; @@ -98,6 +99,8 @@ export component Panel inherits Window { } callback fresh-start(); callback emptied(); + callback plain-asked(); + callback forms-asked(); callback arrived(); callback sheet-chosen(string); callback paste-as(int, string); From f448aa65eab27959663887e62972ada1ce1d13b4 Mon Sep 17 00:00:00 2001 From: rgdevment Date: Tue, 20 Oct 2026 15:28:08 -0300 Subject: [PATCH 03/11] docs(readme): list the two new paste shortcuts that work from any app --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3a149401..667a052a 100644 --- a/README.md +++ b/README.md @@ -239,8 +239,9 @@ CoPanda follows your system theme automatically — no configuration needed. ## Keyboard Shortcuts -CoPanda keeps `Ctrl+V` under the active application's control and uses one -global shortcut of its own to open the history panel. On a Mac the panel answers +CoPanda keeps `Ctrl+V` under the active application's control and adds three +global shortcuts of its own: one opens the history panel, and two paste the +latest item without it, as plain text or in the form you pick. On a Mac the panel answers the keys of the system it runs on: ⌘ where Windows uses Ctrl, and the keys a Mac keyboard does not have are replaced by the ones it does. @@ -248,6 +249,8 @@ keyboard does not have are replaced by the ones it does. | :---- | :------ | :---- | :----- | | App you're in | Ctrl+V | ⌘V | Normal paste. CoPanda does not intercept it. | | Anywhere | Ctrl+Alt+V | ⌃⌥V | Open the panel. Change it in Settings → Keyboard shortcuts; if another program already uses it, free alternatives are offered. | +| Anywhere | Alt+Shift+V | ⌃⇧V | Paste the latest item as plain text, without opening the panel. | +| Anywhere | Ctrl+Alt+P | ⌃⌥P | Paste the latest item as… — a small card next to the pointer: 1–9 pastes a form, ← → steps to older items. | | Panel | Enter | ⏎ | Paste the selected item. | | Panel | Shift + Enter | ⇧⏎ | Paste as plain text. | | Panel | Alt + Enter · Ctrl + Enter | ⌥⏎ · ⌘⏎ | Open or close "Paste as…". | From 380b3113198c2bd513b3789af114c402a9a7f545 Mon Sep 17 00:00:00 2001 From: rgdevment Date: Tue, 20 Oct 2026 15:34:45 -0300 Subject: [PATCH 04/11] ci(actions): name the rust-cache release each workflow is pinned to --- .github/workflows/bundle.yml | 2 +- .github/workflows/ci.yml | 8 ++++---- .github/workflows/mutants-sweep.yml | 4 ++-- .github/workflows/mutants.yml | 2 +- .github/workflows/rules.yml | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/bundle.yml b/.github/workflows/bundle.yml index bf7969ce..ad843a9d 100644 --- a/.github/workflows/bundle.yml +++ b/.github/workflows/bundle.yml @@ -72,7 +72,7 @@ jobs: persist-credentials: false - name: Rust, from rust-toolchain.toml run: rustup toolchain install --no-self-update - - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: shared-key: bundle save-if: ${{ github.ref == 'refs/heads/main' }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 98613711..8b928bbb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: persist-credentials: false - name: Rust, from rust-toolchain.toml run: rustup toolchain install --no-self-update - - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: shared-key: workspace save-if: ${{ github.ref == 'refs/heads/main' }} @@ -119,7 +119,7 @@ jobs: run: | rustup toolchain install --no-self-update rustup target add aarch64-apple-darwin - - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: shared-key: cross save-if: ${{ github.ref == 'refs/heads/main' }} @@ -148,7 +148,7 @@ jobs: run: | rustup toolchain install --no-self-update rustup component add llvm-tools-preview - - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: shared-key: coverage save-if: ${{ github.ref == 'refs/heads/main' }} @@ -208,7 +208,7 @@ jobs: run: | rustup toolchain install --no-self-update rustup component add llvm-tools-preview - - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: shared-key: coverage save-if: ${{ github.ref == 'refs/heads/main' }} diff --git a/.github/workflows/mutants-sweep.yml b/.github/workflows/mutants-sweep.yml index 91457749..f403ec40 100644 --- a/.github/workflows/mutants-sweep.yml +++ b/.github/workflows/mutants-sweep.yml @@ -30,7 +30,7 @@ jobs: persist-credentials: false - name: Rust, from rust-toolchain.toml run: rustup toolchain install --no-self-update - - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: shared-key: mutants save-if: ${{ github.ref == 'refs/heads/main' }} @@ -76,7 +76,7 @@ jobs: persist-credentials: false - name: Rust, from rust-toolchain.toml run: rustup toolchain install --no-self-update - - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: shared-key: mutants save-if: ${{ github.ref == 'refs/heads/main' }} diff --git a/.github/workflows/mutants.yml b/.github/workflows/mutants.yml index 3e64fa8f..6a192de9 100644 --- a/.github/workflows/mutants.yml +++ b/.github/workflows/mutants.yml @@ -53,7 +53,7 @@ jobs: - name: Rust, from rust-toolchain.toml if: steps.touched.outputs.any == 'yes' run: rustup toolchain install --no-self-update - - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: shared-key: mutants save-if: false diff --git a/.github/workflows/rules.yml b/.github/workflows/rules.yml index 03b29118..a14b1d3c 100644 --- a/.github/workflows/rules.yml +++ b/.github/workflows/rules.yml @@ -101,7 +101,7 @@ jobs: persist-credentials: false - name: Rust, from rust-toolchain.toml run: rustup toolchain install --no-self-update - - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: shared-key: workspace save-if: false @@ -130,7 +130,7 @@ jobs: persist-credentials: false - name: Rust, from rust-toolchain.toml run: rustup toolchain install --no-self-update - - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 with: shared-key: budget save-if: ${{ github.ref == 'refs/heads/main' }} From 589748b5bf35d428b7ad4a22e2fd5ae790e568e4 Mon Sep 17 00:00:00 2001 From: rgdevment Date: Tue, 20 Oct 2026 15:38:05 -0300 Subject: [PATCH 05/11] fix(keys): paste shortcuts keep their target over our own windows and the paste as card opens only when asked --- app/src-tauri/src/lib.rs | 2 +- app/src-tauri/src/panel.rs | 5 +- app/src/ui/Keys.tsx | 5 +- crates/cp-core/src/paste_as.rs | 8 +- crates/cp-core/src/paste_as_test.rs | 5 + crates/cp-panel/src/app.rs | 14 +- crates/cp-panel/src/handing.rs | 9 +- crates/cp-panel/src/orders.rs | 7 +- crates/cp-panel/src/quick.rs | 196 +++++++++++++++++----------- crates/cp-panel/ui/chooser.slint | 3 - crates/cp-panel/ui/panel.slint | 1 + 11 files changed, 158 insertions(+), 97 deletions(-) diff --git a/app/src-tauri/src/lib.rs b/app/src-tauri/src/lib.rs index a5397b51..899566c9 100644 --- a/app/src-tauri/src/lib.rs +++ b/app/src-tauri/src/lib.rs @@ -87,7 +87,7 @@ pub fn run() { waking::on_first_run(); } panel::raise(app.handle()); - keys::raise(app.handle(), &kept.clone().unwrap_or_default()); + keys::raise(app.handle(), &kept.unwrap_or_default()); welcome::raise(app.handle(), fresh); update::keep_looking(); Ok(()) diff --git a/app/src-tauri/src/panel.rs b/app/src-tauri/src/panel.rs index c5026d45..e3a8e76b 100644 --- a/app/src-tauri/src/panel.rs +++ b/app/src-tauri/src/panel.rs @@ -291,7 +291,10 @@ pub fn choose(app: &AppHandle) { fn ask(app: &AppHandle, what: &str) { allow(app); - if let Err(Said::Broken) = say(app, what) { + if say(app, what).is_err() { + crate::note::note(&format!( + "the panel was not listening, so «{what}» went unanswered and it is brought back" + )); bring_back(app); } } diff --git a/app/src/ui/Keys.tsx b/app/src/ui/Keys.tsx index df9a3ee8..359554e1 100644 --- a/app/src/ui/Keys.tsx +++ b/app/src/ui/Keys.tsx @@ -126,7 +126,10 @@ function Shortcut({