From db59830f8b59833c3dc32d39821e6d0a75f74c6f Mon Sep 17 00:00:00 2001 From: aecsocket <43144841+aecsocket@users.noreply.github.com> Date: Tue, 20 Oct 2026 16:17:20 +0100 Subject: [PATCH 1/4] bump all* dependency versions --- Cargo.lock | 6143 +++++++++++----------- Cargo.toml | 260 +- apps/daedalus_client/Cargo.toml | 2 +- apps/labrinth/Cargo.toml | 2 +- packages/app-lib/Cargo.toml | 4 +- packages/async-minecraft-ping/Cargo.toml | 8 +- packages/sqlx-tracing/Cargo.toml | 4 +- 7 files changed, 3135 insertions(+), 3288 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 51cc896cb80..73333153a54 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,11 +4,11 @@ version = 4 [[package]] name = "actix-codec" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" +checksum = "4c13df95297bcf9014dc89162b0cc69431e192e34e3b419612fc124cfcd45dbf" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "bytes", "futures-core", "futures-sink", @@ -21,13 +21,13 @@ dependencies = [ [[package]] name = "actix-cors" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa239b93927be1ff123eebada5a3ff23e89f0124ccb8609234e5103d5a5ae6d" +checksum = "2aff07ada3254fc02618cb7850da91dceb23b5dbda53c6676ccbb28ba504f150" dependencies = [ "actix-utils", "actix-web", - "derive_more 2.1.1", + "derive_more", "futures-util", "log", "once_cell", @@ -36,17 +36,17 @@ dependencies = [ [[package]] name = "actix-files" -version = "0.6.8" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c0d87f10d70e2948ad40e8edea79c8e77c6c66e0250a4c1f09b690465199576" +checksum = "db96438ec043d438f36bc211e260f0bec3de11dd0921feebe6b776e5a77ff3f9" dependencies = [ "actix-http", "actix-service", "actix-utils", "actix-web", - "bitflags 2.9.4", + "bitflags 2.13.2", "bytes", - "derive_more 2.1.1", + "derive_more", "futures-core", "http-range", "log", @@ -55,24 +55,24 @@ dependencies = [ "percent-encoding", "pin-project-lite", "v_htmlescape", + "winapi-util", ] [[package]] name = "actix-http" -version = "3.13.1" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e2faa3e7418ed780cca54829d32782a4008a077230f67457caa063415e99c2" +checksum = "b796ba3c974e5133f6ca1a2c4e97c5941ea1a46d202df83344afaa18219f1a62" dependencies = [ "actix-codec", - "actix-rt", "actix-service", "actix-utils", "base64 0.22.1", - "bitflags 2.9.4", + "bitflags 2.13.2", "brotli", "bytes", "bytestring", - "derive_more 2.1.1", + "derive_more", "encoding_rs", "flate2", "foldhash 0.2.0", @@ -87,7 +87,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rand 0.10.1", + "rand 0.10.3", "sha1 0.11.0", "smallvec", "tokio", @@ -98,24 +98,25 @@ dependencies = [ [[package]] name = "actix-macros" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" +checksum = "367f814ad4afbac74f07df5001214da65f65e185c90ef56c4dd8df23f8695b9b" dependencies = [ + "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] name = "actix-multipart" -version = "0.7.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5118a26dee7e34e894f7e85aa0ee5080ae4c18bf03c0e30d49a80e418f00a53" +checksum = "689ad8dca448cfbcfc32c8988dd411c564ee177d85d724982f6b0a026f382d0a" dependencies = [ "actix-multipart-derive", "actix-utils", "actix-web", - "derive_more 0.99.20", + "derive_more", "futures-core", "futures-util", "httparse", @@ -123,7 +124,7 @@ dependencies = [ "log", "memchr", "mime", - "rand 0.8.5", + "rand 0.10.3", "serde", "serde_json", "serde_plain", @@ -133,15 +134,15 @@ dependencies = [ [[package]] name = "actix-multipart-derive" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e11eb847f49a700678ea2fa73daeb3208061afa2b9d1a8527c03390f4c4a1c6b" +checksum = "69112d423cd092e024d7a5473b7862b0e5d95247728a5b414545c0251f9df5a7" dependencies = [ - "darling 0.20.11", - "parse-size", + "bytesize", + "darling 0.24.1", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] @@ -161,9 +162,9 @@ dependencies = [ [[package]] name = "actix-rt" -version = "2.11.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92589714878ca59a7626ea19734f0e07a6a875197eec751bb5d3f99e64998c63" +checksum = "e5f794807f82bbd36430c12cd600c73bbab0f52fdde4f0ed49978df113f4807f" dependencies = [ "actix-macros", "futures-core", @@ -172,17 +173,16 @@ dependencies = [ [[package]] name = "actix-server" -version = "2.6.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a65064ea4a457eaf07f2fba30b4c695bf43b721790e9530d26cb6f9019ff7502" +checksum = "5e296908c4d6f3a191e6b9873dbdfec8023350a89129d2b470f61d17233931ee" dependencies = [ "actix-rt", "actix-service", - "actix-utils", "futures-core", "futures-util", "mio", - "socket2 0.5.10", + "socket2 0.6.5", "tokio", "tracing", ] @@ -199,9 +199,9 @@ dependencies = [ [[package]] name = "actix-utils" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" +checksum = "0128396dd7313f697ad05b21b1a7be7d4cbb81888704f55996e4a27db196bb4d" dependencies = [ "local-waker", "pin-project-lite", @@ -209,9 +209,9 @@ dependencies = [ [[package]] name = "actix-web" -version = "4.14.0" +version = "4.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df09e2d9239703dd64056359c920c7f3fba6535ec61a0059e0f44e095ffe02b4" +checksum = "67756b0fc99e07b8702b9a856e3d6ec036387243c2ce6310070d1e8f02680bb0" dependencies = [ "actix-codec", "actix-http", @@ -226,7 +226,7 @@ dependencies = [ "bytestring", "cfg-if", "cookie 0.16.2", - "derive_more 2.1.1", + "derive_more", "encoding_rs", "foldhash 0.2.0", "futures-core", @@ -246,20 +246,21 @@ dependencies = [ "smallvec", "socket2 0.6.5", "time", + "tokio", "tracing", "url", ] [[package]] name = "actix-web-codegen" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8" +checksum = "b96b09c4878563f8ab4a5fd0c59f9f0d6e0e9f60eb9b748526a0b9604fd89c50" dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] @@ -279,16 +280,18 @@ dependencies = [ [[package]] name = "actix-ws" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3a1fb4f9f2794b0aadaf2ba5f14a6f034c7e86957b458c506a8cb75953f2d99" +checksum = "decf53c3cdd63dd6f289980b430238f9a2f6d19f8bce8e418272e08d3da43f0f" dependencies = [ "actix-codec", "actix-http", "actix-web", "bytestring", "futures-core", + "futures-sink", "tokio", + "tokio-util", ] [[package]] @@ -308,48 +311,37 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" -version = "0.5.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +checksum = "1973cfbc1a2daf9cf550e74e1f088c28e7f7d8c1e1418fb6c9dc5184b7e84c99" dependencies = [ - "crypto-common 0.1.6", - "generic-array", + "crypto-common 0.2.2", + "inout", ] [[package]] name = "aes" -version = "0.8.4" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +checksum = "35f0f96ce78e38c3dc6d8948aa8163d06385be74000f3c7a95bf1eef35d3ea32" dependencies = [ - "cfg-if", "cipher", - "cpufeatures 0.2.17", + "cpubits", + "cpufeatures 0.3.1", ] [[package]] name = "aes-gcm" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +checksum = "7f2b8006a0c83f52b62ba44a97b58bf76fe2f70a329e588f67f89691d93d498f" dependencies = [ "aead", "aes", "cipher", "ctr", + "ctutils", "ghash", - "subtle", -] - -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom 0.2.16", - "once_cell", - "version_check", ] [[package]] @@ -359,7 +351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -367,13 +359,22 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" dependencies = [ "memchr", ] +[[package]] +name = "aligned" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee4508988c62edf04abd8d92897fca0c2995d907ce1dfeaf369dac3716a40685" +dependencies = [ + "as-slice", +] + [[package]] name = "aligned-vec" version = "0.6.4" @@ -385,15 +386,15 @@ dependencies = [ [[package]] name = "alloc-no-stdlib" -version = "2.0.4" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" +checksum = "c2fb6cfd47bf496ff64095c20eaba0c201404ee38714d4142fcfa1dc334fcc7a" [[package]] name = "alloc-stdlib" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +checksum = "0b5c1865780388bfa186411ab5f247819487fc4864c6e9c3106611fa347586e1" dependencies = [ "alloc-no-stdlib", ] @@ -406,9 +407,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android_system_properties" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" dependencies = [ "libc", ] @@ -424,9 +425,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.21" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -439,76 +440,87 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "antlr4rust" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093d520274bfff7278d776f7ea12981a0a0a6f96db90964658e0f38fc6e9a6a6" +checksum = "003352ee03bab0eea34057cc541fa4362734220ca381343c7e9c35050c1fc942" dependencies = [ - "better_any", - "bit-set 0.8.0", + "bit-set 0.11.1", "byteorder", "lazy_static", "murmur3", "once_cell", "parking_lot", "typed-arena", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ar_archive_writer" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "73cd58deff2140a0a8eae87e417bd01db68a33e148aa93d1e8cd837e55e312b6" +dependencies = [ + "object 0.39.1", +] [[package]] name = "arbitrary" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +checksum = "3bc62ac97cc33321f50863d514c3bc38a453947a8f9e781137e47c7401020aed" dependencies = [ "derive_arbitrary", ] [[package]] name = "arc-swap" -version = "1.7.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" +checksum = "380962b3d93b99642e50b9febf72c071e97e8b32d86eae9cf4ef582bb960ae6e" +dependencies = [ + "rustversion", +] [[package]] name = "arcstr" @@ -524,18 +536,18 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "argon2" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072" +checksum = "134c52ddac6d63c576bef8168db10c83c49c26444ecbc68060fef078925a901c" dependencies = [ "base64ct", "blake2", - "cpufeatures 0.2.17", + "cpufeatures 0.3.1", "password-hash", ] @@ -545,49 +557,43 @@ version = "0.1.0" dependencies = [ "chrono", "either", - "rand 0.8.5", + "rand 0.10.3", "serde", "serde_bytes", "serde_cbor", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.21", "utoipa", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] -name = "arrayvec" -version = "0.7.6" +name = "array-init" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +checksum = "3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc" [[package]] -name = "ascii" -version = "1.1.0" +name = "arrayvec" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" [[package]] -name = "ashpd" -version = "0.11.0" +name = "as-slice" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cbdf310d77fd3aaee6ea2093db7011dc2d35d2eb3481e5607f1f8d942ed99df" +checksum = "516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516" dependencies = [ - "enumflags2", - "futures-channel", - "futures-util", - "rand 0.9.2", - "raw-window-handle", - "serde", - "serde_repr", - "tokio", - "url", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "zbus", + "stable_deref_trait", ] +[[package]] +name = "ascii" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" + [[package]] name = "asn1-rs" version = "0.6.2" @@ -612,8 +618,8 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", - "synstructure", + "syn 2.0.119", + "synstructure 0.13.2", ] [[package]] @@ -624,7 +630,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -637,7 +643,7 @@ dependencies = [ "futures-core", "libc", "portable-atomic", - "rustc-hash 2.1.1", + "rustc-hash 2.1.3", "tokio", "tokio-stream", "xattr", @@ -649,7 +655,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener 5.4.1", + "event-listener 5.4.2", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -680,13 +686,12 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.32" +version = "0.4.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" +checksum = "9d5755640120b24961f8231e05892e4a4f7e0d04e8aeca161508c9c397946970" dependencies = [ "compression-codecs", "compression-core", - "futures-core", "futures-io", "pin-project-lite", "tokio", @@ -694,13 +699,13 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.3" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.3.0", + "fastrand 2.5.0", "futures-lite 2.6.1", "pin-project-lite", "slab", @@ -730,18 +735,18 @@ dependencies = [ "futures-lite 2.6.1", "parking", "polling", - "rustix 1.1.2", + "rustix 1.1.5", "slab", "windows-sys 0.61.2", ] [[package]] name = "async-lock" -version = "3.4.1" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" dependencies = [ - "event-listener 5.4.1", + "event-listener 5.4.2", "event-listener-strategy", "pin-project-lite", ] @@ -752,11 +757,11 @@ version = "0.8.0" dependencies = [ "anyhow", "async-trait", - "hickory-resolver 0.24.4", + "hickory-resolver", "serde", "serde_json", "structopt", - "thiserror 1.0.69", + "thiserror 2.0.21", "tokio", ] @@ -773,27 +778,27 @@ dependencies = [ "async-task", "blocking", "cfg-if", - "event-listener 5.4.1", + "event-listener 5.4.2", "futures-lite 2.6.1", - "rustix 1.1.2", + "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.106", + "syn 3.0.9", ] [[package]] name = "async-signal" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" dependencies = [ "async-io", "async-lock", @@ -801,7 +806,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 1.1.2", + "rustix 1.1.5", "signal-hook-registry", "slab", "windows-sys 0.61.2", @@ -826,7 +831,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -838,7 +843,7 @@ dependencies = [ "chrono", "futures-util", "hex", - "hmac", + "hmac 0.12.1", "http-types", "hyper 0.14.32", "hyper-rustls 0.24.2", @@ -846,7 +851,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_qs 0.10.1", - "sha2", + "sha2 0.10.9", "smart-default", "smol_str", "thiserror 1.0.69", @@ -861,20 +866,20 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] name = "async-tungstenite" -version = "0.31.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee88b4c88ac8c9ea446ad43498955750a4bbe64c4392f21ccfe5d952865e318f" +checksum = "d6ab5b7664abf9ccae07576888c72bc93750c7090c1ff4ffee9317cc05d11618" dependencies = [ "atomic-waker", "futures-core", @@ -885,34 +890,35 @@ dependencies = [ "pin-project-lite", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.4", - "tungstenite 0.27.0", - "webpki-roots 1.0.3", + "tokio-rustls 0.26.6", + "tungstenite 0.30.0", + "webpki-roots 1.0.10", ] [[package]] name = "async-walkdir" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37672978ae0febce7516ae0a85b53e6185159a9a28787391eb63fc44ec36037d" +checksum = "8ed40ca66d45a6775511920324e4ae05c81673f9133c187c4970a3089c3ae27c" dependencies = [ "async-fs", "futures-lite 2.6.1", - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] name = "async_zip" -version = "0.0.18" +version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c50d65ce1b0e0cb65a785ff615f78860d7754290647d3b983208daa4f85e6" +checksum = "fb7f5f40e1eb30949a266fc900d37fd3267c7baf50c3705ac09c5d8ced5def63" dependencies = [ "async-compression", + "binrw", "chrono", "crc32fast", "futures-lite 2.6.1", "pin-project", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "tokio-util", ] @@ -962,13 +968,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16e2cdb6d5ed835199484bb92bb8b3edd526effe995c61732580439c1a67e2e9" dependencies = [ "base64 0.22.1", - "http 1.3.1", + "http 1.5.0", "log", - "rustls 0.23.32", + "rustls 0.23.46", "serde", "serde_json", "url", - "webpki-roots 1.0.3", + "webpki-roots 1.0.10", ] [[package]] @@ -984,38 +990,58 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "av-scenechange" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "0f321d77c20e19b92c39e7471cf986812cbb46659d2af674adc4331ef3f18394" +dependencies = [ + "aligned", + "anyhow", + "arg_enum_proc_macro", + "arrayvec", + "log", + "num-rational", + "num-traits", + "pastey 0.1.1", + "rayon", + "thiserror 2.0.21", + "v_frame", + "y4m", +] [[package]] name = "av1-grain" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3efb2ca85bc610acfa917b5aaa36f3fcbebed5b3182d7f877b02531c4b80c8" +checksum = "8cfddb07216410377231960af4fcab838eaa12e013417781b78bd95ee22077f8" dependencies = [ "anyhow", "arrayvec", "log", - "nom 7.1.3", + "nom 8.0.0", "num-rational", "v_frame", ] [[package]] name = "avif-serialize" -version = "0.8.6" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c8fbc0f831f4519fe8b810b6a7a91410ec83031b8233f730a0480029f6a23f" +checksum = "e7178fe5f7d460b13895ebb9dcb28a3a6216d2df2574a0806cb51b555d297f38" dependencies = [ "arrayvec", ] [[package]] name = "aws-credential-types" -version = "1.2.11" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd362783681b15d136480ad555a099e82ecd8e2d10a841e14dfd0078d67fee3" +checksum = "e93964ffdaf57857f544be3666a5f57570bb699e934700f11b49708f61bb556e" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -1025,26 +1051,26 @@ dependencies = [ [[package]] name = "aws-creds" -version = "0.39.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b13804829a843b3f26e151c97acbb315ee1177a2724690edfcd28f1894146200" +checksum = "886acd98f2df6e988d5428e92cdf041792ffa87a494d2b5125982502ec726a9c" dependencies = [ "attohttpc", "home", "log", - "quick-xml 0.38.3", + "quick-xml 0.41.0", "rust-ini", "serde", - "thiserror 2.0.17", + "thiserror 2.0.21", "time", "url", ] [[package]] name = "aws-lc-rs" -version = "1.14.1" +version = "1.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879b6c89592deb404ba4dc0ae6b58ffd1795c78991cbb5b8bc441c48a070440d" +checksum = "faac5829c2b74c28f830747e7818ccfb684261b5f48a1118b1e2a13d36dfab13" dependencies = [ "aws-lc-sys", "zeroize", @@ -1052,52 +1078,52 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.32.2" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b715a6010afb9e457ca2b7c9d2b9c344baa8baed7b38dc476034c171b32575" +checksum = "f1622d8446a2d4b2ce0c7eefc73dd43a99779028d5ee5c2dd8073a658ba8a2bc" dependencies = [ - "bindgen", "cc", "cmake", "dunce", "fs_extra", - "libloading 0.8.8", + "pkg-config", ] [[package]] name = "aws-region" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5532f65342f789f9c1b7078ea9c9cd9293cd62dcc284fa99adc4a1c9ba43469c" +checksum = "8f38493193e45cb4788ee7d479ee94a0a56721ccd28de79bbd0227bb8c11fee3" dependencies = [ - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] name = "aws-runtime" -version = "1.6.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c635c2dc792cb4a11ce1a4f392a925340d1bdf499289b5ec1ec6810954eb43f5" +checksum = "2b8a9911551b4ea6ca13805ef52ed96f7d2bbb43cc3b4a14cb0776a71f33cfaa" dependencies = [ "aws-credential-types", "aws-sigv4", "aws-smithy-async", - "aws-smithy-eventstream", - "aws-smithy-http", + "aws-smithy-eventstream 0.61.5", + "aws-smithy-http 0.64.2", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", "bytes", - "fastrand 2.3.0", + "bytes-utils", + "fastrand 2.5.0", "http 0.2.12", - "http 1.3.1", + "http 1.5.0", "http-body 0.4.6", - "http-body 1.0.1", + "http-body 1.1.0", "percent-encoding", "pin-project-lite", "tracing", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] @@ -1111,58 +1137,57 @@ dependencies = [ "aws-sigv4", "aws-smithy-async", "aws-smithy-checksums", - "aws-smithy-eventstream", - "aws-smithy-http", + "aws-smithy-eventstream 0.60.21", + "aws-smithy-http 0.63.6", "aws-smithy-json", - "aws-smithy-observability", + "aws-smithy-observability 0.2.6", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", "aws-smithy-xml", "aws-types", "bytes", - "fastrand 2.3.0", + "fastrand 2.5.0", "hex", - "hmac", + "hmac 0.12.1", "http 0.2.12", - "http 1.3.1", - "http-body 1.0.1", + "http 1.5.0", + "http-body 1.1.0", "lru", "percent-encoding", "regex-lite", - "sha2", + "sha2 0.10.9", "tracing", "url", ] [[package]] name = "aws-sigv4" -version = "1.3.8" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa49f3c607b92daae0c078d48a4571f599f966dce3caee5f1ea55c4d9073f99" +checksum = "2312577f088c9fbf4206dfdb884cf1de9407b43e1a923cbed5237775116fc24b" dependencies = [ "aws-credential-types", - "aws-smithy-eventstream", - "aws-smithy-http", + "aws-smithy-eventstream 0.61.5", + "aws-smithy-http 0.64.2", "aws-smithy-runtime-api", "aws-smithy-types", "bytes", "form_urlencoded", "hex", - "hmac", - "http 0.2.12", - "http 1.3.1", + "hmac 0.13.0", + "http 1.5.0", "percent-encoding", - "sha2", + "sha2 0.11.1", "time", "tracing", ] [[package]] name = "aws-smithy-async" -version = "1.2.11" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52eec3db979d18cb807fc1070961cc51d87d069abe9ab57917769687368a8c6c" +checksum = "de681a9df7ff79823b759ee17061076ec049cd61a8fa28ece4293d89c9f6964e" dependencies = [ "futures-util", "pin-project-lite", @@ -1171,30 +1196,41 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.64.3" +version = "0.64.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddcf418858f9f3edd228acb8759d77394fed7531cce78d02bdda499025368439" +checksum = "e9e8e65f4f81fcccdeb6c3eca2af17ac21d421a1786a26a394aecf421d616d3a" dependencies = [ - "aws-smithy-http", + "aws-smithy-http 0.63.6", "aws-smithy-types", "bytes", "crc-fast", "hex", - "http 1.3.1", - "http-body 1.0.1", + "http 1.5.0", + "http-body 1.1.0", "http-body-util", - "md-5", + "md-5 0.11.0", "pin-project-lite", - "sha1 0.10.6", - "sha2", + "sha1 0.11.0", + "sha2 0.11.1", "tracing", ] [[package]] name = "aws-smithy-eventstream" -version = "0.60.18" +version = "0.60.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78d8391e65fcea47c586a22e1a41f173b38615b112b2c6b7a44e80cec3e6b706" +dependencies = [ + "aws-smithy-types", + "bytes", + "crc32fast", +] + +[[package]] +name = "aws-smithy-eventstream" +version = "0.61.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35b9c7354a3b13c66f60fe4616d6d1969c9fd36b1b5333a5dfb3ee716b33c588" +checksum = "f4aecd9c411046779355be31692bdd451ae35b3983ff40dd65258edffcc1a1ce" dependencies = [ "aws-smithy-types", "bytes", @@ -1203,19 +1239,19 @@ dependencies = [ [[package]] name = "aws-smithy-http" -version = "0.63.3" +version = "0.63.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630e67f2a31094ffa51b210ae030855cb8f3b7ee1329bdd8d085aaf61e8b97fc" +checksum = "ba1ab2dc1c2c3749ead27180d333c42f11be8b0e934058fb4b2258ee8dbe5231" dependencies = [ - "aws-smithy-eventstream", + "aws-smithy-eventstream 0.60.21", "aws-smithy-runtime-api", "aws-smithy-types", "bytes", "bytes-utils", "futures-core", "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "http 1.5.0", + "http-body 1.1.0", "http-body-util", "percent-encoding", "pin-project-lite", @@ -1223,115 +1259,188 @@ dependencies = [ "tracing", ] +[[package]] +name = "aws-smithy-http" +version = "0.64.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba8960956e0ee0ca3f3161e62913a61bc65a7ef638ca3ef1d4c7159f8443e398" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "futures-util", + "http 1.5.0", + "http-body 1.1.0", + "http-body-util", + "percent-encoding", + "pin-project-lite", + "tracing", +] + [[package]] name = "aws-smithy-http-client" -version = "1.1.9" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12fb0abf49ff0cab20fd31ac1215ed7ce0ea92286ba09e2854b42ba5cabe7525" +checksum = "aeca69f65362f7375891008ea525fd440ad6db1836458ac188c87b126804114e" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", "aws-smithy-types", "h2 0.3.27", - "h2 0.4.12", + "h2 0.4.20", "http 0.2.12", - "http 1.3.1", + "http 1.5.0", "http-body 0.4.6", "hyper 0.14.32", - "hyper 1.7.0", + "hyper 1.12.0", "hyper-rustls 0.24.2", - "hyper-rustls 0.27.7", + "hyper-rustls 0.27.10", "hyper-util", "pin-project-lite", "rustls 0.21.12", - "rustls 0.23.32", - "rustls-native-certs 0.8.1", + "rustls 0.23.46", + "rustls-native-certs 0.8.5", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.4", + "tokio-rustls 0.26.6", "tower", "tracing", ] [[package]] name = "aws-smithy-json" -version = "0.62.3" +version = "0.62.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb96aa208d62ee94104645f7b2ecaf77bf27edf161590b6224bfbac2832f979" +checksum = "701a947f4797e52a911e114a898667c746c39feea467bbd1abd7b3721f702ffa" dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-schema 0.1.0", "aws-smithy-types", ] [[package]] name = "aws-smithy-observability" -version = "0.2.4" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06c2315d173edbf1920da8ba3a7189695827002e4c0fc961973ab1c54abca9c" +dependencies = [ + "aws-smithy-runtime-api", +] + +[[package]] +name = "aws-smithy-observability" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0a46543fbc94621080b3cf553eb4cbbdc41dd9780a30c4756400f0139440a1d" +checksum = "8e86338c869539a581bf161247762a6e87f92c5c075060057b5ed6d06632ed0c" dependencies = [ "aws-smithy-runtime-api", ] [[package]] name = "aws-smithy-runtime" -version = "1.10.0" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3df87c14f0127a0d77eb261c3bc45d5b4833e2a1f63583ebfb728e4852134ee" +checksum = "79cef0c41e8ca40f74f68ed8ee4d1ddbde12bb847b95ef9b3c025681ddfae58a" dependencies = [ "aws-smithy-async", - "aws-smithy-http", + "aws-smithy-http 0.64.2", "aws-smithy-http-client", - "aws-smithy-observability", + "aws-smithy-observability 0.3.0", "aws-smithy-runtime-api", + "aws-smithy-schema 1.0.0", "aws-smithy-types", "bytes", - "fastrand 2.3.0", - "http 0.2.12", - "http 1.3.1", - "http-body 0.4.6", - "http-body 1.0.1", + "fastrand 2.5.0", + "http 1.5.0", + "http-body 1.1.0", "http-body-util", "pin-project-lite", - "pin-utils", "tokio", "tracing", ] [[package]] name = "aws-smithy-runtime-api" -version = "1.11.3" +version = "1.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49952c52f7eebb72ce2a754d3866cc0f87b97d2a46146b79f80f3a93fb2b3716" +checksum = "06788004dea79018413f381891da6dcca23196acd79c4d51b767fbdacc76eae4" dependencies = [ "aws-smithy-async", + "aws-smithy-runtime-api-macros", "aws-smithy-types", "bytes", "http 0.2.12", - "http 1.3.1", + "http 1.5.0", "pin-project-lite", "tokio", "tracing", "zeroize", ] +[[package]] +name = "aws-smithy-runtime-api-macros" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "221eaa237ddf1ca79b60d1372aad77e47f9c0ea5b3ce5099da8c61d027dc77b3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "aws-smithy-schema" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7442cb268338f0eb8278140a107c046756aa01093d8ef5e99628d34ae09c94f5" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "http 1.5.0", +] + +[[package]] +name = "aws-smithy-schema" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8f395d93304280b64b7632fea798d177e74897fe7f063416ce627cd6fa24829" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "http 1.5.0", +] + +[[package]] +name = "aws-smithy-schema" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7a3b01a2a1b453176457b260b0ed55d33de61d35d21b74022c51ec62a42895" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "http 1.5.0", +] + [[package]] name = "aws-smithy-types" -version = "1.4.3" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3a26048eeab0ddeba4b4f9d51654c79af8c3b32357dc5f336cee85ab331c33" +checksum = "55752025c39c0e094962fd73f1c57014b191f678612e517f219468e575af9822" dependencies = [ "base64-simd", "bytes", "bytes-utils", "futures-core", "http 0.2.12", - "http 1.3.1", + "http 1.5.0", "http-body 0.4.6", - "http-body 1.0.1", + "http-body 1.1.0", "http-body-util", "itoa", "num-integer", "pin-project-lite", - "pin-utils", "ryu", "serde", "time", @@ -1341,22 +1450,23 @@ dependencies = [ [[package]] name = "aws-smithy-xml" -version = "0.60.13" +version = "0.60.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11b2f670422ff42bf7065031e72b45bc52a3508bd089f743ea90731ca2b6ea57" +checksum = "0ce02add1aa3677d022f8adf81dcbe3046a95f17a1b1e8979c145cd21d3d22b3" dependencies = [ "xmlparser", ] [[package]] name = "aws-types" -version = "1.3.11" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d980627d2dd7bfc32a3c025685a033eeab8d365cc840c631ef59d1b8f428164" +checksum = "209f3a6d82a6e9e5f94abbed94c7a26e1c052341002bf57a5fb5481f625896fc" dependencies = [ "aws-credential-types", "aws-smithy-async", "aws-smithy-runtime-api", + "aws-smithy-schema 0.2.1", "aws-smithy-types", "rustc_version", "tracing", @@ -1364,15 +1474,15 @@ dependencies = [ [[package]] name = "axum" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" +checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" dependencies = [ "axum-core", "bytes", "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "http 1.5.0", + "http-body 1.1.0", "http-body-util", "itoa", "matchit", @@ -1395,8 +1505,8 @@ checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" dependencies = [ "bytes", "futures-core", - "http 1.3.1", - "http-body 1.0.1", + "http 1.5.0", + "http-body 1.1.0", "http-body-util", "mime", "pin-project-lite", @@ -1414,17 +1524,17 @@ dependencies = [ "addr2line", "cfg-if", "libc", - "miniz_oxide", - "object", + "miniz_oxide 0.8.9", + "object 0.37.3", "rustc-demangle", "windows-link 0.2.1", ] [[package]] name = "base16ct" -version = "0.2.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +checksum = "fd307490d624467aa6f74b0eabb77633d1f758a7b25f12bceb0b22e08d9726f6" [[package]] name = "base32" @@ -1450,6 +1560,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + [[package]] name = "base64-simd" version = "0.8.0" @@ -1462,9 +1578,9 @@ dependencies = [ [[package]] name = "base64ct" -version = "1.8.0" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "base64urlsafedata" @@ -1478,60 +1594,62 @@ dependencies = [ ] [[package]] -name = "better_any" -version = "0.2.1" +name = "binrw" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4372b9543397a4b86050cc5e7ee36953edf4bac9518e8a774c2da694977fb6e4" +checksum = "6ad120d555272286c1017d25165ab8bd74806f13fc85b258484ec7e4ce75458f" +dependencies = [ + "array-init", + "binrw_derive", + "bytemuck", +] [[package]] -name = "bindgen" -version = "0.72.1" +name = "binrw_derive" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +checksum = "6df92e0e9baae4dc82c7bad7715ca40c0a5c71539057bf2ea04a5c29c980410b" dependencies = [ - "bitflags 2.9.4", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "log", - "prettyplease", + "either", + "owo-colors", "proc-macro2", "quote", - "regex", - "rustc-hash 2.1.1", - "shlex 1.3.0", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "bit-set" -version = "0.5.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec 0.6.3", + "bit-vec 0.8.0", ] [[package]] name = "bit-set" -version = "0.8.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +checksum = "56d87354e4229f54a44f7bf2435906a4656dba36026ab6eaca629a2c436a691c" dependencies = [ - "bit-vec 0.8.0", + "bit-vec 0.10.1", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bit-vec" -version = "0.8.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +checksum = "5727b15fa97d4f4fee0a3b7c3d550ed0269f54329207b86388de918604e31269" +dependencies = [ + "borsh", + "serde", +] [[package]] name = "bit_field" @@ -1547,38 +1665,29 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "bitstream-io" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" - -[[package]] -name = "bitvec" -version = "1.0.1" +version = "4.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +checksum = "7eff00be299a18769011411c9def0d827e8f2d7bf0c3dbf53633147a8867fd1f" dependencies = [ - "funty", - "radium", - "tap", - "wyz", + "no_std_io2", ] [[package]] name = "blake2" -version = "0.10.6" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +checksum = "5b5d4d889834ee8ecfc0f8426ad30faf7cdcb10f741a8e6d7224d95325479f6f" dependencies = [ - "digest 0.10.7", + "digest 0.11.3", ] [[package]] @@ -1599,29 +1708,20 @@ dependencies = [ "hybrid-array", ] -[[package]] -name = "block2" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" -dependencies = [ - "objc2 0.5.2", -] - [[package]] name = "block2" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" dependencies = [ - "objc2 0.6.4", + "objc2", ] [[package]] name = "blocking" -version = "1.6.2" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +checksum = "a70e4329df6cb94385eed412ec92375c3cdd8a6e502493d1229b6414e4036dfa" dependencies = [ "async-channel 2.5.0", "async-task", @@ -1638,10 +1738,16 @@ checksum = "4e82d7baf42162b8cbb0040770d863ba1be61408a58d6273ed5238e49e8debb5" dependencies = [ "fst", "once_cell", - "reqwest 0.13.2", + "reqwest 0.13.5", "tokio", ] +[[package]] +name = "bnum" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119771309b95163ec7aaf79810da82f7cd0599c19722d48b9c03894dca833966" + [[package]] name = "bollard" version = "0.19.4" @@ -1650,7 +1756,7 @@ checksum = "87a52479c9237eb04047ddb94788c41ca0d26eaff8b697ecfbb4c32f7fdc3b1b" dependencies = [ "async-stream", "base64 0.22.1", - "bitflags 2.9.4", + "bitflags 2.13.2", "bollard-buildkit-proto", "bollard-stubs", "bytes", @@ -1659,19 +1765,19 @@ dependencies = [ "futures-util", "hex", "home", - "http 1.3.1", + "http 1.5.0", "http-body-util", - "hyper 1.7.0", + "hyper 1.12.0", "hyper-named-pipe", - "hyper-rustls 0.27.7", + "hyper-rustls 0.27.10", "hyper-util", "hyperlocal", "log", "num", "pin-project-lite", - "rand 0.9.2", - "rustls 0.23.32", - "rustls-native-certs 0.8.1", + "rand 0.9.5", + "rustls 0.23.46", + "rustls-native-certs 0.8.5", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", @@ -1679,11 +1785,11 @@ dependencies = [ "serde_json", "serde_repr", "serde_urlencoded", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "tokio-stream", "tokio-util", - "tonic 0.14.2", + "tonic 0.14.6", "tower-service", "url", "winapi", @@ -1695,9 +1801,9 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85a885520bf6249ab931a764ffdb87b0ceef48e6e7d807cfdb21b751e086e1ad" dependencies = [ - "prost 0.14.3", + "prost 0.14.4", "prost-types", - "tonic 0.14.2", + "tonic 0.14.6", "tonic-prost", "ureq", ] @@ -1712,7 +1818,7 @@ dependencies = [ "bollard-buildkit-proto", "bytes", "chrono", - "prost 0.14.3", + "prost 0.14.4", "serde", "serde_json", "serde_repr", @@ -1721,57 +1827,56 @@ dependencies = [ [[package]] name = "bon" -version = "3.9.3" +version = "3.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a602c73c7b0148ec6d12af6fd5cc7a46e2eacc8878271a999abac56eed12f561" +checksum = "214f5df094ce551a10a30ffb9c70243d61f121a3d985a6495933e181dee6a7d2" dependencies = [ "bon-macros", - "rustversion", ] [[package]] name = "bon-macros" -version = "3.9.3" +version = "3.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dee98b0db6a962de883bf5d20362dee4d7ca0d12fe39a7c6c73c844e1cd7c1f" +checksum = "2706da6c749998cc555d04184909608956a69ad3f8ab1a076fbc867b4a3c3ce5" dependencies = [ - "darling 0.23.0", + "darling 0.24.1", "ident_case", "prettyplease", "proc-macro2", "quote", - "rustversion", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] name = "borsh" -version = "1.5.7" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" dependencies = [ "borsh-derive", + "bytes", "cfg_aliases", ] [[package]] name = "borsh-derive" -version = "1.5.7" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" dependencies = [ "once_cell", - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] name = "brotli" -version = "8.0.2" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +checksum = "f8b851b75c23ca7873623d612fe49bd1989aeb03d08fb9432187eb253d3d4c6b" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1780,62 +1885,49 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "5.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +checksum = "941cd9bd4ddab83cb46fa5a2d428f1c857b24ac78cb876cf7beb710840934bd7" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", ] +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + [[package]] name = "bstr" -version = "1.12.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +checksum = "6bb31b46c14244e20ee9984b11bf5c992b91fb6939fea616e3512c8baecdbe5f" dependencies = [ "memchr", ] [[package]] name = "built" -version = "0.7.7" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ed6191a7e78c36abdb16ab65341eefd73d64d303fffccdbb00d51e4205967b" +checksum = "5c0e531d93d39c34eef561e929e8a7f86d77a5af08aac4f6d6e39976c51858e9" [[package]] name = "bumpalo" -version = "3.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" - -[[package]] -name = "bytecheck" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" -dependencies = [ - "bytecheck_derive", - "ptr_meta", - "simdutf8", -] - -[[package]] -name = "bytecheck_derive" -version = "0.6.12" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytemuck" -version = "1.24.0" +version = "1.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" [[package]] name = "byteorder" @@ -1851,9 +1943,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.10.1" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" dependencies = [ "serde", ] @@ -1868,20 +1960,26 @@ dependencies = [ "either", ] +[[package]] +name = "bytesize" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7354288c522e7e980fafd2075d63d1285794c3a6a16cdd492f189ea406e5f18b" + [[package]] name = "bytestring" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "113b4343b5f6617e7ad401ced8de3cc8b012e73a594347c307b90db3e9271289" +checksum = "86566c496f2f47d9b8147a4c8b02ffdb69c919fe0c2b2e7195d22cbba0e635c9" dependencies = [ "bytes", ] [[package]] name = "bzip2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bea8dcd42434048e4f7a304411d9273a411f647446c1234a65ce0554923f4cff" +checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" dependencies = [ "libbz2-rs-sys", ] @@ -1892,7 +1990,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "cairo-sys-rs", "glib", "libc", @@ -1913,9 +2011,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.2.1" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" +checksum = "bbbad30e4b4c14a39e3cc8aed085a12a327257c316619c93581e017bc52be591" dependencies = [ "serde_core", ] @@ -1940,7 +2038,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] @@ -1951,7 +2049,7 @@ checksum = "82f4b26e751e711a5302649417f2da046dce6391b2ea30a4820f37462314f0b9" dependencies = [ "semver", "serde", - "toml 1.1.6+spec-1.1.0", + "toml 1.1.8+spec-1.1.0", ] [[package]] @@ -1965,21 +2063,21 @@ dependencies = [ [[package]] name = "cc" -version = "1.4.4" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273" +checksum = "877bf67ac8e52449eb2f9e98a344ea163beb70dd1f9eebe3cc5357dcfeaee4df" dependencies = [ "find-msvc-tools", "jobserver", "libc", - "shlex 2.0.1", + "shlex", ] [[package]] name = "cel" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed39583e427bf41d93c28c7f27c943a93bcb8697220ff3575fd53a9e13f3814" +checksum = "044e21070125024b84c8058036de182400bd99212cab3faa4f19566f7733b6dc" dependencies = [ "antlr4rust", "base64 0.22.1", @@ -1989,7 +2087,7 @@ dependencies = [ "regex", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.21", ] [[package]] @@ -2007,15 +2105,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom 7.1.3", -] - [[package]] name = "cfb" version = "0.7.3" @@ -2024,7 +2113,7 @@ checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" dependencies = [ "byteorder", "fnv", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] @@ -2034,7 +2123,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a347dcabdae9c31b0825fd6a8bed285ec9c2acb89c47827126d52fa4f59cece3" dependencies = [ "fnv", - "uuid 1.23.3", + "uuid 1.28.0", "web-time", ] @@ -2050,32 +2139,32 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" [[package]] name = "cfg_aliases" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" [[package]] name = "chacha20" -version = "0.10.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" dependencies = [ "cfg-if", - "cpufeatures 0.3.0", + "cpufeatures 0.3.1", "rand_core 0.10.1", ] [[package]] name = "chardetng" -version = "0.1.17" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b8f0b65b7b08ae3c8187e8d77174de20cb6777864c6b832d8ad365999cf1ea" +checksum = "13de944a44b5064ee5d3a5ceccc49a41bfec50f2580e66f82e87703acdb88b53" dependencies = [ "cfg-if", "encoding_rs", @@ -2084,9 +2173,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "js-sys", @@ -2098,19 +2187,23 @@ dependencies = [ [[package]] name = "chumsky" -version = "0.9.3" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9" +checksum = "e0d2bfadce76f963d776feff99db6dc33783829539258314776383b33e2a00f8" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.5", + "regex-automata", + "serde", "stacker", + "unicode-ident", + "unicode-segmentation", ] [[package]] name = "cidre" -version = "0.15.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c903ff1729987d29e07295d2c5841993db25ff86cca43bee04505878d3ec1a7" +checksum = "8fde4542e9dfd21498f5366a5ad60963879fd1885743a18980f6dbb27f525895" dependencies = [ "cc", "cidre-macros", @@ -2118,17 +2211,18 @@ dependencies = [ [[package]] name = "cidre-macros" -version = "0.5.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6facfeffa8b9792dc014bb4e65e364d13518b74e06783d56249810a3e48cfad7" +checksum = "a85776177a885b3cd2cda74d634cabe7fa05fecfde8ded8779c0b34110a44dcb" [[package]] name = "cipher" -version = "0.4.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c" dependencies = [ - "crypto-common 0.1.6", + "block-buffer 0.12.1", + "crypto-common 0.2.2", "inout", ] @@ -2138,17 +2232,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93a719913643003b84bd13022b4b7e703c09342cd03b679c4641c7d2e50dc34d" -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading 0.8.8", -] - [[package]] name = "clap" version = "2.34.0" @@ -2166,9 +2249,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.48" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" +checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946" dependencies = [ "clap_builder", "clap_derive", @@ -2176,9 +2259,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.48" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" +checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d" dependencies = [ "anstream", "anstyle", @@ -2188,28 +2271,29 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.47" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486" [[package]] name = "clickhouse" -version = "0.14.0" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52d6ac02411e84914fdf4e0565bfe02fc4bebdf375bd1fc58168bad74b3707a2" +checksum = "d6ad2112cf4ad543ceed12e48b779e82e8f3a8172374cac98d59e59feda35c69" dependencies = [ + "bnum", "bstr", "bytes", "cityhash-rs", @@ -2217,19 +2301,22 @@ dependencies = [ "clickhouse-types", "futures-channel", "futures-util", + "half 2.7.1", + "hashbrown 0.17.1", "http-body-util", - "hyper 1.7.0", + "hyper 1.12.0", "hyper-util", "lz4_flex", - "replace_with", - "sealed", + "rand 0.9.5", "serde", - "static_assertions", - "thiserror 2.0.17", + "serde_json", + "thiserror 2.0.21", "time", "tokio", + "tracing", + "twox-hash", "url", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] @@ -2241,17 +2328,17 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals 0.29.1", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "clickhouse-types" -version = "0.1.0" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235f72141cfbe1d2d930d8156a34814c8a3d60491febb9af64cc52a203444764" +checksum = "d7ddab58fabf3bdde7b6fa401f72b9abc7566ff015264c89aaaa71cf1d173d06" dependencies = [ "bytes", - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] @@ -2263,13 +2350,19 @@ dependencies = [ "cc", ] +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + [[package]] name = "cobs" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] @@ -2316,15 +2409,15 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "combine" -version = "4.6.7" +version = "4.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +checksum = "4356eba6976435498d05a311ee9fc486da3bc81c200d3f0d7dd9703b41913f92" dependencies = [ "bytes", "futures-core", @@ -2351,17 +2444,17 @@ dependencies = [ name = "component-derive" version = "0.0.0" dependencies = [ - "darling 0.23.0", + "darling 0.24.1", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] name = "compression-codecs" -version = "0.4.31" +version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8a506ec4b81c460798f572caead636d57d3d7e940f998160f52bd254bf2d23" +checksum = "cae36683101b2899f48bd31f8db9839437356188e3b1ff23096e73dab09ba8fe" dependencies = [ "brotli", "bzip2", @@ -2375,9 +2468,9 @@ dependencies = [ [[package]] name = "compression-core" -version = "0.4.29" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" +checksum = "2ebdda89edc534bf8d5dd2857562633b6495557e5846552ade994b99ed13c36a" [[package]] name = "concurrent-queue" @@ -2390,13 +2483,12 @@ dependencies = [ [[package]] name = "console" -version = "0.16.1" +version = "0.16.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b430743a6eb14e9764d4260d4c0d8123087d504eeb9c48f2b2a5e810dd369df4" +checksum = "e96a4956774c13c126a8b5af4daa79384f4d826534c95a02d76afb39e2ab64e3" dependencies = [ "encode_unicode", "libc", - "once_cell", "unicode-width 0.2.2", "windows-sys 0.61.2", ] @@ -2428,18 +2520,19 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "once_cell", "tiny-keccak", ] [[package]] name = "const_format" -version = "0.2.35" +version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" +checksum = "4481a617ad9a412be3b97c5d403fef8ed023103368908b9c50af598ff467cc1e" dependencies = [ "const_format_proc_macros", + "konst", ] [[package]] @@ -2455,15 +2548,9 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - -[[package]] -name = "convert_case" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "convert_case" @@ -2476,9 +2563,9 @@ dependencies = [ [[package]] name = "convert_case" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "affbf0190ed2caf063e3def54ff444b449371d55c58e513a95ab98eca50adb49" +checksum = "1af709f1f33454bf52eadfc8c78b3b9ef9cb26fb54d16dc9cd9a7299f899fd1b" dependencies = [ "unicode-segmentation", ] @@ -2496,9 +2583,9 @@ dependencies = [ [[package]] name = "cookie" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +checksum = "1a373e3602691c3cdea496d2f0ee5935151e6168fe87739483c463db1b2f2f87" dependencies = [ "percent-encoding", "time", @@ -2507,11 +2594,11 @@ dependencies = [ [[package]] name = "cookie_store" -version = "0.21.1" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eac901828f88a5241ee0600950ab981148a18f2f756900ffba1b125ca6a3ef9" +checksum = "15b2c103cf610ec6cae3da84a766285b42fd16aad564758459e6ecf128c75206" dependencies = [ - "cookie 0.18.1", + "cookie 0.18.2", "document-features", "idna", "log", @@ -2549,26 +2636,13 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core-graphics" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" -dependencies = [ - "bitflags 2.9.4", - "core-foundation 0.10.1", - "core-graphics-types", - "foreign-types 0.5.0", - "libc", -] - [[package]] name = "core-graphics" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "core-foundation 0.10.1", "core-graphics-types", "foreign-types 0.5.0", @@ -2581,11 +2655,17 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "core-foundation 0.10.1", "libc", ] +[[package]] +name = "core_detect" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f8f80099a98041a3d1622845c271458a2d73e688351bf3cb999266764b81d48" + [[package]] name = "counter" version = "0.7.1" @@ -2595,6 +2675,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "cpubits" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae" + [[package]] name = "cpufeatures" version = "0.2.17" @@ -2606,38 +2692,36 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" dependencies = [ "libc", ] [[package]] name = "crc" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" dependencies = [ "crc-catalog", ] [[package]] name = "crc-catalog" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" [[package]] name = "crc-fast" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd92aca2c6001b1bf5ba0ff84ee74ec8501b52bbef0cac80bf25a6c1d87a83d" +checksum = "e75b2483e97a5a7da73ac68a05b629f9c53cff58d8ed1c77866079e18b00dba5" dependencies = [ - "crc", "digest 0.10.7", - "rustversion", - "spin 0.10.0", + "spin 0.10.1", ] [[package]] @@ -2648,9 +2732,9 @@ checksum = "338089f42c427b86394a5ee60ff321da23a5c89c9d89514c829687b26359fcff" [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "0ba106e844045ddc02c20768ac4b0b7cb45f2cc2ecbd833ac9f5dacb183c2055" dependencies = [ "cfg-if", ] @@ -2663,18 +2747,18 @@ checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crossbeam-channel" -version = "0.5.15" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +checksum = "98b0cc327b5bc766e7fda9c9260cc0fa81b43a8e240440422dff70788e3f9ef1" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +checksum = "622f3fc73690be383c7214310406f28a90e6edeadc3cea882f9d71e495b9711a" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -2682,27 +2766,27 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.18" +version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-queue" -version = "0.3.12" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +checksum = "03e8bd762f7479489c70ed6c768ddca99d7296857de437a68dcb2a94365b3fae" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "crunchy" @@ -2712,24 +2796,27 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" -version = "0.5.5" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +checksum = "1a52aa3fcda4e6302a9f48734f234d35d4721b96f8fe07d073f07ce9df4f0271" dependencies = [ - "generic-array", - "rand_core 0.6.4", + "cpubits", + "ctutils", + "getrandom 0.4.3", + "hybrid-array", + "num-traits", + "rand_core 0.10.1", "subtle", "zeroize", ] [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", - "rand_core 0.6.4", "typenum", ] @@ -2739,24 +2826,9 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ + "getrandom 0.4.3", "hybrid-array", -] - -[[package]] -name = "cssparser" -version = "0.29.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" -dependencies = [ - "cssparser-macros 0.6.1", - "dtoa-short", - "itoa", - "matches", - "phf 0.10.1", - "proc-macro2", - "quote", - "smallvec", - "syn 1.0.109", + "rand_core 0.10.1", ] [[package]] @@ -2765,23 +2837,13 @@ version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c9cdaae01d5ed7882b04d795e7f752f46ff52d2fa3b50a20d28c464510bba98" dependencies = [ - "cssparser-macros 0.7.1", + "cssparser-macros", "dtoa-short", "itoa", "phf 0.13.1", "smallvec", ] -[[package]] -name = "cssparser-macros" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" -dependencies = [ - "quote", - "syn 2.0.106", -] - [[package]] name = "cssparser-macros" version = "0.7.1" @@ -2789,28 +2851,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d045de693cb712d0b22c6a64be5b953f67b3ce00ab5ad3dd5d8b441886ab8e1a" dependencies = [ "quote", - "syn 3.0.3", -] - -[[package]] -name = "csv" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" -dependencies = [ - "csv-core", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "csv-core" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" -dependencies = [ - "memchr", + "syn 3.0.9", ] [[package]] @@ -2821,13 +2862,23 @@ checksum = "914a755b7c2d4af2bdcff7ce1739e2db9a1b81a9b07123d8015786ae03c0980d" [[package]] name = "ctr" -version = "0.9.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +checksum = "baaca1c4b237092596f64d571e9db6ce4109c4ef9742e27590f1709594461f21" dependencies = [ "cipher", ] +[[package]] +name = "ctutils" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03bb0e1cc970d482d121d9a1744999169b69a07470b3d644a7894e53fcaf4574" +dependencies = [ + "cmov", + "subtle", +] + [[package]] name = "daedalus" version = "0.2.3" @@ -2835,7 +2886,7 @@ dependencies = [ "chrono", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] @@ -2850,15 +2901,15 @@ dependencies = [ "dotenvy", "futures", "indexmap 2.14.2", - "itertools 0.14.0", + "itertools 0.15.0", "md5", - "quick-xml 0.38.3", - "reqwest 0.12.24", + "quick-xml 0.42.0", + "reqwest 0.13.5", "rust-s3", "serde", "serde_json", "sha1_smol", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "tracing", "tracing-error", @@ -2895,6 +2946,16 @@ dependencies = [ "darling_macro 0.23.0", ] +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + [[package]] name = "darling_core" version = "0.20.11" @@ -2906,7 +2967,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -2919,8 +2980,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim 0.11.1", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -2933,7 +2993,20 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.106", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 3.0.9", ] [[package]] @@ -2944,7 +3017,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -2955,7 +3028,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -2966,14 +3039,25 @@ checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core 0.23.0", "quote", - "syn 2.0.106", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.9", ] [[package]] name = "dashmap" -version = "6.1.0" +version = "6.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +checksum = "e6361d5c062261c78a176addb82d4c821ae42bed6089de0e12603cd25de2059c" dependencies = [ "cfg-if", "crossbeam-utils", @@ -2986,9 +3070,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "4583a4551df46e2792f82ceeac45e850d2e2d5debba0b91f102385cda5b11f06" [[package]] name = "data-url" @@ -3043,14 +3127,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ "serde", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] name = "deflate64" -version = "0.1.10" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac6b926516df9c60bfa16e107b21086399f8285a44ca9711344b9e553c5146e2" + +[[package]] +name = "defmt" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a0795ac740cb54d7b3775c9c17345f6aaecf884c01733b39d6017738e0e3e1" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "840bb056bd99c495c9188198a258ab787c79f306d864db3e6e8451442d6d8366" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn 3.0.9", +] + +[[package]] +name = "defmt-parser" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26bf8fc351c5ed29b5c2f0cbbac1b209b74f60ecd62e675a998df72c49af5204" +checksum = "71958f69fb2de856c5dd51ac9377e986ca1aa5919f931bf5395a807277f889a0" +dependencies = [ + "thiserror 2.0.21", +] [[package]] name = "der" @@ -3059,7 +3174,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid 0.9.6", - "pem-rfc7468", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a878c850e9e421b20262e9b41f9c860e4785fa07541c266b62ff9d1ef998a80a" +dependencies = [ + "const-oid 0.10.2", + "pem-rfc7468 1.0.0", "zeroize", ] @@ -3072,30 +3198,29 @@ dependencies = [ "asn1-rs", "displaydoc", "nom 7.1.3", - "num-bigint", + "num-bigint 0.4.8", "num-traits", "rusticata-macros", ] [[package]] name = "deranged" -version = "0.5.4" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" +checksum = "9e9de72ce2ad1f90dc62fa25f0f430ef85eb4b0d8fa0be4f30373bc40a21d28e" dependencies = [ - "powerfmt", "serde_core", ] [[package]] name = "derive_arbitrary" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +checksum = "1b034bd7d5f032402a2479444dcc6f74e36a03f31854d41680fb240ef682a1ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] @@ -3116,7 +3241,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -3126,20 +3251,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.106", -] - -[[package]] -name = "derive_more" -version = "0.99.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" -dependencies = [ - "convert_case 0.4.0", - "proc-macro2", - "quote", - "rustc_version", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -3161,7 +3273,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.106", + "syn 2.0.119", "unicode-xid", ] @@ -3173,7 +3285,7 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "const-oid 0.9.6", - "crypto-common 0.1.6", + "crypto-common 0.1.7", "subtle", ] @@ -3186,6 +3298,7 @@ dependencies = [ "block-buffer 0.12.1", "const-oid 0.10.2", "crypto-common 0.2.2", + "ctutils", ] [[package]] @@ -3207,7 +3320,7 @@ dependencies = [ "futures-util", "generational-box", "longest-increasing-subsequence", - "rustc-hash 2.1.1", + "rustc-hash 2.1.3", "rustversion", "serde", "slab", @@ -3235,7 +3348,7 @@ dependencies = [ "serde", "serde_json", "subsecond", - "thiserror 2.0.17", + "thiserror 2.0.21", "tracing", "tungstenite 0.28.0", ] @@ -3262,7 +3375,7 @@ dependencies = [ "futures-util", "generational-box", "parking_lot", - "rustc-hash 2.1.1", + "rustc-hash 2.1.3", "tracing", "warnings", ] @@ -3286,13 +3399,12 @@ dependencies = [ ] [[package]] -name = "dirs-next" -version = "2.0.0" +name = "dirs" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +checksum = "8d57d423b3c82e89b9a24ca3091fee61f456a26edbd28d26c65906f4bc1dcd8f" dependencies = [ - "cfg-if", - "dirs-sys-next", + "dirs-sys", ] [[package]] @@ -3303,73 +3415,53 @@ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users 0.5.2", + "redox_users", "windows-sys 0.61.2", ] -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users 0.4.6", - "winapi", -] - [[package]] name = "discord-rich-presence" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ead3c5edc7e048c317c6fc4a7e24aff0c7e4c136918e2ba38106a385b2cc53a5" +checksum = "90c55d69cab17c19677ce3a5f8face993a9e6eaf847fecac3547f3a3ff4a2494" dependencies = [ "log", "serde", "serde_derive", "serde_json", "serde_repr", - "thiserror 2.0.17", + "thiserror 2.0.21", "uuid 0.8.2", ] [[package]] name = "dispatch2" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.9.4", - "block2 0.6.2", + "bitflags 2.13.2", + "block2", "libc", - "objc2 0.6.4", + "objc2", ] [[package]] name = "displaydoc" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", -] - -[[package]] -name = "dlib" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" -dependencies = [ - "libloading 0.8.8", + "syn 3.0.9", ] [[package]] name = "dlopen2" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b54f373ccf864bf587a89e880fb7610f8d73f3045f13580948ccbcaff26febff" +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" dependencies = [ "dlopen2_derive", "libc", @@ -3379,13 +3471,13 @@ dependencies = [ [[package]] name = "dlopen2_derive" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "788160fb30de9cdd857af31c6a2675904b16ece8fc2737b2c7127ba368c9d0f4" +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -3405,20 +3497,20 @@ checksum = "780955b8b195a21ab8e4ac6b60dd1dbdcec1dc6c51c0617964b08c81785e12c9" [[package]] name = "docker_credential" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d89dfcba45b4afad7450a99b39e751590463e45c04728cf555d36bb66940de8" +checksum = "29547a1dc60885a552306986316bc9701ba120c1a8db6769fa68691529ad373d" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "serde", "serde_json", ] [[package]] name = "document-features" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" dependencies = [ "litrs", ] @@ -3430,12 +3522,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fac5fca71e65e94cc718a6e2af65d6e0f9c6027751c2aa562fbb5087fda639bc" dependencies = [ "bit-set 0.8.0", - "cssparser 0.37.0", + "cssparser", "foldhash 0.2.0", - "html5ever 0.39.0", + "html5ever", "precomputed-hash", - "selectors 0.38.0", - "tendril 0.5.1", + "selectors", + "tendril", ] [[package]] @@ -3450,12 +3542,6 @@ version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - [[package]] name = "dpi" version = "0.1.2" @@ -3467,9 +3553,9 @@ dependencies = [ [[package]] name = "dtoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" [[package]] name = "dtoa-short" @@ -3494,43 +3580,45 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ecdsa" -version = "0.16.9" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +checksum = "c0681a4fc24c767085329728d8dfba959af91228aa4610cca4f8ce317ba46ae0" dependencies = [ - "der", - "digest 0.10.7", + "der 0.8.2", + "digest 0.11.3", "elliptic-curve", "rfc6979", - "signature", - "spki", + "signature 3.0.0", + "spki 0.8.1", + "zeroize", ] [[package]] name = "either" -version = "1.15.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" dependencies = [ "serde", ] [[package]] name = "elliptic-curve" -version = "0.13.8" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +checksum = "9d65aa39b3a5c1c9c1b745c9a019234bb7a21b77abcb4f4d266d706e2d577d65" dependencies = [ "base16ct", "crypto-bigint", - "digest 0.10.7", + "crypto-common 0.2.2", + "digest 0.11.3", "ff", - "generic-array", "group", - "hkdf", - "pem-rfc7468", - "pkcs8", - "rand_core 0.6.4", + "hkdf 0.13.0", + "hybrid-array", + "pem-rfc7468 1.0.0", + "pkcs8 0.11.0", + "rand_core 0.10.1", "sec1", "subtle", "zeroize", @@ -3538,11 +3626,11 @@ dependencies = [ [[package]] name = "email-encoding" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9298e6504d9b9e780ed3f7dfd43a61be8cd0e09eb07f7706a945b0072b6670b6" +checksum = "420b9da095f052ea597503e39073b5b3c522f7db933fbac202d91d24492693fd" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", "memchr", ] @@ -3554,16 +3642,16 @@ checksum = "e079f19b08ca6239f47f8ba8509c11cf3ea30095831f7fed61441475edd8c449" [[package]] name = "embed-resource" -version = "3.0.6" +version = "3.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" +checksum = "6168487b5e7eb2673e6efe1200b1848016e436a6ca0b8031bf04bd9d493a249f" dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.9.8", + "toml 1.1.8+spec-1.1.0", "vswhom", - "winreg 0.55.0", + "winreg", ] [[package]] @@ -3592,30 +3680,23 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" -version = "0.8.35" +version = "0.8.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +checksum = "8e985e0451871ad22fb8d2b6b076e2028a502a0d3950998c2c5c0a4f9b5d9679" dependencies = [ "cfg-if", + "core_detect", + "multiversion_no_op", + "rustversion", + "scopeguard", + "simdutf8", ] [[package]] name = "endi" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" - -[[package]] -name = "enum-as-inner" -version = "0.6.1" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.106", -] +checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" [[package]] name = "enumflags2" @@ -3635,14 +3716,14 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "enumset" -version = "1.1.10" +version = "1.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b07a8dfbbbfc0064c0a6bdf9edcf966de6b1c33ce344bdeca3b41615452634" +checksum = "ccc5801fd11762e24d1e420d01d2ac518f2a2ca4329d4fbb6639f2412b6204e0" dependencies = [ "enumset_derive", "serde", @@ -3650,23 +3731,24 @@ dependencies = [ [[package]] name = "enumset_derive" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43e744e4ea338060faee68ed933e46e722fb7f3617e722a5772d7e856d8b3ce" +checksum = "4bd536557b58c682b217b8fb199afdff47cd3eff260623f19e77074eb073d63a" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "env_filter" -version = "0.1.4" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" +checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217" dependencies = [ "log", + "regex", ] [[package]] @@ -3677,9 +3759,9 @@ checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" [[package]] name = "env_logger" -version = "0.11.8" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" dependencies = [ "env_filter", "log", @@ -3702,20 +3784,20 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[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" -version = "0.4.8" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" dependencies = [ "serde", "serde_core", @@ -3762,11 +3844,10 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "5.4.1" +version = "5.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" dependencies = [ - "concurrent-queue", "parking", "pin-project-lite", ] @@ -3777,20 +3858,22 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.4.1", + "event-listener 5.4.2", "pin-project-lite", ] [[package]] name = "exr" -version = "1.73.0" +version = "1.74.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" +checksum = "711fe42c9964295e01ee3fba3f9fe0e1d24b98886950d68efe81b1c76e21adf3" dependencies = [ "bit_field", - "half 2.7.0", + "half 2.7.1", "lebe", - "miniz_oxide", + "miniz_oxide 0.8.9", + "num-complex", + "pulp", "rayon-core", "smallvec", "zune-inflate", @@ -3798,21 +3881,22 @@ dependencies = [ [[package]] name = "eyre" -version = "0.6.12" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +checksum = "c08309dbcc659c5549a24ddb9b27027640641b282ef5768267c7e675558986a3" dependencies = [ + "autocfg", "indenter", "once_cell", ] [[package]] name = "fancy-regex" -version = "0.13.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" +checksum = "e1e1dacd0d2082dfcf1351c4bdd566bbe89a2b263235a2b50058f1e130a47277" dependencies = [ - "bit-set 0.5.3", + "bit-set 0.8.0", "regex-automata", "regex-syntax", ] @@ -3828,32 +3912,18 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.4.3", ] [[package]] name = "fax" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" -dependencies = [ - "fax_derive", -] - -[[package]] -name = "fax_derive" -version = "0.2.0" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] +checksum = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a" [[package]] name = "fdeflate" @@ -3866,11 +3936,11 @@ dependencies = [ [[package]] name = "ff" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +checksum = "a1f686ab92a9fb0eaf188f6c6c87b89490baa6fdb0db4544ba4dc47f7942489f" dependencies = [ - "rand_core 0.6.4", + "rand_core 0.10.1", "subtle", ] @@ -3886,21 +3956,19 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.26" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" dependencies = [ "cfg-if", "libc", - "libredox", - "windows-sys 0.60.2", ] [[package]] name = "find-msvc-tools" -version = "0.1.11" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" +checksum = "1c66915cc5391097de7a2b0b972e8505aa33c0df401fd3a6811dbdb32881ba48" [[package]] name = "findshlibs" @@ -3916,19 +3984,19 @@ dependencies = [ [[package]] name = "finl_unicode" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5" +checksum = "80bb028c8b4148c9ee0cca68fcd9add6044e81d3619f48577ddf13a263d047a2" [[package]] name = "flate2" -version = "1.1.4" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" dependencies = [ "crc32fast", - "libz-rs-sys", - "miniz_oxide", + "miniz_oxide 0.9.1", + "zlib-rs", ] [[package]] @@ -3939,7 +4007,7 @@ checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" dependencies = [ "futures-core", "futures-sink", - "spin 0.9.8", + "spin 0.9.9", ] [[package]] @@ -3981,13 +4049,13 @@ dependencies = [ [[package]] name = "foreign-types-macros" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] @@ -4019,13 +4087,13 @@ checksum = "d8866fac38f53fc87fa3ae1b09ddd723e0482f8fa74323518b4c59df2c55a00a" [[package]] name = "fs4" -version = "0.13.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4" +checksum = "7e72ed92b67c146290f88e9c89d60ca163ea417a446f61ffd7b72df3e7f1dfd5" dependencies = [ - "rustix 1.1.2", + "rustix 1.1.5", "tokio", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -4049,27 +4117,11 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a" -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" -dependencies = [ - "mac", - "new_debug_unreachable", -] - [[package]] name = "futures" -version = "0.3.31" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3" dependencies = [ "futures-channel", "futures-core", @@ -4098,9 +4150,9 @@ checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432" dependencies = [ "futures-core", "futures-task", @@ -4145,7 +4197,7 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ - "fastrand 2.3.0", + "fastrand 2.5.0", "futures-core", "futures-io", "parking", @@ -4160,7 +4212,7 @@ checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.9", ] [[package]] @@ -4198,15 +4250,6 @@ dependencies = [ "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "gdk" version = "0.18.2" @@ -4325,7 +4368,7 @@ checksum = "c42a1fe5a699c7f1d36ea6e04ed680a5c787cabff4b610ae3b8954ea3bcefec1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -4340,23 +4383,22 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", - "zeroize", ] [[package]] name = "gethostname" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc257fdb4038301ce4b9cd1b3b51704509692bb3ff716a410cbd07925d9dae55" +checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" dependencies = [ - "rustix 1.1.2", - "windows-targets 0.52.6", + "rustix 1.1.5", + "windows-link 0.2.1", ] [[package]] @@ -4372,9 +4414,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "js-sys", @@ -4385,47 +4427,46 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi 5.3.0", - "wasi 0.14.7+wasi-0.2.4", + "wasip2", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi 6.0.0", "rand_core 0.10.1", - "wasip2", - "wasip3", + "wasm-bindgen", ] [[package]] name = "ghash" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +checksum = "2eecf2d5dc9b66b732b97707a0210906b1d30523eb773193ab777c0c84b3e8d5" dependencies = [ - "opaque-debug", "polyval", ] [[package]] name = "gif" -version = "0.13.3" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b" +checksum = "ee8cfcc411d9adbbaba82fb72661cc1bcca13e8bba98b364e62b2dba8f960159" dependencies = [ "color_quant", "weezl", @@ -4475,7 +4516,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "futures-channel", "futures-core", "futures-executor", @@ -4503,7 +4544,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -4518,9 +4559,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" [[package]] name = "gobject-sys" @@ -4544,13 +4585,13 @@ dependencies = [ "futures-sink", "futures-timer", "futures-util", - "getrandom 0.3.3", - "hashbrown 0.16.0", + "getrandom 0.3.4", + "hashbrown 0.16.1", "nonzero_ext", "parking_lot", "portable-atomic", "quanta", - "rand 0.9.2", + "rand 0.9.5", "smallvec", "spinning_top", "web-time", @@ -4558,12 +4599,12 @@ dependencies = [ [[package]] name = "group" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +checksum = "7fd1a1c7a5206c5b7a3f5a0d7ccd3ff85d0c8f5133d62a02680255b0004af5f4" dependencies = [ "ff", - "rand_core 0.6.4", + "rand_core 0.10.1", "subtle", ] @@ -4616,7 +4657,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -4640,16 +4681,16 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "7d29020232d6aa3fb1daca64c1127cf662cf97f254ae16c18c05b8ab635fc118" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.3.1", + "http 1.5.0", "indexmap 2.14.2", "slab", "tokio", @@ -4665,9 +4706,9 @@ checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" [[package]] name = "half" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54c115d4f30f52c67202f079c5f9d8b49db4691f460fdb0b4c2e838261b2ba5" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", @@ -4679,19 +4720,12 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.8", -] [[package]] name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash 0.8.12", - "allocator-api2", -] [[package]] name = "hashbrown" @@ -4706,9 +4740,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", @@ -4720,6 +4754,11 @@ name = "hashbrown" version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] [[package]] name = "hashlink" @@ -4762,9 +4801,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" [[package]] name = "hex" @@ -4773,23 +4812,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] -name = "hickory-proto" -version = "0.24.4" +name = "hickory-net" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" +checksum = "c480823ed7c2c5d0f09c41020cb6b7c28029ce60ec42dc942158dcf22f8e0a4d" dependencies = [ "async-trait", "cfg-if", "data-encoding", - "enum-as-inner", "futures-channel", "futures-io", "futures-util", + "hickory-proto", "idna", "ipnet", - "once_cell", - "rand 0.8.5", - "thiserror 1.0.69", + "jni 0.22.4", + "rand 0.10.3", + "thiserror 2.0.21", "tinyvec", "tokio", "tracing", @@ -4798,78 +4837,66 @@ dependencies = [ [[package]] name = "hickory-proto" -version = "0.25.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" +checksum = "12b92608f679a6fa515dd1d15c1ff89443026e391200a2c840c7afcba482893d" dependencies = [ - "async-trait", - "cfg-if", "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", "idna", "ipnet", + "jni 0.22.4", "once_cell", - "rand 0.9.2", + "prefix-trie", + "rand 0.10.3", "ring", - "thiserror 2.0.17", + "thiserror 2.0.21", "tinyvec", - "tokio", "tracing", "url", ] [[package]] name = "hickory-resolver" -version = "0.24.4" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" +checksum = "3f3da5255c95d5a716857d54b5b8f4e8d67c3484d3beaaaae2ce25063b3ba981" dependencies = [ "cfg-if", "futures-util", - "hickory-proto 0.24.4", + "hickory-net", + "hickory-proto", "ipconfig", - "lru-cache", + "ipnet", + "jni 0.22.4", + "moka", + "ndk-context", "once_cell", "parking_lot", - "rand 0.8.5", + "rand 0.10.3", "resolv-conf", "smallvec", - "thiserror 1.0.69", + "system-configuration", + "thiserror 2.0.21", "tokio", "tracing", ] [[package]] -name = "hickory-resolver" -version = "0.25.2" +name = "hkdf" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "cfg-if", - "futures-util", - "hickory-proto 0.25.2", - "ipconfig", - "moka", - "once_cell", - "parking_lot", - "rand 0.9.2", - "resolv-conf", - "smallvec", - "thiserror 2.0.17", - "tokio", - "tracing", + "hmac 0.12.1", ] [[package]] name = "hkdf" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +checksum = "4aaa26c720c68b866f2c96ef5c1264b3e6f473fe5d4ce61cd44bbe913e553018" dependencies = [ - "hmac", + "hmac 0.13.0", ] [[package]] @@ -4882,35 +4909,32 @@ dependencies = [ ] [[package]] -name = "home" -version = "0.5.11" +name = "hmac" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" dependencies = [ - "windows-sys 0.59.0", + "digest 0.11.3", ] [[package]] -name = "hostname" -version = "0.4.1" +name = "home" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" dependencies = [ - "cfg-if", - "libc", - "windows-link 0.1.3", + "windows-sys 0.61.2", ] [[package]] -name = "html5ever" -version = "0.29.1" +name = "hostname" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" +checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" dependencies = [ - "log", - "mac", - "markup5ever 0.14.1", - "match_token", + "cfg-if", + "libc", + "windows-link 0.2.1", ] [[package]] @@ -4920,7 +4944,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8" dependencies = [ "log", - "markup5ever 0.39.0", + "markup5ever", ] [[package]] @@ -4936,12 +4960,11 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -4958,32 +4981,32 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c" dependencies = [ "bytes", - "http 1.3.1", + "http 1.5.0", ] [[package]] name = "http-body-util" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +checksum = "23169fe34a5fbcdd3f3862e78fb9b6fccd5f02a6dc6f732547005d45631ce71c" dependencies = [ "bytes", "futures-core", - "http 1.3.1", - "http-body 1.0.1", + "http 1.5.0", + "http-body 1.1.0", "pin-project-lite", ] [[package]] name = "http-range" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" +checksum = "2149c4b4b83390c71fab669730347d578ec6bdf759f2160c581ad8b8819733b4" [[package]] name = "http-types" @@ -5020,11 +5043,13 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hybrid-array" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" dependencies = [ + "subtle", "typenum", + "zeroize", ] [[package]] @@ -5053,22 +5078,21 @@ dependencies = [ [[package]] name = "hyper" -version = "1.7.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "2c3e324da4c95177d6291d4c8730197c0d1822f8a9766814a4a44fa5ab797c9c" dependencies = [ "atomic-waker", "bytes", "futures-channel", "futures-core", - "h2 0.4.12", - "http 1.3.1", - "http-body 1.0.1", + "h2 0.4.20", + "http 1.5.0", + "http-body 1.1.0", "httparse", "httpdate", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -5076,17 +5100,16 @@ dependencies = [ [[package]] name = "hyper-named-pipe" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" +checksum = "fab3637d6b04a8037af8a266fdf6cf92ea957e8c53981a2bf6136572531025bf" dependencies = [ "hex", - "hyper 1.7.0", + "hyper 1.12.0", "hyper-util", "pin-project-lite", "tokio", "tower-service", - "winapi", ] [[package]] @@ -5107,20 +5130,19 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "dfa8e654703247911e29c23fbeaa261834bd9bb74efba2f9acddc37bfb127f53" dependencies = [ - "http 1.3.1", - "hyper 1.7.0", + "http 1.5.0", + "hyper 1.12.0", "hyper-util", - "rustls 0.23.32", - "rustls-native-certs 0.8.1", - "rustls-pki-types", + "rustls 0.23.46", + "rustls-native-certs 0.8.5", "tokio", - "tokio-rustls 0.26.4", + "tokio-rustls 0.26.6", "tower-service", - "webpki-roots 1.0.3", + "webpki-roots 1.0.10", ] [[package]] @@ -5129,43 +5151,27 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 1.7.0", + "hyper 1.12.0", "hyper-util", "pin-project-lite", "tokio", "tower-service", ] -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper 1.7.0", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - [[package]] name = "hyper-util" -version = "0.1.17" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +checksum = "ddc03d96684f9226b8a787cdb71488417b53ab5ea8fdb1dac946cb9431cc8bff" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", "bytes", "futures-channel", - "futures-core", "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "hyper 1.7.0", + "http 1.5.0", + "http-body 1.1.0", + "httparse", + "hyper 1.12.0", "ipnet", "libc", "percent-encoding", @@ -5186,7 +5192,7 @@ checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7" dependencies = [ "hex", "http-body-util", - "hyper 1.7.0", + "hyper 1.12.0", "hyper-util", "pin-project-lite", "tokio", @@ -5195,9 +5201,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -5229,12 +5235,13 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" dependencies = [ "displaydoc", "potential_utf", + "utf8_iter", "yoke", "zerofrom", "zerovec", @@ -5242,9 +5249,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" dependencies = [ "displaydoc", "litemap", @@ -5255,11 +5262,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -5270,42 +5276,39 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" dependencies = [ "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -5313,12 +5316,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "ident_case" version = "1.0.1" @@ -5338,9 +5335,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" dependencies = [ "icu_normalizer", "icu_properties", @@ -5348,9 +5345,9 @@ dependencies = [ [[package]] name = "image" -version = "0.25.8" +version = "0.25.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" +checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" dependencies = [ "bytemuck", "byteorder-lite", @@ -5360,7 +5357,7 @@ dependencies = [ "image-webp", "moxcms", "num-traits", - "png 0.18.0", + "png 0.18.1", "qoi", "ravif", "rayon", @@ -5382,15 +5379,15 @@ dependencies = [ [[package]] name = "imgref" -version = "1.12.0" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" +checksum = "6e44b0a4eaa4c82f441d50a963f2d5f05a787240aeee097597033e72accfd22f" [[package]] name = "impl-more" -version = "0.3.1" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35a84fd5aa25fae5c0f4a33d9cac2ca017fc622cbd089be2229993514990f870" +checksum = "2d3a73c82a0b0747dba739b380c046a140b5ae747234bf701df3460282da7193" [[package]] name = "include_dir" @@ -5442,9 +5439,9 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.18.0" +version = "0.18.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a646d946d06bedbbc4cac4c218acf4bbf2d87757a784857025f4d447e4e1cd" +checksum = "9433806cd6b4ec1aba79c021c7e4c58fb4c3b9977c085062e611ac929998fb0c" dependencies = [ "console", "portable-atomic", @@ -5479,12 +5476,12 @@ dependencies = [ [[package]] name = "inferno" -version = "0.12.3" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96d2465363ed2d81857759fc864cf6bb7997f79327aec028d65bd7989393685" +checksum = "0c460d4fa06223667240720ab69a8045133755ae6dfbe100cf481b95e3a014f1" dependencies = [ - "ahash 0.8.12", - "clap 4.5.48", + "ahash", + "clap 4.6.7", "crossbeam-channel", "crossbeam-utils", "dashmap", @@ -5494,38 +5491,38 @@ dependencies = [ "log", "num-format", "once_cell", - "quick-xml 0.37.5", + "quick-xml 0.41.0", "rgb", "str_stack", ] [[package]] name = "inotify" -version = "0.11.0" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" +checksum = "4cc00ea907cab49550b7da656f80ebb97be1b997d931fbcd28d39734e17ce592" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "inotify-sys", "libc", ] [[package]] name = "inotify-sys" -version = "0.1.5" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +checksum = "c033f80b2c113cdf91ab7a33faa9cbc014726dcad99880c8609af2a370edf37d" dependencies = [ "libc", ] [[package]] name = "inout" -version = "0.1.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +checksum = "3b5cf4372d022092674a83b8febf5865f7a573cc0c5baec5e49c879b6a20978f" dependencies = [ - "generic-array", + "hybrid-array", ] [[package]] @@ -5545,26 +5542,30 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "ipconfig" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +checksum = "4d40460c0ce33d6ce4b0630ad68ff63d6661961c48b6dba35e5a4d81cfb48222" dependencies = [ - "socket2 0.5.10", + "socket2 0.6.5", "widestring", - "windows-sys 0.48.0", - "winreg 0.50.0", + "windows-registry", + "windows-result 0.4.1", + "windows-sys 0.61.2", ] [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0" +dependencies = [ + "serde", +] [[package]] name = "ipnetwork" @@ -5572,16 +5573,6 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf370abdafd54d13e54a620e8c3e1145f28e46cc9d704bc6d94414559df41763" -[[package]] -name = "iri-string" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "is-docker" version = "0.2.0" @@ -5591,17 +5582,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "is-terminal" -version = "0.4.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" -dependencies = [ - "hermit-abi 0.5.2", - "libc", - "windows-sys 0.59.0", -] - [[package]] name = "is-wsl" version = "0.4.0" @@ -5614,9 +5594,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -5629,36 +5609,27 @@ dependencies = [ [[package]] name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ "either", ] [[package]] name = "itertools" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "javascriptcore-rs" @@ -5685,9 +5656,9 @@ dependencies = [ [[package]] name = "jemalloc_pprof" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74ff642505c7ce8d31c0d43ec0e235c6fd4585d9b8172d8f9dd04d36590200b5" +checksum = "0bb2dfa20a68824f4c8c1aa271617d0ee0d9b707a866d56b7d7ee39c60c235a8" dependencies = [ "anyhow", "libc", @@ -5700,6 +5671,60 @@ dependencies = [ "tracing", ] +[[package]] +name = "jiff" +version = "0.2.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b005715dcbeb0089a3c0dab99f2ff1cc3b2525323552703d648585d342a383" +dependencies = [ + "defmt", + "jiff-core", + "jiff-static", + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", + "windows-link 0.2.1", +] + +[[package]] +name = "jiff-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e52fe76043ccecc9005d2305ebaadf7d7fc0cc89ca6baa10a94d6bc68c7128c" +dependencies = [ + "defmt", + "log", +] + +[[package]] +name = "jiff-static" +version = "0.2.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cc9817253cf7c7ee4684451bd327e88d6f3658014e54a29198625590650695c" +dependencies = [ + "jiff-core", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8377070c6bae868759445e5a77f66d84f0b72f3a054bfb00e6d038b8282da7" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + [[package]] name = "jni" version = "0.21.1" @@ -5709,56 +5734,109 @@ dependencies = [ "cesu8", "cfg-if", "combine", - "jni-sys", + "jni-sys 0.3.1", "log", "thiserror 1.0.69", "walkdir", "windows-sys 0.45.0", ] +[[package]] +name = "jni" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +dependencies = [ + "cfg-if", + "combine", + "jni-macros", + "jni-sys 0.4.1", + "log", + "simd_cesu8", + "thiserror 2.0.21", + "walkdir", + "windows-link 0.2.1", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.119", +] + [[package]] name = "jni-sys" -version = "0.3.0" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.119", +] [[package]] name = "jobserver" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.4.3", "libc", ] [[package]] name = "js-sys" -version = "0.3.91" +version = "0.3.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +checksum = "7883d941dae510fb2d978fc3fe018c71c9e2892fd38854de3e8b92c2e5ad9cc5" dependencies = [ - "once_cell", + "cfg-if", + "futures-util", "wasm-bindgen", ] [[package]] name = "json-patch" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f300e415e2134745ef75f04562dd0145405c2f7fd92065db029ac4b16b57fe90" +checksum = "7421438de105a0827e44fadd05377727847d717c80ce29a229f85fd04c427b72" dependencies = [ "jsonptr", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.21", ] [[package]] name = "json5" -version = "1.3.1" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733a844dbd6fef128e98cb4487b887cb55454d92cd9994b1bafe004fabbe670c" +checksum = "6efe947c4a8f66438994e559a1e1309ae2a315cabf67476f155e27281f11cbc1" dependencies = [ "serde", "ucd-trie", @@ -5776,45 +5854,47 @@ dependencies = [ [[package]] name = "keyboard-types" -version = "0.7.0" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "serde", - "unicode-segmentation", ] [[package]] -name = "kqueue" -version = "1.1.1" +name = "konst" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a" +checksum = "128133ed7824fcd73d6e7b17957c5eb7bacb885649bd8c69708b2331a10bcefb" dependencies = [ - "kqueue-sys", - "libc", + "konst_macro_rules", ] [[package]] -name = "kqueue-sys" -version = "1.0.4" +name = "konst_macro_rules" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4933f3f57a8e9d9da04db23fb153356ecaf00cbd14aee46279c33dc80925c37" + +[[package]] +name = "kqueue" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +checksum = "8d763e5b24120b4ddf50de6c92308156765aabfbbccebf401da7cff2d70a41ea" dependencies = [ - "bitflags 1.3.2", + "kqueue-sys", "libc", ] [[package]] -name = "kuchikiki" -version = "0.8.8-speedreader" +name = "kqueue-sys" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" +checksum = "07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087" dependencies = [ - "cssparser 0.29.6", - "html5ever 0.29.1", - "indexmap 2.14.2", - "selectors 0.24.0", + "bitflags 2.13.2", + "libc", ] [[package]] @@ -5836,22 +5916,22 @@ dependencies = [ "async-stripe", "async-trait", "aws-sdk-s3", - "base64 0.22.1", - "bitflags 2.9.4", + "base64 0.23.1", + "bitflags 2.13.2", "blocklist", "bytes", "cel", "censor", "chrono", "chumsky", - "clap 4.5.48", + "clap 4.6.7", "clickhouse", "color-eyre", "color-thief", "component-derive", "const_format", "dashmap", - "derive_more 2.1.1", + "derive_more", "dioxus-devtools", "dotenv-build", "dotenvy", @@ -5861,12 +5941,12 @@ dependencies = [ "futures-util", "heck 0.5.0", "hex", - "hmac", - "hyper-rustls 0.27.7", + "hmac 0.13.0", + "hyper-rustls 0.27.10", "hyper-util", "iana-time-zone", "image", - "itertools 0.14.0", + "itertools 0.15.0", "jemalloc_pprof", "json-patch", "labrinth", @@ -5884,16 +5964,16 @@ dependencies = [ "prometheus", "psl", "pulldown-cmark", - "quick-xml 0.38.3", - "rand 0.8.5", - "rand_chacha 0.3.1", + "quick-xml 0.42.0", + "rand 0.10.3", + "rand_chacha 0.10.0", "rdkafka", "redis", "regex", - "reqwest 0.12.24", + "reqwest 0.13.5", "rust_decimal", "rust_iso3166", - "rustls 0.23.32", + "rustls 0.23.46", "rustrict", "rusty-money", "scalar_api_reference", @@ -5902,14 +5982,14 @@ dependencies = [ "serde-binhum", "serde_json", "serde_with", - "sha1 0.10.6", - "sha2", + "sha1 0.11.0", + "sha2 0.11.1", "smallvec", "spdx", "sqlx", "sqlx-tracing", - "strum", - "thiserror 2.0.17", + "strum 0.28.0", + "thiserror 2.0.21", "tikv-jemalloc-ctl", "tikv-jemallocator", "tokio", @@ -5922,7 +6002,7 @@ dependencies = [ "url", "urlencoding", "utoipa", - "uuid 1.23.3", + "uuid 1.28.0", "validator", "webauthn-rs", "webauthn-rs-proto", @@ -5930,7 +6010,7 @@ dependencies = [ "woothee", "xredis", "yaserde", - "zip 6.0.0", + "zip 9.0.5", "zxcvbn", ] @@ -5942,19 +6022,13 @@ checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" [[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" dependencies = [ - "spin 0.9.8", + "spin 0.9.9", ] -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - [[package]] name = "lebe" version = "0.5.3" @@ -5963,16 +6037,15 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" [[package]] name = "lettre" -version = "0.11.19" +version = "0.11.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e13e10e8818f8b2a60f52cb127041d388b89f3a96a62be9ceaffa22262fef7f" +checksum = "f2c646bd5cc763b1087b15493e29a64be6147ba8f19342004fa52048ee596eae" dependencies = [ "async-trait", - "base64 0.22.1", - "chumsky", + "base64 0.23.1", "email-encoding", "email_address", - "fastrand 2.3.0", + "fastrand 2.5.0", "futures-io", "futures-util", "hostname", @@ -5982,11 +6055,11 @@ dependencies = [ "nom 8.0.0", "percent-encoding", "quoted_printable", - "rustls 0.23.32", - "rustls-native-certs 0.8.1", + "rustls 0.23.46", + "rustls-native-certs 0.8.5", "socket2 0.6.5", "tokio", - "tokio-rustls 0.26.4", + "tokio-rustls 0.26.6", "url", ] @@ -6016,15 +6089,15 @@ dependencies = [ [[package]] name = "libbz2-rs-sys" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" +checksum = "34b357333733e8260735ba5894eb928c02ecc69c78715f01a8019e7fa7f2db4c" [[package]] name = "libc" -version = "0.2.186" +version = "0.2.191" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" +checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a" [[package]] name = "libdbus-sys" @@ -6037,9 +6110,9 @@ dependencies = [ [[package]] name = "libfuzzer-sys" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" +checksum = "a9fd2f41a1cba099f79a0b6b6c35656cf7c03351a7bae8ff0f28f25270f929d2" dependencies = [ "arbitrary", "cc", @@ -6057,29 +6130,30 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-targets 0.53.5", + "windows-link 0.2.1", ] [[package]] name = "libm" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.10" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +checksum = "61ff90caf6077a803a240f62fdbe88645a890bbca49ef8174c3cb0404362171d" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "libc", - "redox_syscall", + "plain", + "redox_syscall 0.9.5", ] [[package]] @@ -6103,20 +6177,11 @@ dependencies = [ "glob", ] -[[package]] -name = "libz-rs-sys" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd" -dependencies = [ - "zlib-rs", -] - [[package]] name = "libz-sys" -version = "1.1.29" +version = "1.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bc9657773828b90eeb625adff10eeac83cc21bbfd8e23a03eaa8a33c9e28d9" +checksum = "f710a23e6dbf193214fd46ca56a9d6864e550abe86202184532ae7275e46de19" dependencies = [ "cc", "libc", @@ -6132,7 +6197,7 @@ checksum = "f40d9129bb9fe42c95d1bd420d6891607eaff17df16ee15674aed2d05b0ec8f4" dependencies = [ "counter", "dashmap", - "fastrand 2.3.0", + "fastrand 2.5.0", "fst", "include_dir", "itertools 0.14.0", @@ -6216,8 +6281,8 @@ dependencies = [ "regex", "serde", "serde-wasm-bindgen", - "strum", - "strum_macros", + "strum 0.27.2", + "strum_macros 0.27.2", "wasm-bindgen", ] @@ -6896,12 +6961,6 @@ dependencies = [ "include_dir", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linkify" version = "0.11.0" @@ -6919,21 +6978,21 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" [[package]] name = "litrs" -version = "0.4.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" +checksum = "4744e383959f0db86ede514b809b1c53251889093803c05267acc7d4e7030d70" [[package]] name = "local-channel" @@ -6963,9 +7022,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "longest-increasing-subsequence" @@ -6988,35 +7047,20 @@ version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" dependencies = [ - "hashbrown 0.16.0", -] - -[[package]] -name = "lru-cache" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" -dependencies = [ - "linked-hash-map", + "hashbrown 0.16.1", ] [[package]] name = "lru-slab" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +checksum = "4050469837a6ff301cd14c1f8f24f88549e6d548f24f64e2148eb0f72cebc51f" [[package]] name = "lz4_flex" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a" - -[[package]] -name = "mac" -version = "0.1.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" +checksum = "ecbdfe44b1bd960b68170b417450a628c43f7cf56bb3c5317e61cb230ee7f226" [[package]] name = "maplit" @@ -7026,9 +7070,9 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "mappings" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4d277bb50d4508057e7bddd7fcd19ef4a4cc38051b6a5a36868d75ae2cbeb9" +checksum = "8bab1e61a4b76757edb59cd81fcaa7f3ba9018d43b527d9abfad877b4c6c60f2" dependencies = [ "anyhow", "libc", @@ -7037,20 +7081,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "markup5ever" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" -dependencies = [ - "log", - "phf 0.11.3", - "phf_codegen 0.11.3", - "string_cache 0.8.9", - "string_cache_codegen 0.5.4", - "tendril 0.4.3", -] - [[package]] name = "markup5ever" version = "0.39.0" @@ -7058,21 +7088,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de" dependencies = [ "log", - "tendril 0.5.1", + "tendril", "web_atoms", ] -[[package]] -name = "match_token" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "matchers" version = "0.2.0" @@ -7082,12 +7101,6 @@ dependencies = [ "regex-automata", ] -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - [[package]] name = "matchit" version = "0.8.4" @@ -7096,26 +7109,25 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "maxminddb" -version = "0.26.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a197e44322788858682406c74b0b59bf8d9b4954fe1f224d9a25147f1880bba" +checksum = "9b43d2458d977b610b04a3858e6504f06133663d303a1a0606601b530bfc9bc6" dependencies = [ "ipnetwork", - "log", "memchr", "serde", - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] name = "maybe-async" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" +checksum = "746873a384ad60adc5db74471dfaba74bd278afbdcfd81db93fafcdfc8b5ca0c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -7138,25 +7150,35 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "md-5" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69b6441f590336821bb897fb28fc622898ccceb1d6cea3fde5ea86b090c4de98" +dependencies = [ + "cfg-if", + "digest 0.11.3", +] + [[package]] name = "md5" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae960838283323069879657ca3de837e9f7bbb4c7bf6ea7f1b290d5e9476d2e0" +checksum = "7ebb8d8732c6a6df3d8f032a82911cfc747e00efb95cc46e8d0acd5b5b88570c" [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "memfd" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227" +checksum = "57804b2c9b69967f1536a56f86297e367a33b19e98852ed624b84551cdbc0d90" dependencies = [ - "rustix 1.1.2", + "rustix 1.1.5", ] [[package]] @@ -7210,9 +7232,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "minisign-verify" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e856fdd13623a2f5f2f54676a4ee49502a96a80ef4a62bcedd23d52427c44d43" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" [[package]] name = "miniz_oxide" @@ -7224,11 +7246,21 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "miniz_oxide" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c" +dependencies = [ + "adler2", + "simd-adler32", +] + [[package]] name = "mio" -version = "1.2.2" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" +checksum = "1788edb87fdc09c7e26304471e2f5be8cdefb1b6930d6e3985fc02ff53bf86ee" dependencies = [ "libc", "log", @@ -7243,7 +7275,7 @@ dependencies = [ "async-trait", "chrono", "serde", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "utoipa", ] @@ -7265,13 +7297,13 @@ name = "modrinth-maxmind" version = "0.0.0" dependencies = [ "bytes", - "clap 4.5.48", + "clap 4.6.7", "directories", "eyre", "flate2", "maxminddb", "modrinth-util", - "reqwest 0.12.24", + "reqwest 0.13.5", "tar", "tokio", "tracing", @@ -7283,7 +7315,7 @@ name = "modrinth-util" version = "0.0.0" dependencies = [ "actix-web", - "derive_more 2.1.1", + "derive_more", "dotenvy", "eyre", "modrinth-log", @@ -7295,9 +7327,9 @@ dependencies = [ [[package]] name = "moka" -version = "0.12.11" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" +checksum = "4293f18e7567a1caf3c584855554377025c65e0aa445344d04171f5ad63d19b9" dependencies = [ "crossbeam-channel", "crossbeam-epoch", @@ -7305,17 +7337,16 @@ dependencies = [ "equivalent", "parking_lot", "portable-atomic", - "rustc_version", "smallvec", "tagptr", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] name = "moxcms" -version = "0.7.7" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c588e11a3082784af229e23e8e4ecf5bcc6fbe4f69101e0421ce8d79da7f0b40" +checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b" dependencies = [ "num-traits", "pxfm", @@ -7323,25 +7354,31 @@ dependencies = [ [[package]] name = "muda" -version = "0.19.3" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" +checksum = "cca139e57da4383727f189e43e66e84fa372347027fc996f9f1a007ec0a37996" dependencies = [ "crossbeam-channel", "dpi", "gtk", "keyboard-types", - "objc2 0.6.4", + "objc2", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation 0.3.2", + "objc2-foundation", "once_cell", - "png 0.18.0", + "png 0.18.1", "serde", - "thiserror 2.0.17", + "thiserror 2.0.21", "windows-sys 0.61.2", ] +[[package]] +name = "multiversion_no_op" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743fb55ba31b18fb1ecef6bdc9aa2743314978ac084044301a7eee33fb99a20d" + [[package]] name = "muralpay" version = "0.1.0" @@ -7349,17 +7386,17 @@ dependencies = [ "arc-swap", "bytes", "chrono", - "derive_more 2.1.1", - "reqwest 0.12.24", + "derive_more", + "reqwest 0.13.5", "rust_decimal", "rust_iso3166", "secrecy", "serde", "serde_json", "serde_with", - "strum", + "strum 0.28.0", "utoipa", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] @@ -7385,53 +7422,35 @@ checksum = "e94e1e6445d314f972ff7395df2de295fe51b71821694f0b0e1e79c4f12c8577" [[package]] name = "native-dialog" -version = "0.9.2" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1657b63bf0e60ee0eca886b5df70269240b6197b6ee46ec37da9a7d28d8e8e24" +checksum = "971a75894502033d79718a00a86e03595caa1a3620e0cba1985a5fde8d2e0b66" dependencies = [ "ascii", - "block2 0.6.2", - "dirs", + "block2", "dispatch2", "formatx", - "objc2 0.6.4", + "objc2", "objc2-app-kit", "objc2-core-foundation", "objc2-core-graphics", - "objc2-foundation 0.3.2", + "objc2-foundation", "raw-window-handle", - "thiserror 2.0.17", + "thiserror 2.0.21", "versions", "wfd", "which", "winapi", ] -[[package]] -name = "native-tls" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework 2.11.1", - "security-framework-sys", - "tempfile", -] - [[package]] name = "ndk" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.9.4", - "jni-sys", + "bitflags 2.13.2", + "jni-sys 0.3.1", "log", "ndk-sys", "num_enum", @@ -7451,14 +7470,14 @@ version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" dependencies = [ - "jni-sys", + "jni-sys 0.3.1", ] [[package]] name = "neverbounce" version = "0.1.0" dependencies = [ - "reqwest 0.12.24", + "reqwest 0.13.5", "serde", ] @@ -7470,22 +7489,24 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" -version = "0.30.1" +version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "cfg-if", "cfg_aliases", "libc", - "memoffset", ] [[package]] -name = "nodrop" -version = "0.1.14" +name = "no_std_io2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] [[package]] name = "nom" @@ -7524,7 +7545,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "fsevent-sys", "inotify", "kqueue", @@ -7550,15 +7571,18 @@ dependencies = [ [[package]] name = "notify-types" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" +checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" +dependencies = [ + "bitflags 2.13.2", +] [[package]] name = "ntapi" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" dependencies = [ "winapi", ] @@ -7578,7 +7602,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ - "num-bigint", + "num-bigint 0.4.8", "num-complex", "num-integer", "num-iter", @@ -7588,9 +7612,19 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.6" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +checksum = "93e7820bc0a80a0238e650327316f929ba18d5be054b647490a3a6a339f3e7c0" dependencies = [ "num-integer", "num-traits", @@ -7598,17 +7632,16 @@ dependencies = [ [[package]] name = "num-bigint-dig" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" dependencies = [ - "byteorder", "lazy_static", "libm", "num-integer", "num-iter", "num-traits", - "rand 0.8.5", + "rand 0.8.8", "smallvec", "zeroize", ] @@ -7619,14 +7652,15 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ + "bytemuck", "num-traits", ] [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-derive" @@ -7636,7 +7670,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -7651,20 +7685,19 @@ dependencies = [ [[package]] name = "num-integer" -version = "0.1.46" +version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" dependencies = [ "num-traits", ] [[package]] name = "num-iter" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" dependencies = [ - "autocfg", "num-integer", "num-traits", ] @@ -7675,7 +7708,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "num-bigint", + "num-bigint 0.4.8", "num-integer", "num-traits", ] @@ -7696,15 +7729,15 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.5.2", + "hermit-abi 0.5.3", "libc", ] [[package]] name = "num_enum" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -7712,37 +7745,21 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.106", -] - -[[package]] -name = "objc-sys" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" - -[[package]] -name = "objc2" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" -dependencies = [ - "objc-sys", - "objc2-encode", + "syn 2.0.119", ] [[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", @@ -7754,12 +7771,13 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.9.4", - "block2 0.6.2", - "objc2 0.6.4", + "bitflags 2.13.2", + "block2", + "objc2", "objc2-core-foundation", "objc2-core-graphics", - "objc2-foundation 0.3.2", + "objc2-foundation", + "objc2-quartz-core", ] [[package]] @@ -7768,9 +7786,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" dependencies = [ - "bitflags 2.9.4", - "objc2 0.6.4", - "objc2-foundation 0.3.2", + "bitflags 2.13.2", + "objc2", + "objc2-foundation", ] [[package]] @@ -7779,8 +7797,8 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" dependencies = [ - "objc2 0.6.4", - "objc2-foundation 0.3.2", + "objc2", + "objc2-foundation", ] [[package]] @@ -7789,9 +7807,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "dispatch2", - "objc2 0.6.4", + "objc2", ] [[package]] @@ -7800,9 +7818,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "dispatch2", - "objc2 0.6.4", + "objc2", "objc2-core-foundation", "objc2-io-surface", ] @@ -7813,8 +7831,8 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" dependencies = [ - "objc2 0.6.4", - "objc2-foundation 0.3.2", + "objc2", + "objc2-foundation", ] [[package]] @@ -7823,8 +7841,8 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" dependencies = [ - "objc2 0.6.4", - "objc2-foundation 0.3.2", + "objc2", + "objc2-foundation", ] [[package]] @@ -7833,8 +7851,8 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" dependencies = [ - "bitflags 2.9.4", - "objc2 0.6.4", + "bitflags 2.13.2", + "objc2", "objc2-core-foundation", "objc2-core-graphics", ] @@ -7854,28 +7872,16 @@ dependencies = [ "cc", ] -[[package]] -name = "objc2-foundation" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" -dependencies = [ - "bitflags 2.9.4", - "block2 0.5.1", - "libc", - "objc2 0.5.2", -] - [[package]] name = "objc2-foundation" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.9.4", - "block2 0.6.2", + "bitflags 2.13.2", + "block2", "libc", - "objc2 0.6.4", + "objc2", "objc2-core-foundation", ] @@ -7895,58 +7901,42 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" dependencies = [ - "bitflags 2.9.4", - "objc2 0.6.4", + "bitflags 2.13.2", + "objc2", "objc2-core-foundation", ] -[[package]] -name = "objc2-metal" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" -dependencies = [ - "bitflags 2.9.4", - "block2 0.5.1", - "objc2 0.5.2", - "objc2-foundation 0.2.2", -] - [[package]] name = "objc2-osa-kit" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f112d1746737b0da274ef79a23aac283376f335f4095a083a267a082f21db0c0" dependencies = [ - "bitflags 2.9.4", - "objc2 0.6.4", + "bitflags 2.13.2", + "objc2", "objc2-app-kit", - "objc2-foundation 0.3.2", + "objc2-foundation", ] [[package]] name = "objc2-quartz-core" -version = "0.2.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" dependencies = [ - "bitflags 2.9.4", - "block2 0.5.1", - "objc2 0.5.2", - "objc2-foundation 0.2.2", - "objc2-metal", + "bitflags 2.13.2", + "objc2", + "objc2-core-foundation", + "objc2-foundation", ] [[package]] -name = "objc2-quartz-core" +name = "objc2-system-configuration" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +checksum = "7216bd11cbda54ccabcab84d523dc93b858ec75ecfb3a7d89513fa22464da396" dependencies = [ - "bitflags 2.9.4", - "objc2 0.6.4", "objc2-core-foundation", - "objc2-foundation 0.3.2", ] [[package]] @@ -7955,9 +7945,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" dependencies = [ - "bitflags 2.9.4", - "block2 0.6.2", - "objc2 0.6.4", + "bitflags 2.13.2", + "block2", + "objc2", "objc2-cloud-kit", "objc2-core-data", "objc2-core-foundation", @@ -7965,8 +7955,8 @@ dependencies = [ "objc2-core-image", "objc2-core-location", "objc2-core-text", - "objc2-foundation 0.3.2", - "objc2-quartz-core 0.3.2", + "objc2-foundation", + "objc2-quartz-core", "objc2-user-notifications", ] @@ -7976,8 +7966,8 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" dependencies = [ - "objc2 0.6.4", - "objc2-foundation 0.3.2", + "objc2", + "objc2-foundation", ] [[package]] @@ -7986,12 +7976,12 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" dependencies = [ - "bitflags 2.9.4", - "block2 0.6.2", - "objc2 0.6.4", + "bitflags 2.13.2", + "block2", + "objc2", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation 0.3.2", + "objc2-foundation", ] [[package]] @@ -8003,6 +7993,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e5a6c098c7a3b6547378093f5cc30bc54fd361ce711e05293a5cc589562739b" +dependencies = [ + "memchr", +] + [[package]] name = "oid-registry" version = "0.7.1" @@ -8014,9 +8013,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" dependencies = [ "critical-section", "portable-atomic", @@ -8024,35 +8023,28 @@ dependencies = [ [[package]] name = "once_cell_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "open" -version = "5.3.2" +version = "5.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" +checksum = "aa576c76302b7b808eecc68061e67336c47833ef9d22caa74dda10fa9675eebc" dependencies = [ "dunce", "is-wsl", "libc", - "pathdiff", ] [[package]] name = "openssl" -version = "0.10.80" +version = "0.10.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45fa2aa886c42762255da344f0a0d313e254066c46aad76f300c3d3da62d967" +checksum = "77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "cfg-if", "foreign-types 0.3.2", "libc", @@ -8068,7 +8060,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -8077,11 +8069,17 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + [[package]] name = "openssl-sys" -version = "0.9.116" +version = "0.9.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4" +checksum = "b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695" dependencies = [ "cc", "libc", @@ -8099,7 +8097,21 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.17", + "thiserror 2.0.21", + "tracing", +] + +[[package]] +name = "opentelemetry" +version = "0.33.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f1a6ac9c875a4941e4c7c085b61e8f4daa326de03b4701768c3491a6ad9ee" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "pin-project-lite", + "thiserror 2.0.21", "tracing", ] @@ -8109,7 +8121,7 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e68f63eca5fad47e570e00e893094fc17be959c80c79a7d6ec1abdd5ae6ffc16" dependencies = [ - "opentelemetry", + "opentelemetry 0.30.0", "tracing", "tracing-core", "tracing-log", @@ -8125,9 +8137,9 @@ checksum = "50f6639e842a97dbea8886e3439710ae463120091e2e064518ba8e716e6ac36d" dependencies = [ "async-trait", "bytes", - "http 1.3.1", - "opentelemetry", - "reqwest 0.12.24", + "http 1.5.0", + "opentelemetry 0.30.0", + "reqwest 0.12.28", ] [[package]] @@ -8136,14 +8148,14 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbee664a43e07615731afc539ca60c6d9f1a9425e25ca09c57bc36c87c55852b" dependencies = [ - "http 1.3.1", - "opentelemetry", + "http 1.5.0", + "opentelemetry 0.30.0", "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", "prost 0.13.5", - "reqwest 0.12.24", - "thiserror 2.0.17", + "reqwest 0.12.28", + "thiserror 2.0.21", "tokio", "tonic 0.13.1", "tracing", @@ -8155,7 +8167,7 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e046fd7660710fe5a05e8748e70d9058dc15c94ba914e7c4faa7c728f0e8ddc" dependencies = [ - "opentelemetry", + "opentelemetry 0.30.0", "opentelemetry_sdk", "prost 0.13.5", "tonic 0.13.1", @@ -8174,7 +8186,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "562407eb254fea88076c8a410a733a8ee2075fd9c7fbde3da2a03d29e2cef104" dependencies = [ "anyhow", - "opentelemetry", + "opentelemetry 0.30.0", "opentelemetry-appender-tracing", "opentelemetry-otlp", "opentelemetry-semantic-conventions", @@ -8198,11 +8210,11 @@ dependencies = [ "futures-channel", "futures-executor", "futures-util", - "opentelemetry", + "opentelemetry 0.30.0", "percent-encoding", - "rand 0.9.2", + "rand 0.9.5", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "tokio-stream", ] @@ -8235,14 +8247,18 @@ dependencies = [ [[package]] name = "os_info" -version = "3.12.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0e1ac5fde8d43c34139135df8ea9ee9465394b2d8d20f032d38998f64afffc3" +checksum = "9cf20a545b305cf1da722b236b5155c9bb35f1d5ceb28c048bd96ca842f41b5b" dependencies = [ + "android_system_properties", "log", - "plist", + "nix", + "objc2", + "objc2-foundation", + "objc2-ui-kit", "serde", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -8251,12 +8267,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "732c71caeaa72c065bb69d7ea08717bd3f4863a4f451402fc9513e29dbd5261b" dependencies = [ - "objc2 0.6.4", - "objc2-foundation 0.3.2", + "objc2", + "objc2-foundation", "objc2-osa-kit", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] @@ -8267,20 +8283,21 @@ checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" [[package]] name = "owo-colors" -version = "4.2.3" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" +checksum = "13c45bb4a6ae1280ec0803b1ef9d3455eb50f01efbbe1447ab020f1d54fba9d8" [[package]] name = "p256" -version = "0.13.2" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +checksum = "d2c9239b2dbc807adbbe147e8cf72ea7450c3a0aabe62cb8e75ff4ec22e1f72a" dependencies = [ "ecdsa", "elliptic-curve", + "primefield", "primeorder", - "sha2", + "sha2 0.11.1", ] [[package]] @@ -8332,7 +8349,7 @@ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.18", "smallvec", "windows-link 0.2.1", ] @@ -8359,24 +8376,17 @@ dependencies = [ "regex", "regex-syntax", "structmeta", - "syn 2.0.106", + "syn 2.0.119", ] -[[package]] -name = "parse-size" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487f2ccd1e17ce8c1bfab3a65c89525af41cfad4c8659021a1e9a2aacd73b89b" - [[package]] name = "password-hash" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +checksum = "aab41826031698d6ffcd9cff78ef56ef998e39dc7e5067cdfebe373842d4723b" dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", + "getrandom 0.4.3", + "phc", ] [[package]] @@ -8401,10 +8411,10 @@ checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" name = "path-util" version = "0.0.0" dependencies = [ - "derive_more 2.1.1", - "itertools 0.14.0", + "derive_more", + "itertools 0.15.0", "serde", - "typed-path", + "typed-path 0.13.0", ] [[package]] @@ -8423,39 +8433,29 @@ dependencies = [ ] [[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "phf" -version = "0.8.0" +name = "pem-rfc7468" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +checksum = "a6305423e0e7738146434843d1694d621cce767262b2a86910beab705e4493d9" dependencies = [ - "phf_shared 0.8.0", + "base64ct", ] [[package]] -name = "phf" -version = "0.10.1" +name = "percent-encoding" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" -dependencies = [ - "phf_macros 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", -] +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] -name = "phf" -version = "0.11.3" +name = "phc" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +checksum = "44dc769b75f93afdddd8c7fa12d685292ddeff1e66f7f0f3a234cf1818afe892" dependencies = [ - "phf_macros 0.11.3", - "phf_shared 0.11.3", + "base64ct", + "ctutils", + "getrandom 0.4.3", ] [[package]] @@ -8470,63 +8470,24 @@ dependencies = [ ] [[package]] -name = "phf_codegen" -version = "0.8.0" +name = "phf" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +checksum = "010378780309880b08997fae13be7834dba947d36393bd372f2b1556deb2a2f6" dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", + "phf_macros 0.14.0", + "phf_shared 0.14.0", + "serde", ] [[package]] name = "phf_codegen" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", -] - -[[package]] -name = "phf_codegen" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" -dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", -] - -[[package]] -name = "phf_generator" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" -dependencies = [ - "phf_shared 0.8.0", - "rand 0.7.3", -] - -[[package]] -name = "phf_generator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" -dependencies = [ - "phf_shared 0.10.0", - "rand 0.8.5", -] - -[[package]] -name = "phf_generator" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" -dependencies = [ - "phf_shared 0.11.3", - "rand 0.8.5", + "phf_generator 0.13.1", + "phf_shared 0.13.1", ] [[package]] @@ -8535,35 +8496,18 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ - "fastrand 2.3.0", + "fastrand 2.5.0", "phf_shared 0.13.1", ] [[package]] -name = "phf_macros" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "phf_macros" -version = "0.11.3" +name = "phf_generator" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +checksum = "aeb62e0959d5a1bebc965f4d15d9e2b7cea002b6b0f5ba8cde6cc26738467100" dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", - "proc-macro2", - "quote", - "syn 2.0.106", + "fastrand 2.5.0", + "phf_shared 0.14.0", ] [[package]] @@ -8576,85 +8520,80 @@ dependencies = [ "phf_shared 0.13.1", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] -name = "phf_shared" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" -dependencies = [ - "siphasher 0.3.11", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" +name = "phf_macros" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +checksum = "5fa8d0ca26d424d27630da600c6624696e7dec8bf7b3b492b383c5dc49e5e085" dependencies = [ - "siphasher 0.3.11", + "phf_generator 0.14.0", + "phf_shared 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.119", ] [[package]] name = "phf_shared" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ - "siphasher 1.0.1", + "siphasher", ] [[package]] name = "phf_shared" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +checksum = "c6fd9027e2d9319be6349febd1db4e8d02aa544921200c9b777720ac34a3aa89" dependencies = [ - "siphasher 1.0.1", + "siphasher", ] [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +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 = "piper" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" dependencies = [ "atomic-waker", - "fastrand 2.3.0", + "fastrand 2.5.0", "futures-io", ] @@ -8664,9 +8603,9 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" dependencies = [ - "der", - "pkcs8", - "spki", + "der 0.7.10", + "pkcs8 0.10.2", + "spki 0.7.3", ] [[package]] @@ -8675,25 +8614,41 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der", - "spki", + "der 0.7.10", + "spki 0.7.3", +] + +[[package]] +name = "pkcs8" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451913da69c775a56034ea8d9003d27ee8948e12443eae7c038ba100a4f21cb7" +dependencies = [ + "der 0.8.2", + "spki 0.8.1", ] [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "plain" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "plist" -version = "1.8.0" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" +checksum = "65dca778f41c79ebbe8b2b2139fee86f01b766b67130d108c7c2b8ffbd949f77" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", "indexmap 2.14.2", - "quick-xml 0.38.3", + "quick-xml 0.42.0", "serde", "time", ] @@ -8708,20 +8663,20 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] name = "png" -version = "0.18.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] @@ -8732,29 +8687,37 @@ checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.5.2", + "hermit-abi 0.5.3", "pin-project-lite", - "rustix 1.1.2", + "rustix 1.1.5", "windows-sys 0.61.2", ] [[package]] name = "polyval" -version = "0.6.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +checksum = "f0fa31d631f2b2cb2a544d0aa321ce847a94764d701ca2becc411138b93d49cd" dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "opaque-debug", + "cpubits", + "cpufeatures 0.3.1", "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.11.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "portable-atomic-util" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715" +dependencies = [ + "portable-atomic", +] [[package]] name = "postcard" @@ -8770,9 +8733,9 @@ dependencies = [ [[package]] name = "postcard-bindgen" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e709af61573ae2563a00e760ff7db47f5c70b9d96c6dcb28993526fb8479f68" +checksum = "c960ab4b05d2d919576ea268baebafa5966cbeb4501370496ca82da00b4e34ed" dependencies = [ "postcard-bindgen-core", "postcard-bindgen-derive", @@ -8780,22 +8743,22 @@ dependencies = [ [[package]] name = "postcard-bindgen-core" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f19cebcb145fdccb24b63ad410785aa7c2ff9364551646ca7a927422d2d0386" +checksum = "2e3f0f4460501bc08901919407ba9190a95a6b5da0c85a52870175a5603007a0" dependencies = [ - "convert_case 0.11.0", + "convert_case 0.12.0", "genco", "tree-ds", ] [[package]] name = "postcard-bindgen-derive" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0372f55dd7c15d73f7b0f7ca507ac3db5653f346b2b44a36537e2ad39f55441b" +checksum = "ba450668ffec693c2eea46b8bf931c3d44ed976d99dc5d9eeb550f2fc81311af" dependencies = [ - "convert_case 0.11.0", + "convert_case 0.12.0", "genco", "postcard-bindgen-core", "proc-macro2", @@ -8804,29 +8767,29 @@ dependencies = [ "regex-macro", "serde", "serde_derive_internals 0.30.0", - "syn 3.0.3", + "syn 3.0.9", ] [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" dependencies = [ "zerovec", ] [[package]] name = "powerfmt" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +checksum = "4a6394b9e965e73d0a289ee54f589087e2c676aedf60885baf52c76b771e4958" [[package]] name = "pprof_util" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9aba4251d95ac86f14c33e688d57a9344bfcff29e9b0c5a063fc66b5facc8a1" +checksum = "eea0cc524de808a6d98d192a3d99fe95617031ad4a52ec0a0f987ef4432e8fe1" dependencies = [ "anyhow", "backtrace", @@ -8834,7 +8797,7 @@ dependencies = [ "inferno", "num", "paste", - "prost 0.13.5", + "prost 0.14.4", ] [[package]] @@ -8852,37 +8815,52 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +[[package]] +name = "prefix-trie" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cf6e3177f0684016a5c209b00882e15f8bdd3f3bb48f0491df10cd102d0c6e7" +dependencies = [ + "either", + "ipnet", + "num-traits", +] + [[package]] name = "prettyplease" -version = "0.2.37" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +checksum = "2bfe0f4c752e450fc2faf62654f1c134747922825d5b04ca717b8874f41a40c0" dependencies = [ "proc-macro2", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] -name = "prettytable-rs" -version = "0.10.0" +name = "primefield" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a" +checksum = "c555a6e4eb7d4e158fcb028c835c3b8642206ddc279b5c6b202ef9a8bdb592f4" dependencies = [ - "csv", - "encode_unicode", - "is-terminal", - "lazy_static", - "term", - "unicode-width 0.1.14", + "crypto-bigint", + "crypto-common 0.2.2", + "ff", + "rand_core 0.10.1", + "subtle", + "zeroize", ] [[package]] name = "primeorder" -version = "0.13.6" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +checksum = "5c9f42978c78a00e3d68f69fc03e57a234debae69da4020a4fb588fcdcd07b06" dependencies = [ "elliptic-curve", + "once_cell", + "primefield", + "serdect", + "wnaf", ] [[package]] @@ -8907,11 +8885,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.23.7", + "toml_edit 0.25.17+spec-1.1.0", ] [[package]] @@ -8939,38 +8917,32 @@ dependencies = [ ] [[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" +name = "proc-macro-error-attr3" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +checksum = "9e564d14133360e1ae169ffde5da25881b5fa47261665b8e5713c212c27799da" dependencies = [ "proc-macro2", "quote", ] [[package]] -name = "proc-macro-error2" -version = "2.0.1" +name = "proc-macro-error3" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +checksum = "8f0d4471b3436c22106b21913b1dda531558918ae9b7ec55d58aa84b43552233" dependencies = [ - "proc-macro-error-attr2", + "proc-macro-error-attr3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] @@ -8981,7 +8953,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "hex", "procfs-core", "rustix 0.38.44", @@ -8993,27 +8965,27 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "hex", ] [[package]] name = "profiling" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" +checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5" dependencies = [ "profiling-procmacros", ] [[package]] name = "profiling-procmacros" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" +checksum = "4488a4a36b9a4ba6b9334a32a39971f77c1436ec82c38707bce707699cc3bbcb" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -9030,7 +9002,7 @@ dependencies = [ "parking_lot", "procfs", "protobuf", - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] @@ -9045,12 +9017,12 @@ dependencies = [ [[package]] name = "prost" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" +checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" dependencies = [ "bytes", - "prost-derive 0.14.3", + "prost-derive 0.14.4", ] [[package]] @@ -9063,29 +9035,29 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "prost-derive" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" +checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" dependencies = [ "anyhow", "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "prost-types" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" +checksum = "f94967dc7688f3054c7fac87473ffae4cc4c3904800e2d9f5b857246d8963b0a" dependencies = [ - "prost 0.14.3", + "prost 0.14.4", ] [[package]] @@ -9110,9 +9082,9 @@ dependencies = [ [[package]] name = "psl" -version = "2.1.226" +version = "2.1.243" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc88482eea924ca3a2f56a547454169af58deef35567965eb4fc2392a834841" +checksum = "6600966e937eeb6e279d7d5a35b9c61ca720f4a5ab6c950a3b921ca4881e0054" dependencies = [ "psl-types", ] @@ -9125,33 +9097,14 @@ checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" [[package]] name = "psm" -version = "0.1.27" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e66fcd288453b748497d8fb18bccc83a16b0518e3906d4b8df0a8d42d93dbb1c" +checksum = "4dcd034599e63b970727f70d79e02d62390a4a84f7c6b827c27c46d5ac3fa622" dependencies = [ + "ar_archive_writer", "cc", ] -[[package]] -name = "ptr_meta" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "publicsuffix" version = "2.3.0" @@ -9168,20 +9121,40 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "memchr", "unicase", ] [[package]] -name = "pxfm" -version = "0.1.25" +name = "pulp" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3cbdf373972bf78df4d3b518d07003938e2c7d1fb5891e55f9cb6df57009d84" +checksum = "046aa45b989642ec2e4717c8e72d677b13edd831a4d3b6cf37d9a3e54912496a" dependencies = [ - "num-traits", + "bytemuck", + "cfg-if", + "libm", + "num-complex", + "paste", + "pulp-wasm-simd-flag", + "raw-cpuid", + "reborrow", + "version_check", ] +[[package]] +name = "pulp-wasm-simd-flag" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8f70e07b9c3962945a74e59ca1c511bba65b6419468acc217c457d93f3c740" + +[[package]] +name = "pxfm" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea" + [[package]] name = "qoi" version = "0.4.1" @@ -9239,39 +9212,39 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" -version = "0.37.5" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" dependencies = [ "memchr", + "serde", ] [[package]] name = "quick-xml" -version = "0.38.3" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" +checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b" dependencies = [ "memchr", - "serde", "tokio", ] [[package]] name = "quinn" -version = "0.11.9" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +checksum = "4051e23e9185c255a7e33ef59cdbca87a22d359052eecd22fc6b901fb37d9d11" dependencies = [ "bytes", "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.1.1", - "rustls 0.23.32", + "rustc-hash 2.1.3", + "rustls 0.23.46", "socket2 0.6.5", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "tracing", "web-time", @@ -9279,21 +9252,22 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe" dependencies = [ "aws-lc-rs", "bytes", - "getrandom 0.3.3", + "getrandom 0.4.3", "lru-slab", - "rand 0.9.2", + "rand 0.10.3", + "rand_pcg", "ring", - "rustc-hash 2.1.1", - "rustls 0.23.32", + "rustc-hash 2.1.3", + "rustls 0.23.46", "rustls-pki-types", "slab", - "thiserror 2.0.17", + "thiserror 2.0.21", "tinyvec", "tracing", "web-time", @@ -9301,32 +9275,32 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.14" +version = "0.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +checksum = "af66907df18639dcf4db56ca65490cabc4b27a97dbadd96f2926cca73298f016" dependencies = [ "cfg_aliases", "libc", "once_cell", "socket2 0.6.5", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] [[package]] name = "quoted_printable" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "640c9bd8497b02465aeef5375144c26062e0dcd5939dfcbb0f5db76cb8c17c73" +checksum = "478e0585659a122aa407eb7e3c0e1fa51b1d8a870038bd29f0cf4a8551eea972" [[package]] name = "r-efi" @@ -9351,12 +9325,6 @@ dependencies = [ "scheduled-thread-pool", ] -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - [[package]] name = "rand" version = "0.7.3" @@ -9368,14 +9336,13 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc", - "rand_pcg", ] [[package]] name = "rand" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -9384,22 +9351,22 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] name = "rand" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af" dependencies = [ "chacha20", - "getrandom 0.4.2", + "getrandom 0.4.3", "rand_core 0.10.1", ] @@ -9430,7 +9397,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_chacha" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e6af7f3e25ded52c41df4e0b1af2d047e45896c2f3281792ed68a1c243daedb" +dependencies = [ + "ppv-lite86", + "rand_core 0.10.1", ] [[package]] @@ -9448,16 +9425,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", ] [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", ] [[package]] @@ -9477,28 +9454,30 @@ dependencies = [ [[package]] name = "rand_pcg" -version = "0.2.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" dependencies = [ - "rand_core 0.5.1", + "rand_core 0.10.1", ] [[package]] name = "rav1e" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" +checksum = "43b6dd56e85d9483277cde964fd1bdb0428de4fec5ebba7540995639a21cb32b" dependencies = [ + "aligned-vec", "arbitrary", "arg_enum_proc_macro", "arrayvec", + "av-scenechange", "av1-grain", "bitstream-io", "built", "cfg-if", "interpolate_name", - "itertools 0.12.1", + "itertools 0.14.0", "libc", "libfuzzer-sys", "log", @@ -9507,23 +9486,21 @@ dependencies = [ "noop_proc_macro", "num-derive", "num-traits", - "once_cell", "paste", "profiling", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand 0.9.5", + "rand_chacha 0.9.0", "simd_helpers", - "system-deps", - "thiserror 1.0.69", + "thiserror 2.0.21", "v_frame", "wasm-bindgen", ] [[package]] name = "ravif" -version = "0.11.20" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5825c26fddd16ab9f515930d49028a630efec172e903483c94796cfe31893e6b" +checksum = "e52310197d971b0f5be7fe6b57530dcd27beb35c1b013f29d66c1ad73fbbcc45" dependencies = [ "avif-serialize", "imgref", @@ -9540,7 +9517,7 @@ version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", ] [[package]] @@ -9551,9 +9528,9 @@ checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -9571,9 +9548,9 @@ dependencies = [ [[package]] name = "rdkafka" -version = "0.36.2" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1beea247b9a7600a81d4cc33f659ce1a77e1988323d7d2809c7ed1c21f4c316d" +checksum = "d7956f9ac12b5712e50372d9749a3102f4810a8d42481c5eae3748d36d585bcf" dependencies = [ "futures-channel", "futures-util", @@ -9600,27 +9577,34 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "reborrow" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430" + [[package]] name = "redis" -version = "1.4.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0b9503711b03773e43b31668c7b5bd279ee7cd9b7d18cff7c23a42cc1d08e5a" +checksum = "ed5b98ae99461e02895c3a96a25dbe4d852a3d5e5b815d31d5d9e4b5344d99e9" dependencies = [ - "ahash 0.8.12", + "ahash", "arcstr", "async-lock", "bytes", "cfg-if", "combine", "crc16", + "futures-channel", "futures-util", "itoa", "log", - "num-bigint", + "num-bigint 0.5.1", "percent-encoding", "pin-project-lite", "r2d2", - "rand 0.10.1", + "rand 0.10.3", "ryu", "sha1_smol", "socket2 0.6.5", @@ -9636,56 +9620,53 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", ] [[package]] -name = "redox_users" -version = "0.4.6" +name = "redox_syscall" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +checksum = "580c875845b41ecb1564ad1ae4703044cef774145e3d7a94dc2b3fa7c97868fd" dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 1.0.69", + "bitflags 2.13.2", ] [[package]] name = "redox_users" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +checksum = "60dc65c0ff1a7ae1294b0c67b9f14baf70b644404010370171787bfac1038fc0" dependencies = [ - "getrandom 0.2.16", "libredox", - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] name = "ref-cast" -version = "1.0.25" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +checksum = "7e440fb4e4b4147295338efb76001ab9e4efc0e5839df2c47fc5ac2381d365c3" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.25" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] name = "regex" -version = "1.12.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", "memchr", @@ -9695,9 +9676,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -9706,9 +9687,9 @@ dependencies = [ [[package]] name = "regex-lite" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d942b98df5e658f56f20d592c7f868833fe38115e65c33003d8cd224b0155da" +checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" [[package]] name = "regex-macro" @@ -9721,9 +9702,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "relative-path" @@ -9732,61 +9713,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] -name = "rend" -version = "0.4.2" +name = "reqwest" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ - "bytecheck", -] - -[[package]] -name = "replace_with" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51743d3e274e2b18df81c4dc6caf8a5b8e15dbe799e0dca05c7617380094e884" - -[[package]] -name = "reqwest" -version = "0.12.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" -dependencies = [ - "async-compression", "base64 0.22.1", "bytes", - "cookie 0.18.1", + "cookie 0.18.2", "cookie_store", "encoding_rs", "futures-channel", "futures-core", "futures-util", - "h2 0.4.12", - "http 1.3.1", - "http-body 1.0.1", + "h2 0.4.20", + "http 1.5.0", + "http-body 1.1.0", "http-body-util", - "hyper 1.7.0", - "hyper-rustls 0.27.7", - "hyper-tls", + "hyper 1.12.0", + "hyper-rustls 0.27.10", "hyper-util", "js-sys", "log", "mime", - "mime_guess", - "native-tls", "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.32", - "rustls-native-certs 0.8.1", + "rustls 0.23.46", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", "tokio", - "tokio-native-tls", - "tokio-rustls 0.26.4", + "tokio-rustls 0.26.6", "tokio-util", "tower", "tower-http", @@ -9796,38 +9756,43 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams 0.4.2", "web-sys", - "webpki-roots 1.0.3", + "webpki-roots 1.0.10", ] [[package]] name = "reqwest" -version = "0.13.2" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +checksum = "16a1cfa75cc186dd73d5818e510e042e40927bccc9c236b061cea97e1eb08029" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", "bytes", + "encoding_rs", + "futures-channel", "futures-core", "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "h2 0.4.20", + "http 1.5.0", + "http-body 1.1.0", "http-body-util", - "hyper 1.7.0", - "hyper-rustls 0.27.7", + "hyper 1.12.0", + "hyper-rustls 0.27.10", "hyper-util", "js-sys", "log", + "mime", + "mime_guess", "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.32", + "rustls 0.23.46", "rustls-pki-types", "rustls-platform-verifier", "serde", "serde_json", "sync_wrapper", "tokio", - "tokio-rustls 0.26.4", + "tokio-rustls 0.26.6", "tokio-util", "tower", "tower-http", @@ -9841,9 +9806,9 @@ dependencies = [ [[package]] name = "resolv-conf" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" +checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" [[package]] name = "result" @@ -9853,44 +9818,43 @@ checksum = "194d8e591e405d1eecf28819740abed6d719d1a2db87fc0bcdedee9a26d55560" [[package]] name = "rfc6979" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +checksum = "b4a459cddafb3fe76b31fd8f1108007566c40301feb64dc7b54656eb7388172b" dependencies = [ - "hmac", - "subtle", + "crypto-bigint", + "hmac 0.13.0", ] [[package]] name = "rfd" -version = "0.15.4" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2bee61e6cffa4635c72d7d81a84294e28f0930db0ddcb0f66d10244674ebed" +checksum = "a15ad77d9e70a92437d8f74c35d99b4e4691128df018833e99f90bcd36152672" dependencies = [ - "ashpd", - "block2 0.6.2", + "block2", "dispatch2", "glib-sys", "gobject-sys", "gtk-sys", "js-sys", "log", - "objc2 0.6.4", + "objc2", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation 0.3.2", + "objc2-foundation", "raw-window-handle", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "rgb" -version = "0.8.52" +version = "0.8.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" +checksum = "47b34b781b31e5d73e9fbc8689c70551fd1ade9a19e3e28cfec8580a79290cc4" dependencies = [ "bytemuck", ] @@ -9903,46 +9867,17 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.17", "libc", "untrusted", "windows-sys 0.52.0", ] -[[package]] -name = "rkyv" -version = "0.7.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" -dependencies = [ - "bitvec", - "bytecheck", - "bytes", - "hashbrown 0.12.3", - "ptr_meta", - "rend", - "rkyv_derive", - "seahash", - "tinyvec", - "uuid 1.23.3", -] - -[[package]] -name = "rkyv_derive" -version = "0.7.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "rsa" -version = "0.9.8" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" dependencies = [ "const-oid 0.9.6", "digest 0.10.7", @@ -9950,19 +9885,19 @@ dependencies = [ "num-integer", "num-traits", "pkcs1", - "pkcs8", + "pkcs8 0.10.2", "rand_core 0.6.4", - "signature", - "spki", + "signature 2.2.0", + "spki 0.7.3", "subtle", "zeroize", ] [[package]] name = "rust-embed" -version = "8.11.0" +version = "8.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04113cb9355a377d83f06ef1f0a45b8ab8cd7d8b1288160717d66df5c7988d27" +checksum = "19afa5b4b6a611de00bd1bdae6ae6f39084c9399f0679c3f52d8469cf335cc23" dependencies = [ "rust-embed-impl", "rust-embed-utils", @@ -9971,24 +9906,25 @@ dependencies = [ [[package]] name = "rust-embed-impl" -version = "8.11.0" +version = "8.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0902e4c7c8e997159ab384e6d0fc91c221375f6894346ae107f47dd0f3ccaa" +checksum = "e0d8afda6374eac59e066abee06d265247ebbaf3006cf878e2879e8356e34053" dependencies = [ + "mime_guess", "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.106", + "syn 2.0.119", "walkdir", ] [[package]] name = "rust-embed-utils" -version = "8.11.0" +version = "8.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1" +checksum = "0d84e8ba78bd384263e5922f084cbe1b081c3b7e69add59c8fb097b879ba968a" dependencies = [ - "sha2", + "sha2 0.11.1", "walkdir", ] @@ -10004,9 +9940,9 @@ dependencies = [ [[package]] name = "rust-s3" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f9b973bd4097f5bb47e5827dcb9fb5dc17e93879e46badc27d2a4e9a4e5588" +checksum = "15d4ed794cdfede6c59f81d485cae6bb63f47a7e35d190148d40754f783073c4" dependencies = [ "async-trait", "aws-creds", @@ -10016,21 +9952,21 @@ dependencies = [ "cfg-if", "futures-util", "hex", - "hmac", - "http 1.3.1", + "hmac 0.12.1", + "http 1.5.0", "log", "maybe-async", "md5", "minidom", "percent-encoding", - "quick-xml 0.38.3", - "reqwest 0.12.24", + "quick-xml 0.41.0", + "reqwest 0.12.28", "serde", "serde_derive", "serde_json", - "sha2", - "sysinfo", - "thiserror 2.0.17", + "sha2 0.10.9", + "sysinfo 0.37.2", + "thiserror 2.0.21", "time", "tokio", "tokio-stream", @@ -10039,48 +9975,48 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.39.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35affe401787a9bd846712274d97654355d21b2a2c092a3139aabe31e9022282" +checksum = "7653272e75dcac41dc199fbea6f5797633994fafd339943c06c9af16bf29cd3a" dependencies = [ "arrayvec", "borsh", "bytes", "num-traits", - "rand 0.8.5", - "rkyv", + "rand 0.8.8", + "rand 0.9.5", "rust_decimal_macros", "serde", "serde_json", + "wasm-bindgen", ] [[package]] name = "rust_decimal_macros" -version = "1.39.0" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8c0cb48f413ebe24dc2d148788e0efbe09ba3e011d9277162f2eaf8e1069a3" +checksum = "74a5a6f027e892c7a035c6fddb50435a1fbf5a734ffc0c2a9fed4d0221440519" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "rust_iso3166" -version = "0.1.14" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0d3a0089ee08071ea1baaba83f2265c97f7646c53c3f92b205eb2cdaab72b1" +checksum = "14527538ee75e1937267e5d9c9808bce0680e6051d4ee05eb9efca77e6ee801a" dependencies = [ "js-sys", - "phf 0.11.3", - "prettytable-rs", + "phf 0.14.0", "wasm-bindgen", ] [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" [[package]] name = "rustc-hash" @@ -10090,9 +10026,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" [[package]] name = "rustc_version" @@ -10118,7 +10054,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "errno", "libc", "linux-raw-sys 0.4.15", @@ -10127,14 +10063,14 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.2" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "errno", "libc", - "linux-raw-sys 0.11.0", + "linux-raw-sys 0.12.1", "windows-sys 0.61.2", ] @@ -10152,16 +10088,16 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.32" +version = "0.23.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40" +checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf" dependencies = [ "aws-lc-rs", "log", "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.7", + "rustls-webpki 0.103.16", "subtle", "zeroize", ] @@ -10172,7 +10108,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ - "openssl-probe", + "openssl-probe 0.1.6", "rustls-pemfile 1.0.4", "schannel", "security-framework 2.11.1", @@ -10180,14 +10116,14 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.1" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +checksum = "4a073f5dc7469f984c52ad2752b63b0807745133b6de880b7b64c1ac4c48aec4" dependencies = [ - "openssl-probe", + "openssl-probe 0.2.1", "rustls-pki-types", "schannel", - "security-framework 3.5.1", + "security-framework 3.7.0", ] [[package]] @@ -10210,9 +10146,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.12.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96" dependencies = [ "web-time", "zeroize", @@ -10220,20 +10156,20 @@ dependencies = [ [[package]] name = "rustls-platform-verifier" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" +checksum = "1167586491e2b18b8bfbb293e8180ec17c201c4f076d7cb3070ca964e7598f98" dependencies = [ "core-foundation 0.10.1", "core-foundation-sys", - "jni", + "jni 0.22.4", "log", "once_cell", - "rustls 0.23.32", - "rustls-native-certs 0.8.1", + "rustls 0.23.46", + "rustls-native-certs 0.8.5", "rustls-platform-verifier-android", - "rustls-webpki 0.103.7", - "security-framework 3.5.1", + "rustls-webpki 0.103.16", + "security-framework 3.7.0", "security-framework-sys", "webpki-root-certs", "windows-sys 0.61.2", @@ -10241,9 +10177,9 @@ dependencies = [ [[package]] name = "rustls-platform-verifier-android" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" +checksum = "eec689c0bc40ff2458a5977b6619cb718087084a18e02a131c599b62d05e1a5f" [[package]] name = "rustls-webpki" @@ -10257,9 +10193,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.7" +version = "0.103.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10b3f4191e8a80e6b43eebabfac91e5dcecebb27a71f04e820c47ec41d314bf" +checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281" dependencies = [ "aws-lc-rs", "ring", @@ -10285,18 +10221,18 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "rusty-money" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b28f881005eac7ad8d46b6f075da5f322bd7f4f83a38720fc069694ddadd683" +checksum = "e9826983e8a9a2f301a3810bb98618948ae7e7f2ba073eaaa16ab19104b33f2c" dependencies = [ + "arrayvec", "rust_decimal", - "rust_decimal_macros", ] [[package]] @@ -10320,9 +10256,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "same-file" @@ -10335,9 +10271,9 @@ dependencies = [ [[package]] name = "scalar_api_reference" -version = "0.2.2" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d67c85edd56c41f364603eff688a330f01dee99bdfc84c005d3bc3d0721d6b2" +checksum = "5fcdcd8a5d9907a084cdb9d3960aeed1120e9f826c6f8c82933624f8b7b5e7bb" dependencies = [ "actix-web", "rust-embed", @@ -10345,20 +10281,11 @@ dependencies = [ "serde_json", ] -[[package]] -name = "scc" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" -dependencies = [ - "sdd", -] - [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "9cb23c424d8ee841bb4d813677ca237e2a610067d594fec130f87d6093495ab5" dependencies = [ "windows-sys 0.61.2", ] @@ -10384,7 +10311,7 @@ dependencies = [ "serde", "serde_json", "url", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] @@ -10401,9 +10328,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.0.4" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +checksum = "ab508826f74a77ca9d5aba6ff19b522583ee3eaf28a19384ff3d0e5835fadf6e" dependencies = [ "dyn-clone", "ref-cast", @@ -10420,15 +10347,9 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals 0.29.1", - "syn 2.0.106", + "syn 2.0.119", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" @@ -10445,39 +10366,16 @@ dependencies = [ "untrusted", ] -[[package]] -name = "sdd" -version = "3.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" - -[[package]] -name = "seahash" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" - -[[package]] -name = "sealed" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22f968c5ea23d555e670b449c1c5e7b2fc399fdaec1d304a17cd48e288abc107" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "sec1" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +checksum = "d56d437c2f19203ce5f7122e507831de96f3d2d4d3be5af44a0b0a09d8a80e4d" dependencies = [ "base16ct", - "der", - "generic-array", - "pkcs8", + "ctutils", + "der 0.8.2", + "hybrid-array", "subtle", "zeroize", ] @@ -10497,7 +10395,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -10506,11 +10404,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.5.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -10519,48 +10417,30 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", ] -[[package]] -name = "selectors" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" -dependencies = [ - "bitflags 1.3.2", - "cssparser 0.29.6", - "derive_more 0.99.20", - "fxhash", - "log", - "phf 0.8.0", - "phf_codegen 0.8.0", - "precomputed-hash", - "servo_arc 0.2.0", - "smallvec", -] - [[package]] name = "selectors" version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8adfa1c298912827b8a28b223b3b874357397ae706e6190acd9bf28cee99114d" dependencies = [ - "bitflags 2.9.4", - "cssparser 0.37.0", - "derive_more 2.1.1", + "bitflags 2.13.2", + "cssparser", + "derive_more", "log", "new_debug_unreachable", "phf 0.13.1", - "phf_codegen 0.13.1", + "phf_codegen", "precomputed-hash", - "rustc-hash 2.1.1", - "servo_arc 0.4.3", + "rustc-hash 2.1.3", + "servo_arc", "smallvec", ] @@ -10576,13 +10456,14 @@ dependencies = [ [[package]] name = "sentry" -version = "0.45.0" +version = "0.49.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48b85e25e8a1fc13928885e8bf13abe8a09e15c46993aed05d6405f7755d6e20" +checksum = "9fa951f4e644464ebfd2347a7ab03b0828c512d2448a76262cad2607b343dff4" dependencies = [ + "cfg_aliases", "httpdate", - "reqwest 0.12.24", - "rustls 0.23.32", + "reqwest 0.13.5", + "rustls 0.23.46", "sentry-backtrace", "sentry-contexts", "sentry-core", @@ -10595,9 +10476,9 @@ dependencies = [ [[package]] name = "sentry-backtrace" -version = "0.45.0" +version = "0.49.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3253a495ab536f6de1746a58d5d7824b77d75e08e1a4b8ca6fb356839077ae0" +checksum = "f4f27cf048aa63ccd5bc94c29989133eabb82e9c6bf7441b58e9d4a95837a105" dependencies = [ "backtrace", "regex", @@ -10606,9 +10487,9 @@ dependencies = [ [[package]] name = "sentry-contexts" -version = "0.45.0" +version = "0.49.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "027f81a728836e66b88c07666a10f5ed5a35e2695b04eb7aa0fcbed93f814900" +checksum = "c5ed680585dbdacdf9859c2b4dc53358ff02bd256766882e22e343836db36b22" dependencies = [ "hostname", "libc", @@ -10620,11 +10501,11 @@ dependencies = [ [[package]] name = "sentry-core" -version = "0.45.0" +version = "0.49.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b6729c8e71ac968edbe9bf2dd4109c162e552b52bacd2b07e24ede1aba84a5" +checksum = "c3ed398494bb8fc412a11a182c1883a10ae147587b8f6314abd222d1d626f31b" dependencies = [ - "rand 0.9.2", + "rand 0.10.3", "sentry-types", "serde", "serde_json", @@ -10633,9 +10514,9 @@ dependencies = [ [[package]] name = "sentry-debug-images" -version = "0.45.0" +version = "0.49.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc85b59c1dfb19912bfba1af73a592e2e5548cae241a79ecb805afab3333d04c" +checksum = "55854bb40681e84ffd2a69578ad4ef9bfaf5bf2bf1380a745578b591fa24af22" dependencies = [ "findshlibs", "sentry-core", @@ -10643,9 +10524,9 @@ dependencies = [ [[package]] name = "sentry-panic" -version = "0.45.0" +version = "0.49.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac0471f04f8f97af0c17eeca2c516e23faa1c0271a55bc64371d9ce488c2d40" +checksum = "b7153e68642b761ed3aa62c022795c11b2facc728b2db7484084492373c944f9" dependencies = [ "sentry-backtrace", "sentry-core", @@ -10653,11 +10534,11 @@ dependencies = [ [[package]] name = "sentry-tracing" -version = "0.45.0" +version = "0.49.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428f780866a613142dcc81b7f8551ae4d1c056f4df22b6d7ddd9154a9974eb03" +checksum = "e7e7db1aefdf623f4e48e21ec9e4af535024187aeafb2a4cc7e29d035def5a13" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "sentry-backtrace", "sentry-core", "tracing-core", @@ -10666,19 +10547,19 @@ dependencies = [ [[package]] name = "sentry-types" -version = "0.45.0" +version = "0.49.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c19d1d1967b55659c358886d0f1aa3076488d445f84c7d727d384c675adaec1" +checksum = "1c18bf7b159bdfc7c8f97816f476b4947a1937fb6bea9d38d3479e58631614ac" dependencies = [ "debugid", "hex", - "rand 0.9.2", + "rand 0.10.3", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.21", "time", "url", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] @@ -10688,14 +10569,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d630b1418311e028ceb45e1e567845501a9d9c770a258b80d2edc025ffad17c" dependencies = [ "lazy_static", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] name = "serde" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -10705,10 +10586,10 @@ dependencies = [ name = "serde-binhum" version = "0.1.0" dependencies = [ - "darling 0.23.0", + "darling 0.24.1", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] @@ -10760,28 +10641,28 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aec2709de9078e077090abd848e967abab63c9fb3fdb5d4799ad359d8d482c" dependencies = [ - "half 2.7.0", + "half 2.7.1", "serde", ] [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] @@ -10792,7 +10673,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -10803,7 +10684,7 @@ checksum = "f852137cce035d6a4df67ccce505ff6b3e9fd3a10e3e52b24dc71e650bb1a9bd" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.9", ] [[package]] @@ -10819,9 +10700,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.150" +version = "1.0.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6" dependencies = [ "itoa", "memchr", @@ -10874,13 +10755,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] @@ -10894,23 +10775,23 @@ 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_tokenstream" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64060d864397305347a78851c51588fd283767e7e7589829e8121d65512340f1" +checksum = "d7c49585c52c01f13c5c2ebb333f14f6885d76daa768d8a037d28017ec538c69" dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -10927,17 +10808,19 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.15.0" +version = "3.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5" +checksum = "df9adc193c780ef8f159aee8b61e2d5801aaa555e6eb0947fe45530ec506296f" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", + "bs58", "chrono", "hex", "indexmap 1.9.3", "indexmap 2.14.2", + "jiff", "schemars 0.9.0", - "schemars 1.0.4", + "schemars 1.2.3", "serde_core", "serde_json", "serde_with_macros", @@ -10946,40 +10829,49 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.15.0" +version = "3.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27" +checksum = "3e17bbc68e28663bbbb90df47e058aa7eda4fb445b89fe70457bb94fbccf6e49" dependencies = [ - "darling 0.21.3", + "darling 0.24.1", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", +] + +[[package]] +name = "serdect" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66cf8fedced2fcf12406bcb34223dffb92eaf34908ede12fed414c82b7f00b3e" +dependencies = [ + "base16ct", + "serde", ] [[package]] name = "serial_test" -version = "3.3.1" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d0b343e184fc3b7bb44dff0705fffcf4b3756ba6aff420dddd8b24ca145e555" +checksum = "699f4197115b8a7e7ff19c9a315a4bd6fffec26cc4626ef45ecaea389e081c6d" dependencies = [ "futures-executor", "futures-util", "log", "once_cell", "parking_lot", - "scc", "serial_test_derive", ] [[package]] name = "serial_test_derive" -version = "3.3.1" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f50427f258fb77356e4cd4aa0e87e2bd2c66dbcee41dc405282cae2bfc26c83" +checksum = "94e153fc76e1c6a068703d6d29c508a0b15c061c4b7e43da59cc097bc342673c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -11001,17 +10893,7 @@ checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", -] - -[[package]] -name = "servo_arc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" -dependencies = [ - "nodrop", - "stable_deref_trait", + "syn 2.0.119", ] [[package]] @@ -11025,9 +10907,9 @@ dependencies = [ [[package]] name = "sha1" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +checksum = "a978451301f4db1d02937a4ab3ccce137717b81826e79b7d49ffe3244a13c3b8" dependencies = [ "cfg-if", "cpufeatures 0.2.17", @@ -11041,7 +10923,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" dependencies = [ "cfg-if", - "cpufeatures 0.3.0", + "cpufeatures 0.3.1", "digest 0.11.3", ] @@ -11062,6 +10944,17 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha2" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d7069beb7d6ac7b9acd1039986e73443f24234f41074da099d6f994ac9ad19" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + [[package]] name = "sharded-slab" version = "0.1.7" @@ -11071,12 +10964,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - [[package]] name = "shlex" version = "2.0.1" @@ -11085,10 +10972,11 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] @@ -11102,11 +10990,31 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "signature" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d567dcbaf0049cb8ac2608a76cd95ff9e4412e1899d389ee400918ca7537f5" +dependencies = [ + "digest 0.11.3", + "rand_core 0.10.1", +] + [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simd_cesu8" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" +dependencies = [ + "rustc_version", + "simdutf8", +] [[package]] name = "simd_helpers" @@ -11125,21 +11033,15 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "siphasher" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +checksum = "33f4fe9184a62d842c9ef383018f3306d8ba224fd9d836f56d7288308847c256" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "slotmap" @@ -11153,9 +11055,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.1" +version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "5b3dc8af474f516a851ff4bd12db780f948b9250ad37211e4eec0bccea54e01b" dependencies = [ "serde", ] @@ -11202,24 +11104,24 @@ dependencies = [ [[package]] name = "softbuffer" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" dependencies = [ "bytemuck", - "cfg_aliases", - "core-graphics 0.24.0", - "foreign-types 0.5.0", "js-sys", - "log", - "objc2 0.5.2", - "objc2-foundation 0.2.2", - "objc2-quartz-core 0.2.2", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", "raw-window-handle", - "redox_syscall", + "redox_syscall 0.5.18", + "tracing", "wasm-bindgen", "web-sys", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -11250,27 +11152,27 @@ dependencies = [ [[package]] name = "spdx" -version = "0.12.0" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cf87c0efffc158b9dde4d6e0567a43e4383adc4c949e687a2039732db2f23a" +checksum = "646c5a367da914e3babcb9cd8e91c37ccaac42325b8f86f036513ad103f2a716" dependencies = [ "smallvec", ] [[package]] name = "spin" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e" dependencies = [ "lock_api", ] [[package]] name = "spin" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" +checksum = "023a211cb3138dbc438680b32560ad89f699977624c9f8dbb95a47d5b4c07dd3" dependencies = [ "lock_api", ] @@ -11291,7 +11193,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", - "der", + "der 0.7.10", +] + +[[package]] +name = "spki" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef958a98b9d5da290cfc78946e9f3e61e1e62a18db0d92cac0b83cc161491a9" +dependencies = [ + "base64ct", + "der 0.8.2", ] [[package]] @@ -11319,7 +11231,7 @@ dependencies = [ "crc", "crossbeam-queue", "either", - "event-listener 5.4.1", + "event-listener 5.4.2", "futures-core", "futures-intrusive", "futures-io", @@ -11332,17 +11244,17 @@ dependencies = [ "once_cell", "percent-encoding", "rust_decimal", - "rustls 0.23.32", + "rustls 0.23.46", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "tokio-stream", "tracing", "url", - "uuid 1.23.3", + "uuid 1.28.0", "webpki-roots 0.26.11", ] @@ -11356,7 +11268,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -11374,12 +11286,12 @@ dependencies = [ "quote", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "sqlx-core", "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.106", + "syn 2.0.119", "tokio", "url", ] @@ -11392,7 +11304,7 @@ checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" dependencies = [ "atoi", "base64 0.22.1", - "bitflags 2.9.4", + "bitflags 2.13.2", "byteorder", "bytes", "chrono", @@ -11406,27 +11318,27 @@ dependencies = [ "futures-util", "generic-array", "hex", - "hkdf", - "hmac", + "hkdf 0.12.4", + "hmac 0.12.1", "itoa", "log", - "md-5", + "md-5 0.10.6", "memchr", "once_cell", "percent-encoding", - "rand 0.8.5", + "rand 0.8.8", "rsa", "rust_decimal", "serde", - "sha1 0.10.6", - "sha2", + "sha1 0.10.7", + "sha2 0.10.9", "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.17", + "thiserror 2.0.21", "tracing", - "uuid 1.23.3", - "whoami", + "uuid 1.28.0", + "whoami 1.6.1", ] [[package]] @@ -11437,7 +11349,7 @@ checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" dependencies = [ "atoi", "base64 0.22.1", - "bitflags 2.9.4", + "bitflags 2.13.2", "byteorder", "chrono", "crc", @@ -11447,26 +11359,26 @@ dependencies = [ "futures-core", "futures-util", "hex", - "hkdf", - "hmac", + "hkdf 0.12.4", + "hmac 0.12.1", "home", "itoa", "log", - "md-5", + "md-5 0.10.6", "memchr", "once_cell", - "rand 0.8.5", + "rand 0.8.8", "rust_decimal", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.17", + "thiserror 2.0.21", "tracing", - "uuid 1.23.3", - "whoami", + "uuid 1.28.0", + "whoami 1.6.1", ] [[package]] @@ -11489,19 +11401,19 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", - "thiserror 2.0.17", + "thiserror 2.0.21", "tracing", "url", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] name = "sqlx-tracing" version = "0.2.0" dependencies = [ - "derive_more 2.1.1", + "derive_more", "futures", - "opentelemetry", + "opentelemetry 0.33.1", "opentelemetry-testing", "sqlx", "testcontainers", @@ -11517,15 +11429,15 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stacker" -version = "0.1.22" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1f8b29fb42aafcea4edeeb6b2f2d7ecd0d969c48b4cf0d2e64aafc471dd6e59" +checksum = "707f49d46706bacf8a2b00d51dace3f9de527c13eec3778f570c411f89e69967" dependencies = [ "cc", "cfg-if", "libc", "psm", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -11535,29 +11447,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] -name = "str_stack" -version = "0.1.0" +name = "static_vcruntime" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" +checksum = "ff7589a1859b09232522bb9edf076ca7fcf14ded96685d3fa629db73023ffbb7" [[package]] -name = "strfmt" -version = "0.2.5" +name = "str_stack" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29fdc163db75f7b5ffa3daf0c5a7136fb0d4b2f35523cd1769da05e034159feb" +checksum = "7f446288b699d66d0fd2e30d1cfe7869194312524b3b9252594868ed26ef056a" [[package]] -name = "string_cache" -version = "0.8.9" +name = "strfmt" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" -dependencies = [ - "new_debug_unreachable", - "parking_lot", - "phf_shared 0.11.3", - "precomputed-hash", - "serde", -] +checksum = "046d549b88a663d317cd04d39696fca5f77db4db44e1db65bfb9dee7f9e680bd" [[package]] name = "string_cache" @@ -11571,18 +11476,6 @@ dependencies = [ "precomputed-hash", ] -[[package]] -name = "string_cache_codegen" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" -dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", - "proc-macro2", - "quote", -] - [[package]] name = "string_cache_codegen" version = "0.6.1" @@ -11627,7 +11520,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -11638,7 +11531,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -11670,8 +11563,14 @@ name = "strum" version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" dependencies = [ - "strum_macros", + "strum_macros 0.28.0", ] [[package]] @@ -11683,7 +11582,19 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", ] [[package]] @@ -11694,12 +11605,12 @@ checksum = "d350d5788fa94d560d92269266a50efc77b036bfca6675e420b64df7b3211f37" dependencies = [ "js-sys", "libc", - "libloading 0.8.8", + "libloading 0.8.9", "memfd", "memmap2", "serde", "subsecond-types", - "thiserror 2.0.17", + "thiserror 2.0.21", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -11722,9 +11633,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "swift-rs" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +checksum = "cefd87076fd385308ee4aff597256c902f1fbb4d031de1558efc12f8ffefadd9" dependencies = [ "base64 0.21.7", "serde", @@ -11744,9 +11655,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" dependencies = [ "proc-macro2", "quote", @@ -11755,9 +11666,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.3" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b" dependencies = [ "proc-macro2", "quote", @@ -11781,17 +11692,28 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] -name = "sys-locale" -version = "0.3.2" +name = "synstructure" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02" dependencies = [ - "libc", -] + "proc-macro2", + "quote", + "syn 3.0.9", +] + +[[package]] +name = "sys-locale" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +dependencies = [ + "libc", +] [[package]] name = "sysinfo" @@ -11804,16 +11726,30 @@ dependencies = [ "ntapi", "objc2-core-foundation", "objc2-io-kit", - "windows", + "windows 0.61.3", +] + +[[package]] +name = "sysinfo" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ab6a2f8bfe508deb3c6406578252e491d299cbbf3bc0529ecc3313aee4a52f" +dependencies = [ + "libc", + "memchr", + "ntapi", + "objc2-core-foundation", + "objc2-io-kit", + "windows 0.62.2", ] [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -11849,14 +11785,14 @@ checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" [[package]] name = "tao" -version = "0.36.0" +version = "0.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9fa4618f999c4249db1681cba0a19b890718f274de7fa93c445d46bd3a8a999" +checksum = "f37f381f4e048e6cdf038b5705f8cf14ad108279d46eb968140a7b291aba9400" dependencies = [ - "bitflags 2.9.4", - "block2 0.6.2", + "bitflags 2.13.2", + "block2", "core-foundation 0.10.1", - "core-graphics 0.25.0", + "core-graphics", "crossbeam-channel", "dbus", "dispatch2", @@ -11865,25 +11801,24 @@ dependencies = [ "gdkwayland-sys", "gdkx11-sys", "gtk", - "jni", + "jni 0.21.1", "libc", "log", "ndk", "ndk-context", "ndk-sys", - "objc2 0.6.4", + "objc2", "objc2-app-kit", - "objc2-foundation 0.3.2", + "objc2-foundation", "objc2-ui-kit", - "once_cell", "parking_lot", "percent-encoding", "raw-window-handle", "tao-macros", "unicode-segmentation", "url", - "windows", - "windows-core 0.61.2", + "windows 0.62.2", + "windows-core 0.62.2", "windows-version", "x11-dl", ] @@ -11896,20 +11831,14 @@ checksum = "5f7eeb6d99155545da6150a1795945f16ac9c178deb2a5f2e74d776107bd5849" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - [[package]] name = "tar" -version = "0.4.44" +version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" dependencies = [ "filetime", "libc", @@ -11924,35 +11853,36 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.11.5" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" +version = "2.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f316751027fc2644221d1a448564d519efb07067fda584879d9cda966391d212" dependencies = [ "anyhow", "bytes", - "cookie 0.18.1", - "dirs", + "cookie 0.18.2", + "dirs 7.0.0", "dunce", "embed_plist", - "getrandom 0.3.3", + "getrandom 0.3.4", "glob", "gtk", "heck 0.5.0", - "http 1.3.1", + "http 1.5.0", "http-range", - "jni", + "jni 0.21.1", "libc", "log", "mime", "muda", - "objc2 0.6.4", + "objc2", "objc2-app-kit", - "objc2-foundation 0.3.2", + "objc2-foundation", "objc2-ui-kit", "objc2-web-kit", "percent-encoding", "plist", "raw-window-handle", - "reqwest 0.13.2", + "reqwest 0.13.5", "serde", "serde_json", "serde_repr", @@ -11963,24 +11893,25 @@ dependencies = [ "tauri-runtime", "tauri-runtime-wry", "tauri-utils", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "tray-icon", "url", "webkit2gtk", "webview2-com", "window-vibrancy", - "windows", + "windows 0.62.2", ] [[package]] name = "tauri-build" -version = "2.6.3" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" +version = "2.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "641dd5fd297c99ab92717b0428cca5b9c6f960b2ac96ca131b3eebc9d70b8ddc" dependencies = [ "anyhow", "cargo_toml", - "dirs", + "dirs 7.0.0", "glob", "heck 0.5.0", "json-patch", @@ -11989,6 +11920,8 @@ dependencies = [ "semver", "serde", "serde_json", + "static_vcruntime", + "strsim 0.11.1", "tauri-codegen", "tauri-utils", "tauri-winres", @@ -11997,48 +11930,50 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.6.3" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" +version = "2.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6585c5b536c00f039d12ce70a9755172d5423bbcfd3969863baa70314c3e02f" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", "brotli", "ico", "json-patch", "plist", - "png 0.17.16", + "png 0.18.1", "proc-macro2", "quote", "semver", "serde", "serde_json", - "sha2", - "syn 2.0.106", + "sha2 0.10.9", + "syn 2.0.119", "tauri-utils", - "thiserror 2.0.17", + "thiserror 2.0.21", "time", "url", - "uuid 1.23.3", + "uuid 1.28.0", "walkdir", ] [[package]] name = "tauri-macros" -version = "2.6.3" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" +version = "2.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e83a0cfa1bae376e8fbbdc0b1692707aed50cd6072ce85cae4789af5d6c19f" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", "tauri-codegen", "tauri-utils", ] [[package]] name = "tauri-plugin" -version = "2.5.3" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692a77abd8b8773e107a42ec0e05b767b8d2b7ece76ab36c6c3947e34df9f53f" +checksum = "67fb21a77e8f94e8beb3325e583102488659365af0a3948b7ea244c5b779c291" dependencies = [ "anyhow", "glob", @@ -12047,15 +11982,14 @@ dependencies = [ "serde", "serde_json", "tauri-utils", - "toml 0.9.8", "walkdir", ] [[package]] name = "tauri-plugin-deep-link" -version = "2.4.3" +version = "2.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd67112fb1131834c2a7398ffcba520dbbf62c17de3b10329acd1a3554b1a9bb" +checksum = "1b3c64e24ebcbc63aaa2d88a9c51e2507084b46620baf39ecb0baa0738a08bb4" dependencies = [ "dunce", "plist", @@ -12065,18 +11999,18 @@ dependencies = [ "tauri", "tauri-plugin", "tauri-utils", - "thiserror 2.0.17", + "thiserror 2.0.21", "tracing", "url", "windows-registry", - "windows-result 0.3.4", + "windows-result 0.4.1", ] [[package]] name = "tauri-plugin-dialog" -version = "2.4.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0beee42a4002bc695550599b011728d9dfabf82f767f134754ed6655e434824e" +checksum = "b7461aaacf1901915ea7b9f5cd74f8224a351ed96af0a62c07fce934003cb34b" dependencies = [ "log", "raw-window-handle", @@ -12086,19 +12020,21 @@ dependencies = [ "tauri", "tauri-plugin", "tauri-plugin-fs", - "thiserror 2.0.17", + "thiserror 2.0.21", "url", ] [[package]] name = "tauri-plugin-fs" -version = "2.4.5" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed390cc669f937afeb8b28032ce837bac8ea023d975a2e207375ec05afaf1804" +checksum = "5d58eb1d4984e535f47a642ffec09a2da6f5c18a12b5902d12126cb7626d628b" dependencies = [ "anyhow", "dunce", "glob", + "log", + "objc2-foundation", "percent-encoding", "schemars 0.8.22", "serde", @@ -12107,62 +12043,62 @@ dependencies = [ "tauri", "tauri-plugin", "tauri-utils", - "thiserror 2.0.17", - "toml 0.9.8", + "thiserror 2.0.21", + "toml 1.1.8+spec-1.1.0", "url", ] [[package]] name = "tauri-plugin-http" -version = "2.5.7" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8f069451c4e87e7e2636b7f065a4c52866c4ce5e60e2d53fa1038edb6d184dc" +checksum = "2c57e3451553f95a1db3bfed6a358a77ce5080b6399a242c6eadac113f97abd2" dependencies = [ "bytes", "cookie_store", "data-url", - "http 1.3.1", + "http 1.5.0", "regex", - "reqwest 0.12.24", + "reqwest 0.12.28", "schemars 0.8.22", "serde", "serde_json", "tauri", "tauri-plugin", "tauri-plugin-fs", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "url", - "urlpattern 0.3.0", + "urlpattern", ] [[package]] name = "tauri-plugin-opener" -version = "2.5.0" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786156aa8e89e03d271fbd3fe642207da8e65f3c961baa9e2930f332bf80a1f5" +checksum = "53810be1b4fed22bb6ac3f4cab5a2b80d9391d1af436bda145607532bc0bb219" dependencies = [ "dunce", "glob", "objc2-app-kit", - "objc2-foundation 0.3.2", + "objc2-foundation", "open", "schemars 0.8.22", "serde", "serde_json", "tauri", "tauri-plugin", - "thiserror 2.0.17", + "thiserror 2.0.21", "url", - "windows", - "zbus", + "windows 0.62.2", + "zbus 5.19.0", ] [[package]] name = "tauri-plugin-os" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a1c77ebf6f20417ab2a74e8c310820ba52151406d0c80fbcea7df232e3f6ba" +checksum = "4bd69d272ab772b30462779de12a40f837616831c794c71531bea91474e1061f" dependencies = [ "gethostname", "log", @@ -12173,22 +12109,23 @@ dependencies = [ "sys-locale", "tauri", "tauri-plugin", - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] name = "tauri-plugin-single-instance" -version = "2.3.4" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb9cac815bf11c4a80fb498666bcdad66d65b89e3ae24669e47806febb76389c" +checksum = "561cd99484561bc39c954768e7b41a66cebbe1ac3d9d081c34361f740c489e2c" dependencies = [ "serde", "serde_json", "tauri", - "thiserror 2.0.17", + "thiserror 2.0.21", + "tokio", "tracing", - "windows-sys 0.60.2", - "zbus", + "windows-sys 0.61.2", + "zbus 5.19.0", ] [[package]] @@ -12197,17 +12134,17 @@ version = "2.10.1" source = "git+https://github.com/modrinth/plugins-workspace?rev=0d30f2aa28ec668ce187d527da1c475da3c01cbc#0d30f2aa28ec668ce187d527da1c475da3c01cbc" dependencies = [ "base64 0.22.1", - "dirs", + "dirs 6.0.0", "flate2", "futures-util", - "http 1.3.1", + "http 1.5.0", "infer 0.19.0", "log", "minisign-verify", "osakit", "percent-encoding", - "reqwest 0.13.2", - "rustls 0.23.32", + "reqwest 0.13.5", + "rustls 0.23.46", "semver", "serde", "serde_json", @@ -12215,7 +12152,7 @@ dependencies = [ "tauri", "tauri-plugin", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.21", "time", "tokio", "url", @@ -12225,53 +12162,55 @@ dependencies = [ [[package]] name = "tauri-plugin-window-state" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5f6fe3291bfa609c7e0b0ee3bedac294d94c7018934086ce782c1d0f2a468e" +checksum = "5d6815cab7b212f9cfe16a9d79d8d22f9e14159e4a9460f7dec1467167a008e3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.13.2", "log", "serde", "serde_json", "tauri", "tauri-plugin", - "thiserror 2.0.17", + "thiserror 2.0.21", ] [[package]] name = "tauri-runtime" -version = "2.11.3" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" +version = "2.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c55766d99cea69055904d1735b93c2049302b2e09effd462120deb5581d78e9" dependencies = [ - "cookie 0.18.1", + "cookie 0.18.2", "dpi", "gtk", - "http 1.3.1", - "jni", - "objc2 0.6.4", + "http 1.5.0", + "jni 0.21.1", + "objc2", "objc2-ui-kit", "objc2-web-kit", "raw-window-handle", "serde", "serde_json", "tauri-utils", - "thiserror 2.0.17", + "thiserror 2.0.21", "url", "webkit2gtk", "webview2-com", - "windows", + "windows 0.62.2", ] [[package]] name = "tauri-runtime-wry" -version = "2.11.4" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" +version = "2.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d61892587aea2a85245bcaec98c6fe46268874c0a0deae5535fb71ca7b93eae" dependencies = [ "gtk", - "http 1.3.1", - "jni", + "http 1.5.0", + "jni 0.21.1", "log", - "objc2 0.6.4", + "objc2", "objc2-app-kit", "once_cell", "percent-encoding", @@ -12283,14 +12222,15 @@ dependencies = [ "url", "webkit2gtk", "webview2-com", - "windows", + "windows 0.62.2", "wry", ] [[package]] name = "tauri-utils" -version = "2.9.3" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" +version = "2.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362ab21cd4cc713f2a02b1a9b5688198b1541cfb6907c4281e9190e0f0ef4aa3" dependencies = [ "anyhow", "brotli", @@ -12299,11 +12239,9 @@ dependencies = [ "dom_query", "dunce", "glob", - "html5ever 0.29.1", - "http 1.3.1", + "http 1.5.0", "infer 0.22.0", "json-patch", - "kuchikiki", "log", "memchr", "phf 0.13.1", @@ -12318,48 +12256,38 @@ dependencies = [ "serde_json", "serde_with", "swift-rs", - "thiserror 2.0.17", - "toml 1.1.6+spec-1.1.0", + "thiserror 2.0.21", + "toml 1.1.8+spec-1.1.0", "url", - "urlpattern 0.6.0", - "uuid 1.23.3", + "urlpattern", + "uuid 1.28.0", "walkdir", ] [[package]] name = "tauri-winres" -version = "0.3.3" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd21509dd1fa9bd355dc29894a6ff10635880732396aa38c0066c1e6c1ab8074" +checksum = "c52bb6904475a6ca662f15ef787f18ade61d5740a1ee12c45d3b748efdb6f796" dependencies = [ + "dunce", "embed-resource", - "toml 0.9.8", + "toml 1.1.8+spec-1.1.0", ] [[package]] name = "tempfile" -version = "3.23.0" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ - "fastrand 2.3.0", - "getrandom 0.3.3", + "fastrand 2.5.0", + "getrandom 0.4.3", "once_cell", - "rustix 1.1.2", + "rustix 1.1.5", "windows-sys 0.61.2", ] -[[package]] -name = "tendril" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" -dependencies = [ - "futf", - "mac", - "utf-8", -] - [[package]] name = "tendril" version = "0.5.1" @@ -12369,17 +12297,6 @@ dependencies = [ "new_debug_unreachable", ] -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - [[package]] name = "termcolor" version = "1.4.1" @@ -12410,7 +12327,7 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "tokio-stream", "tokio-util", @@ -12439,7 +12356,7 @@ dependencies = [ "async-tungstenite", "async-walkdir", "async_zip", - "base64 0.22.1", + "base64 0.23.1", "bon", "bytemuck", "bytes", @@ -12449,8 +12366,8 @@ dependencies = [ "daedalus", "dashmap", "data-url", - "derive_more 2.1.1", - "dirs", + "derive_more", + "dirs 7.0.0", "discord-rich-presence", "dotenvy", "dunce", @@ -12463,11 +12380,11 @@ dependencies = [ "futures-lite 2.6.1", "governor", "heck 0.5.0", - "hickory-resolver 0.25.2", + "hickory-resolver", "httpdate", "image", "indicatif", - "itertools 0.14.0", + "itertools 0.15.0", "json5", "modrinth-content-management", "notify", @@ -12477,15 +12394,15 @@ dependencies = [ "paste", "path-util", "pathdiff", - "phf 0.13.1", - "png 0.18.0", + "phf 0.14.0", + "png 0.18.1", "postcard", "postcard-bindgen", "quartz_nbt", - "quick-xml 0.38.3", - "rand 0.8.5", + "quick-xml 0.42.0", + "rand 0.10.3", "regex", - "reqwest 0.12.24", + "reqwest 0.13.5", "rgb", "same-file", "serde", @@ -12494,29 +12411,29 @@ dependencies = [ "serde_json", "serde_with", "sha1_smol", - "sha2", - "shlex 1.3.0", + "sha2 0.11.1", + "shlex", "sqlx", - "sysinfo", + "sysinfo 0.38.4", "tauri", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "tokio-util", - "toml 0.9.8", + "toml 1.1.8+spec-1.1.0", "tracing", "tracing-error", "tracing-subscriber", "ts-rs", "url", "urlencoding", - "uuid 1.23.3", - "whoami", - "windows", - "windows-core 0.61.2", - "winreg 0.55.0", - "zbus", - "zip 6.0.0", + "uuid 1.28.0", + "whoami 2.1.3", + "windows 0.62.2", + "windows-core 0.62.2", + "winreg", + "zbus 6.0.0", + "zip 9.0.5", ] [[package]] @@ -12526,16 +12443,16 @@ dependencies = [ "aes-gcm", "anyhow", "async_zip", - "base64 0.22.1", + "base64 0.23.1", "chrono", "core-foundation 0.10.1", - "core-graphics 0.24.0", + "core-graphics", "daedalus", "dashmap", "either", "enumset", - "hkdf", - "hyper 1.7.0", + "hkdf 0.13.0", + "hyper 1.12.0", "hyper-util", "image", "native-dialog", @@ -12543,11 +12460,11 @@ dependencies = [ "p256", "paste", "path-util", - "rand 0.8.5", + "rand 0.10.3", "serde", "serde_json", "serde_with", - "sha2", + "sha2 0.11.1", "tauri", "tauri-build", "tauri-plugin-deep-link", @@ -12566,10 +12483,10 @@ dependencies = [ "tracing", "url", "urlencoding", - "uuid 1.23.3", + "uuid 1.28.0", "webview2-com", - "windows", - "windows-core 0.61.2", + "windows 0.62.2", + "windows-core 0.62.2", ] [[package]] @@ -12592,11 +12509,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.21", ] [[package]] @@ -12607,38 +12524,38 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] name = "thread_local" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" dependencies = [ "cfg-if", ] [[package]] name = "tiff" -version = "0.10.3" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f" +checksum = "b63feaf3343d35b6ca4d50483f94843803b0f51634937cc2ec519fc32232bc52" dependencies = [ "fax", "flate2", - "half 2.7.0", + "half 2.7.1", "quick-error", "weezl", "zune-jpeg", @@ -12646,9 +12563,9 @@ dependencies = [ [[package]] name = "tikv-jemalloc-ctl" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f21f216790c8df74ce3ab25b534e0718da5a1916719771d3fec23315c99e468b" +checksum = "3a184c43b8ab2f41df2733b55556e3f5f632f4aeaa205b1bb018f574b7f5f142" dependencies = [ "libc", "paste", @@ -12657,9 +12574,9 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" +version = "0.7.1+5.3.1-0-g81034ce1f1373e37dc865038e1bc8eeecf559ce8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3c60906412afa9c2b5b5a48ca6a5abe5736aec9eb48ad05037a677e52e4e2d" +checksum = "1a2825c78386b4ae0314074867860ba9577875de945f05992c38815cbec327f0" dependencies = [ "cc", "libc", @@ -12667,9 +12584,9 @@ dependencies = [ [[package]] name = "tikv-jemallocator" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cec5ff18518d81584f477e9bfdf957f5bb0979b0bac3af4ca30b5b3ae2d2865" +checksum = "249f09e49ab1609436f34c776e84231bead18d6a955f119f939bdc1d847561bd" dependencies = [ "libc", "tikv-jemalloc-sys", @@ -12677,30 +12594,29 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" dependencies = [ "deranged", - "itoa", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" dependencies = [ "num-conv", "time-core", @@ -12717,9 +12633,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" dependencies = [ "displaydoc", "zerovec", @@ -12727,24 +12643,15 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" -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.0" +version = "1.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d988bcd52dbe076d3d46903332f58c912b87a2c49b1428419a5845154762ffee" +checksum = "a0c168a474b95bfecfe908a65d4bdffc523144b649a74c09c286afb35d53e0bc" dependencies = [ "bytes", "libc", @@ -12760,23 +12667,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6328af13490e73a9b4694030fafd93f8c8c6a9dede33e821c3fc63eddf8042ba" +checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", + "syn 3.0.9", ] [[package]] @@ -12791,19 +12688,19 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.4" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +checksum = "c9cc2678c2cdd569ef8215e2afd7954ada2ae20b4fdd2c5fe6139a3b02d105db" dependencies = [ - "rustls 0.23.32", + "rustls 0.23.46", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b" dependencies = [ "futures-core", "pin-project-lite", @@ -12812,15 +12709,16 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "e464cf451ba96ebfc6f9b6542f17ee8b8956e33f1e40d9690624e59d7a7f8a4b" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", "futures-util", + "libc", "pin-project-lite", "slab", "tokio", @@ -12840,29 +12738,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" -dependencies = [ - "indexmap 2.14.2", - "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 0.7.3", - "toml_parser", - "toml_writer", - "winnow 0.7.13", -] - -[[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", @@ -12879,18 +12762,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" -dependencies = [ - "serde_core", -] - -[[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", ] @@ -12921,30 +12795,30 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.23.7" +version = "0.25.17+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +checksum = "e3641d5bbb5349a79e1020a242d251efbc546ad8048d133958323ce9c40a9c9c" dependencies = [ "indexmap 2.14.2", - "toml_datetime 0.7.3", + "toml_datetime 1.1.2+spec-1.1.0", "toml_parser", - "winnow 0.7.13", + "winnow 1.0.4", ] [[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 = "tonic" @@ -12955,10 +12829,10 @@ dependencies = [ "async-trait", "base64 0.22.1", "bytes", - "http 1.3.1", - "http-body 1.0.1", + "http 1.5.0", + "http-body 1.1.0", "http-body-util", - "hyper 1.7.0", + "hyper 1.12.0", "hyper-timeout", "hyper-util", "percent-encoding", @@ -12974,19 +12848,19 @@ dependencies = [ [[package]] name = "tonic" -version = "0.14.2" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" +checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" dependencies = [ "async-trait", "axum", "base64 0.22.1", "bytes", - "h2 0.4.12", - "http 1.3.1", - "http-body 1.0.1", + "h2 0.4.20", + "http 1.5.0", + "http-body 1.1.0", "http-body-util", - "hyper 1.7.0", + "hyper 1.12.0", "hyper-timeout", "hyper-util", "percent-encoding", @@ -13003,34 +12877,36 @@ dependencies = [ [[package]] name = "tonic-prost" -version = "0.14.2" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" +checksum = "50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0" dependencies = [ "bytes", - "prost 0.14.3", - "tonic 0.14.2", + "prost 0.14.4", + "tonic 0.14.6", ] [[package]] name = "totp-rs" -version = "5.7.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f124352108f58ef88299e909f6e9470f1cdc8d2a1397963901b4a6366206bf72" +checksum = "49d0f9b7aa5def86d3a8d8ba926fe8c1990924dd715d2b5fc54a4aa3788c11c1" dependencies = [ "base32", "constant_time_eq", - "hmac", - "rand 0.9.2", - "sha1 0.10.6", - "sha2", + "hmac 0.13.0", + "rand 0.10.3", + "serde", + "sha1 0.11.0", + "sha2 0.11.1", + "zeroize", ] [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", @@ -13047,25 +12923,25 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ "async-compression", - "bitflags 2.9.4", + "bitflags 2.13.2", "bytes", "futures-core", "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "http 1.5.0", + "http-body 1.1.0", "http-body-util", - "iri-string", "pin-project-lite", "tokio", "tokio-util", "tower", "tower-layer", "tower-service", + "url", ] [[package]] @@ -13094,15 +12970,15 @@ dependencies = [ [[package]] name = "tracing-actix-web" -version = "0.7.19" +version = "0.7.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5360edd490ec8dee9fedfc6a9fd83ac2f01b3e1996e3261b9ad18a61971fe064" +checksum = "3133a9a17a910bb708dcdcf1ff89d3dd98d412938b5e017c6e42de11b63ef164" dependencies = [ "actix-web", "mutually_exclusive_features", - "pin-project", + "pin-project-lite", "tracing", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] @@ -13113,7 +12989,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -13135,7 +13011,7 @@ dependencies = [ "chrono", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.21", "tracing", "tracing-core", "tracing-log", @@ -13171,7 +13047,7 @@ checksum = "ddcf5959f39507d0d04d6413119c04f33b623f4f951ebcbdddddfad2d0623a9c" dependencies = [ "js-sys", "once_cell", - "opentelemetry", + "opentelemetry 0.30.0", "opentelemetry_sdk", "smallvec", "tracing", @@ -13183,9 +13059,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "chrono", "matchers", @@ -13202,23 +13078,23 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.24.2" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045979e3f037cd18ad1cb2a419dfda133c5c29c9f3453370079f2255d46c257e" +checksum = "b2b9c52859a94554803ccd4a24b98f74148ebc73b90676d783f3490b1bff9d72" dependencies = [ "crossbeam-channel", - "dirs", + "dirs 7.0.0", "libappindicator", "muda", - "objc2 0.6.4", + "objc2", "objc2-app-kit", "objc2-core-foundation", "objc2-core-graphics", - "objc2-foundation 0.3.2", + "objc2-foundation", "once_cell", - "png 0.18.0", + "png 0.18.1", "serde", - "thiserror 2.0.17", + "thiserror 2.0.21", "windows-sys 0.61.2", ] @@ -13231,8 +13107,8 @@ dependencies = [ "lazy_static", "sequential_gen", "serde", - "spin 0.10.0", - "thiserror 2.0.17", + "spin 0.10.1", + "thiserror 2.0.21", ] [[package]] @@ -13248,9 +13124,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "756050066659291d47a554a9f558125db17428b073c5ffce1daf5dcb0f7231d8" dependencies = [ "chrono", - "thiserror 2.0.17", + "thiserror 2.0.21", "ts-rs-macros", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] @@ -13261,44 +13137,52 @@ checksum = "38d90eea51bc7988ef9e674bf80a85ba6804739e535e9cab48e4bb34a8b652aa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", "termcolor", ] [[package]] name = "tungstenite" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" +checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" dependencies = [ "bytes", "data-encoding", - "http 1.3.1", + "http 1.5.0", "httparse", "log", - "rand 0.9.2", - "rustls 0.23.32", - "rustls-pki-types", - "sha1 0.10.6", - "thiserror 2.0.17", + "rand 0.9.5", + "sha1 0.10.7", + "thiserror 2.0.21", "utf-8", ] [[package]] name = "tungstenite" -version = "0.28.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" +checksum = "e48ac77174b19c110a50ab2128b24215ac9cb40e0e12e093fb602d175c569d22" dependencies = [ "bytes", "data-encoding", - "http 1.3.1", + "http 1.5.0", "httparse", "log", - "rand 0.9.2", - "sha1 0.10.6", - "thiserror 2.0.17", - "utf-8", + "rand 0.10.3", + "rustls 0.23.46", + "rustls-pki-types", + "sha1 0.11.0", + "thiserror 2.0.21", +] + +[[package]] +name = "twox-hash" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86a801b3cea342a06d468c8710662aa29e5e05e4f5c0d62f00bbb7f2ad7941c2" +dependencies = [ + "rand 0.10.3", ] [[package]] @@ -13309,9 +13193,15 @@ checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" [[package]] name = "typed-path" -version = "0.12.0" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ec2755506471f54baf5e4bb5499d8e510cc1caf271270e778a736bd2d7336c" + +[[package]] +name = "typed-path" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7922f2cdc51280d47b491af9eafc41eb0cdab85eabcb390c854412fcbf26dbe8" +checksum = "9ce898823d8cd0f028662d2f349694b1af0a5cc9be83f1d213a00d3147445e1e" [[package]] name = "typeid" @@ -13333,13 +13223,13 @@ checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uds_windows" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" dependencies = [ "memoffset", "tempfile", - "winapi", + "windows-sys 0.61.2", ] [[package]] @@ -13348,7 +13238,7 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" dependencies = [ - "rand 0.9.2", + "rand 0.9.5", "web-time", ] @@ -13361,52 +13251,11 @@ dependencies = [ "libc", ] -[[package]] -name = "unic-char-property" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" -dependencies = [ - "unic-char-range", -] - -[[package]] -name = "unic-char-range" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" - -[[package]] -name = "unic-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" - -[[package]] -name = "unic-ucd-ident" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-version" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" -dependencies = [ - "unic-common", -] - [[package]] name = "unicase" -version = "2.8.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" +checksum = "357cc3acc6a036009fd6c973ed009037c732d60d0b4f6c673e9041497482a28f" [[package]] name = "unicode-bidi" @@ -13416,30 +13265,30 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.19" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563" [[package]] name = "unicode-normalization" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +checksum = "75cd3fb03d5288b3ba9a1ee103ac7e9cbb59f0b03d64f8ddfcc04dd42758a85d" dependencies = [ "tinyvec", ] [[package]] name = "unicode-properties" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" +checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" [[package]] name = "unicode-width" @@ -13461,18 +13310,18 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unit-prefix" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "323402cff2dd658f39ca17c789b502021b3f18707c91cdf22e3838e1b4023817" +checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" [[package]] name = "universal-hash" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +checksum = "f4987bdc12753382e0bec4a65c50738ffaabc998b9cdd1f952fb5f39b0048a96" dependencies = [ - "crypto-common 0.1.6", - "subtle", + "crypto-common 0.2.2", + "ctutils", ] [[package]] @@ -13483,43 +13332,43 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "3.1.2" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ba1025f18a4a3fc3e9b48c868e9beb4f24f4b4b1a325bada26bd4119f46537" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", "log", "percent-encoding", - "rustls 0.23.32", - "rustls-pemfile 2.2.0", + "rustls 0.23.46", "rustls-pki-types", "ureq-proto", - "utf-8", - "webpki-roots 1.0.3", + "utf8-zero", + "webpki-roots 1.0.10", ] [[package]] name = "ureq-proto" -version = "0.5.2" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b4531c118335662134346048ddb0e54cc86bd7e81866757873055f0e38f5d2" +checksum = "841583fc36089d7d59419568ae157f43a5a03a2e5a81ba87c77d1596ef46e922" dependencies = [ - "base64 0.22.1", - "http 1.3.1", + "base64 0.23.1", + "http 1.5.0", "httparse", "log", ] [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", "percent-encoding", "serde", + "serde_derive", ] [[package]] @@ -13528,18 +13377,6 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" -[[package]] -name = "urlpattern" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" -dependencies = [ - "regex", - "serde", - "unic-ucd-ident", - "url", -] - [[package]] name = "urlpattern" version = "0.6.0" @@ -13558,6 +13395,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -13572,9 +13415,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "utoipa" -version = "5.4.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fcc29c80c21c31608227e0912b2d7fddba57ad76b606890627ba8ee7964e993" +checksum = "8765fe27aeff71012a3f90fa474cf1df863a7d0dd81ed25de4e63fff2544994f" dependencies = [ "indexmap 2.14.2", "serde", @@ -13584,16 +13427,16 @@ dependencies = [ [[package]] name = "utoipa-gen" -version = "5.4.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d79d08d92ab8af4c5e8a6da20c47ae3f61a0f1dabc1997cdf2d082b757ca08b" +checksum = "d935f1c83fdf8b88f09bbe050d0cea78ea4afee6d7b0317403228c1200b2c8ab" dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.106", + "syn 3.0.9", "url", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] @@ -13602,22 +13445,28 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", ] [[package]] name = "uuid" -version = "1.23.3" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "144d6b123cef80b301b8f72a9e2ca4370ddec21950d0a103dd22c437006d2db7" +checksum = "7cc1186384beb7dd8eedea376413fd654937285ea6c9cfbb928dc3043ea4b606" dependencies = [ - "getrandom 0.4.2", + "getrandom 0.4.3", "js-sys", - "rand 0.10.1", + "rand 0.10.3", "serde_core", "wasm-bindgen", ] +[[package]] +name = "v_escape-base" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1212fce830b75af194b578e55b3db9049f2c8c45f58d397fb25602fdb50fb3d" + [[package]] name = "v_frame" version = "0.3.9" @@ -13631,18 +13480,20 @@ dependencies = [ [[package]] name = "v_htmlescape" -version = "0.15.8" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" +checksum = "befb3d53c9e3ec641417685896cbc8cc5bd264d6a2e190c56aaef1af24740d99" +dependencies = [ + "v_escape-base", +] [[package]] name = "validator" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43fb22e1a008ece370ce08a3e9e4447a910e92621bb49b85d6e48a45397e7cfa" +checksum = "c3d68c6633c483df6780cc5277a417c7c2d1bceee2649d06c8ab6b0fd2dd3c81" dependencies = [ "idna", - "once_cell", "regex", "serde", "serde_derive", @@ -13653,16 +13504,15 @@ dependencies = [ [[package]] name = "validator_derive" -version = "0.20.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7df16e474ef958526d1205f6dda359fdfab79d9aa6d54bafcb92dcd07673dca" +checksum = "240e4b81c20a1d6d50d1d7265c658dfbd204e8b9ac4d80f3c931f39462196335" dependencies = [ - "darling 0.20.11", - "once_cell", - "proc-macro-error2", + "darling 0.23.0", + "proc-macro-error3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -13685,9 +13535,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version-compare" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" [[package]] name = "version_check" @@ -13755,9 +13605,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", ] @@ -13781,7 +13631,7 @@ checksum = "59195a1db0e95b920366d949ba5e0d3fc0e70b67c09be15ce5abb790106b0571" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -13807,60 +13657,58 @@ dependencies = [ [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" dependencies = [ - "wit-bindgen 0.46.0", + "wit-bindgen", ] [[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +name = "wasite" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen 0.51.0", -] +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasite" -version = "0.1.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" +checksum = "66fe902b4a6b8028a753d5424909b764ccf79b7a209eac9bf97e59cda9f71a42" +dependencies = [ + "wasi 0.14.7+wasi-0.2.4", +] [[package]] name = "wasm-bindgen" -version = "0.2.114" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +checksum = "9bb54f33acc68fd454578d9820b0bde1a1a3d17aa17bb7b6595806d02886d409" dependencies = [ "cfg-if", "once_cell", "rustversion", + "serde", "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.64" +version = "0.4.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" +checksum = "3cbab34de2d982e9b48e18d216d04c4a6f641066ff19ffb699980f591ee3610e" dependencies = [ - "cfg-if", - "futures-util", "js-sys", - "once_cell", + "tokio", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.114" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +checksum = "2e29d0c35b16e224a7eeb5cd2d25e3e1968fbd65604117b44d3b789d00ee8535" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -13868,48 +13716,26 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.114" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +checksum = "6f501a8bc3719dba86ef8ae4728879c08001bea749eb1333ac5b91e040e2a6b7" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.114" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +checksum = "23f0c9c52aa7cd7d77769a4cfe2a9adb1b331f489a41d912ce14513d5ab995c6" dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap 2.14.2", - "wasm-encoder", - "wasmparser", -] - [[package]] name = "wasm-streams" version = "0.4.2" @@ -13936,83 +13762,11 @@ dependencies = [ "web-sys", ] -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags 2.9.4", - "hashbrown 0.15.5", - "indexmap 2.14.2", - "semver", -] - -[[package]] -name = "wayland-backend" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" -dependencies = [ - "cc", - "downcast-rs", - "rustix 1.1.2", - "scoped-tls", - "smallvec", - "wayland-sys", -] - -[[package]] -name = "wayland-client" -version = "0.31.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" -dependencies = [ - "bitflags 2.9.4", - "rustix 1.1.2", - "wayland-backend", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols" -version = "0.32.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" -dependencies = [ - "bitflags 2.9.4", - "wayland-backend", - "wayland-client", - "wayland-scanner", -] - -[[package]] -name = "wayland-scanner" -version = "0.31.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" -dependencies = [ - "proc-macro2", - "quick-xml 0.37.5", - "quote", -] - -[[package]] -name = "wayland-sys" -version = "0.31.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" -dependencies = [ - "dlib", - "log", - "pkg-config", -] - [[package]] name = "web-sys" -version = "0.3.91" +version = "0.3.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" +checksum = "88261b9deccee56594c11a3460c462c41f58d148598fe70ad77070126a68aba4" dependencies = [ "js-sys", "wasm-bindgen", @@ -14035,9 +13789,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba8b815c1b593dc0baf78dd0f4fc8fdb2de53198fb1163738093e9a311c33fb3" dependencies = [ "phf 0.13.1", - "phf_codegen 0.13.1", - "string_cache 0.9.0", - "string_cache_codegen 0.6.1", + "phf_codegen", + "string_cache", + "string_cache_codegen", ] [[package]] @@ -14051,7 +13805,7 @@ dependencies = [ "openssl-sys", "serde", "tracing", - "uuid 1.23.3", + "uuid 1.28.0", ] [[package]] @@ -14064,7 +13818,7 @@ dependencies = [ "serde", "tracing", "url", - "uuid 1.23.3", + "uuid 1.28.0", "webauthn-rs-core", ] @@ -14081,7 +13835,7 @@ dependencies = [ "nom 7.1.3", "openssl", "openssl-sys", - "rand 0.9.2", + "rand 0.9.5", "rand_chacha 0.9.0", "serde", "serde_cbor_2", @@ -14089,7 +13843,7 @@ dependencies = [ "thiserror 1.0.69", "tracing", "url", - "uuid 1.23.3", + "uuid 1.28.0", "webauthn-attestation-ca", "webauthn-rs-proto", "x509-parser", @@ -14163,9 +13917,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.7" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" +checksum = "58ec80e73fd8baf57bf0d9615554c75348bda990d6d5bbeab964dd068319fecb" dependencies = [ "rustls-pki-types", ] @@ -14176,59 +13930,57 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.3", + "webpki-roots 1.0.10", ] [[package]] name = "webpki-roots" -version = "1.0.3" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b130c0d2d49f8b6889abc456e795e82525204f27c42cf767cf0d7734e089b8" +checksum = "1c1c8e20c8a38fc7d65abfe74eb7280e4aa667e8eec8bc84996d2874810748d9" dependencies = [ "rustls-pki-types", ] [[package]] name = "webview2-com" -version = "0.38.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ba622a989277ef3886dd5afb3e280e3dd6d974b766118950a08f8f678ad6a4" +checksum = "3f89fca7a704cee10dcb3654c1dbb8941d1783132f1917358af75bec37a7d7e6" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows", - "windows-core 0.61.2", - "windows-implement", - "windows-interface", + "windows 0.62.2", + "windows-core 0.62.2", ] [[package]] name = "webview2-com-macros" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "webview2-com-sys" -version = "0.38.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" +checksum = "b3a07132775117d6065853d9d1178157b8c90e228de47129d6bce2c7edebedfb" dependencies = [ - "thiserror 2.0.17", - "windows", - "windows-core 0.61.2", + "thiserror 2.0.21", + "windows 0.62.2", + "windows-core 0.62.2", ] [[package]] name = "weezl" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" +checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" [[package]] name = "wfd" @@ -14248,7 +14000,7 @@ checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762" dependencies = [ "either", "env_home", - "rustix 1.1.2", + "rustix 1.1.5", "winsafe", ] @@ -14259,7 +14011,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" dependencies = [ "libredox", - "wasite", + "wasite 0.1.0", +] + +[[package]] +name = "whoami" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626c4bac6755d76ffc12cb01b2eac751db1996b9e0041de9aa02c8c211ddc82c" +dependencies = [ + "libc", + "libredox", + "objc2-system-configuration", + "wasite 1.0.2", "web-sys", ] @@ -14302,16 +14066,17 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window-vibrancy" -version = "0.6.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +checksum = "111e51caca442cafd9bab396628ac4d814880eaea4e63dfd76a12e9f342b5580" dependencies = [ - "objc2 0.6.4", + "objc2", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation 0.3.2", + "objc2-foundation", + "objc2-quartz-core", "raw-window-handle", - "windows-sys 0.59.0", + "windows-sys 0.61.2", "windows-version", ] @@ -14321,11 +14086,23 @@ version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-collections", + "windows-collections 0.2.0", "windows-core 0.61.2", - "windows-future", + "windows-future 0.2.1", "windows-link 0.1.3", - "windows-numerics", + "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]] @@ -14337,6 +14114,15 @@ dependencies = [ "windows-core 0.61.2", ] +[[package]] +name = "windows-collections" +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" @@ -14371,7 +14157,18 @@ checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", - "windows-threading", + "windows-threading 0.1.0", +] + +[[package]] +name = "windows-future" +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", ] [[package]] @@ -14382,7 +14179,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -14393,7 +14190,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] @@ -14418,15 +14215,25 @@ dependencies = [ "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", +] + [[package]] name = "windows-registry" -version = "0.5.3" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", ] [[package]] @@ -14591,6 +14398,15 @@ 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", +] + [[package]] name = "windows-version" version = "0.1.7" @@ -14789,39 +14605,23 @@ dependencies = [ "memchr", ] -[[package]] -name = "winnow" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "cfg-if", - "windows-sys 0.48.0", + "memchr", ] [[package]] name = "winreg" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +checksum = "7d6f32a0ff4a9f6f01231eb2059cc85479330739333e0e58cadf03b6af2cca10" dependencies = [ "cfg-if", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -14832,96 +14632,20 @@ checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" [[package]] name = "wit-bindgen" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" - -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck 0.5.0", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck 0.5.0", - "indexmap 2.14.2", - "prettyplease", - "syn 2.0.106", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" +version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.106", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags 2.9.4", - "indexmap 2.14.2", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] -name = "wit-parser" -version = "0.244.0" +name = "wnaf" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +checksum = "795ca18b3fdb5e62bf982199278341ddcf7ebf7d32e25e212ad05d496e95f6fa" dependencies = [ - "anyhow", - "id-arena", - "indexmap 2.14.2", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", + "ff", + "group", + "hybrid-array", + "primefield", ] [[package]] @@ -14936,63 +14660,54 @@ dependencies = [ [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "wry" -version = "0.56.1" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375becb4aded9913f736443cf88000c6311478db69814cc06070465e4cc44c98" +checksum = "a819957a01b3119af85e638a38d242af76dbc87d130dca67bfd0441072e21ff0" dependencies = [ "base64 0.22.1", - "block2 0.6.2", - "cookie 0.18.1", + "block2", + "cookie 0.18.2", "crossbeam-channel", - "dirs", + "dirs 7.0.0", "dom_query", "dpi", "dunce", "gdkx11", "gtk", - "http 1.3.1", + "http 1.5.0", "javascriptcore-rs", - "jni", + "jni 0.21.1", "libc", "ndk", - "objc2 0.6.4", + "objc2", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation 0.3.2", + "objc2-foundation", "objc2-ui-kit", "objc2-web-kit", "once_cell", "percent-encoding", "raw-window-handle", - "sha2", + "sha2 0.10.9", "soup3", "tao-macros", - "thiserror 2.0.17", + "thiserror 2.0.21", "url", "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows", - "windows-core 0.61.2", + "windows 0.62.2", + "windows-core 0.62.2", "windows-version", "x11-dl", ] -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - [[package]] name = "x11" version = "2.21.0" @@ -15038,14 +14753,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "rustix 1.1.2", + "rustix 1.1.5", ] [[package]] name = "xml-rs" -version = "0.8.27" +version = "0.8.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" +checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" [[package]] name = "xmlparser" @@ -15068,16 +14783,22 @@ dependencies = [ "prometheus", "redis", "serde", - "thiserror 2.0.17", + "thiserror 2.0.21", "tokio", "tracing", ] [[package]] name = "xxhash-rust" -version = "0.8.17" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "550a2b930b62486a393c52d5c3b84bff264b28aa437ed64694d31e93b1757af7" + +[[package]] +name = "y4m" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "985eec839aaf2a1270af8f4ebcf63cf9401cfd90f0902f97c28d9f104ffbde72" +checksum = "7a5a4b21e1a62b67a2970e6831bc091d7b87e119e7f9791aef9702e3bef04448" [[package]] name = "yaserde" @@ -15102,17 +14823,16 @@ dependencies = [ "quote", "serde", "serde_tokenstream", - "syn 2.0.106", + "syn 2.0.119", "xml-rs", ] [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -15120,21 +14840,21 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "ec8ebde2db3681e8c9980cc27822030e68752690ddfa9473e739aeb4dbde6d71" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", - "synstructure", + "syn 3.0.9", + "synstructure 0.14.0", ] [[package]] name = "zbus" -version = "5.11.0" +version = "5.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d07e46d035fb8e375b2ce63ba4e4ff90a7f73cf2ffb0138b29e1158d2eaadf7" +checksum = "5db4be7c075cb421e4b7ee645541604239bd243ba7c357511f4ff3a74b555907" dependencies = [ "async-broadcast", "async-executor", @@ -15146,103 +14866,180 @@ dependencies = [ "async-trait", "blocking", "enumflags2", - "event-listener 5.4.1", + "event-listener 5.4.2", "futures-core", "futures-lite 2.6.1", "hex", - "nix", + "libc", "ordered-stream", + "rustix 1.1.5", "serde", "serde_repr", - "tokio", "tracing", "uds_windows", - "windows-sys 0.60.2", - "winnow 0.7.13", - "zbus_macros", + "uuid 1.28.0", + "windows-sys 0.61.2", + "winnow 1.0.4", + "zbus_macros 5.19.0", "zbus_names", "zvariant", ] +[[package]] +name = "zbus" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266223222c9d81e5966455a9da0783e35d56a7ccab79a03c2366b2d98f8fc8a9" +dependencies = [ + "async-trait", + "bitflags 2.13.2", + "endi", + "futures-core", + "hex", + "libc", + "ordered-stream", + "rustix 1.1.5", + "serde", + "serde_repr", + "socket2 0.6.5", + "tokio", + "tracing", + "uds_windows", + "uuid 1.28.0", + "windows-sys 0.61.2", + "winnow 1.0.4", + "zbus_macros 6.0.0", + "zbus_utils", + "zcheapstr", + "zruntime", +] + [[package]] name = "zbus_macros" -version = "5.11.0" +version = "5.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57e797a9c847ed3ccc5b6254e8bcce056494b375b511b3d6edcec0aeb4defaca" +checksum = "2990635d09ade6df1868f72f8cac69a876a90981e8bd3c40b1be413f8dc88f40" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", "zbus_names", "zvariant", "zvariant_utils", ] +[[package]] +name = "zbus_macros" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69191782481ef4e0ac88ca487347c52e08bb85cceb2a163b79f7281fe5be0a3c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.9", + "zbus_utils", +] + [[package]] name = "zbus_names" -version = "4.2.0" +version = "4.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" +checksum = "812a12be4ead7a59e18ea8f047d08add0066b73bc62fc1467066a2472ae088dd" dependencies = [ "serde", - "static_assertions", - "winnow 0.7.13", + "winnow 1.0.4", "zvariant", ] +[[package]] +name = "zbus_utils" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c27a055b114bd9fc3686e90f62bd1fe612d523fc5f620bac3b1d2f42d3f6cab8" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 3.0.9", + "winnow 1.0.4", +] + +[[package]] +name = "zcheapstr" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1afec51604565183aeb5c54c20aeab286120d4e4460f7f76e3e8bb8c0d99473" +dependencies = [ + "serde", +] + [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "e5fe1f8f1b06191a00962174c61aa5005e0bb391a6d80d07e24d115c01a92ed8" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "863ad3ac83293fb4d740aedbfdc9240dd8d1a50c1099acd76ce80ce7c7230c7f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.119", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", - "synstructure", + "syn 3.0.9", + "synstructure 0.14.0", ] [[package]] name = "zeroize" -version = "1.8.2" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +checksum = "e13084392c5e4bc371903e2935a5eaeed24905a7511356b883835e18a78f6879" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" dependencies = [ "displaydoc", "yoke", @@ -15251,9 +15048,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8" dependencies = [ "yoke", "zerofrom", @@ -15262,13 +15059,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", ] [[package]] @@ -15285,38 +15082,39 @@ dependencies = [ [[package]] name = "zip" -version = "6.0.0" +version = "9.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb2a05c7c36fde6c09b08576c9f7fb4cda705990f73b58fe011abf7dfb24168b" +checksum = "6e04976da629d3b04204ba8105b396a193af8ad2583b2c79bfb3ab8af580a11e" dependencies = [ - "arbitrary", "bzip2", "crc32fast", "deflate64", "flate2", "indexmap 2.14.2", "memchr", + "nix", + "typed-path 0.12.4", "zopfli", "zstd", ] [[package]] name = "zlib-rs" -version = "0.5.2" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2" +checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112" [[package]] name = "zmij" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" [[package]] name = "zopfli" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfc5ee405f504cd4984ecc6f14d02d55cfda60fa4b689434ef4102aae150cd7" +checksum = "aaf7fc5d30c28483d93805c4a5e12b05bbb52407fa67c5f8bd552374cd01fb11" dependencies = [ "bumpalo", "crc32fast", @@ -15324,29 +15122,43 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "zruntime" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467fd80a2014d186319f14b81aef027aa466712f355c90158a0e6b39de60726d" +dependencies = [ + "futures-core", + "futures-io", + "rustix 1.1.5", + "socket2 0.6.5", + "tracing", + "windows-sys 0.61.2", +] + [[package]] name = "zstd" -version = "0.13.3" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +checksum = "db3ae9bf90af6e40197bef767eeefc46ad6397420fe873830bd85e5fbbfb3c70" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.2.4" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +checksum = "ded520f16b29e1a9b771c722221b2b0a0398c2316d9bb3c42b458a5414d7434b" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" +version = "2.1.2+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +checksum = "481ada9c543b2323cbb7bbdbb5249177fbf0188ed959ed2c15e4b22421c84ed3" dependencies = [ "cc", "pkg-config", @@ -15354,9 +15166,9 @@ dependencies = [ [[package]] name = "zune-core" -version = "0.4.12" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" +checksum = "d56377fd46368984a170bc5aac5567e52ca5da874caa60bea39fcbca78fb658b" [[package]] name = "zune-inflate" @@ -15369,67 +15181,102 @@ dependencies = [ [[package]] name = "zune-jpeg" -version = "0.4.21" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" +checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" dependencies = [ "zune-core", ] [[package]] name = "zvariant" -version = "5.7.0" +version = "5.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "999dd3be73c52b1fccd109a4a81e4fcd20fab1d3599c8121b38d04e1419498db" +checksum = "80bf6d6cd6a4b601acb64cfb8284cdc643fcfa75ef26ae3c46ec8aa4e8a1fbb7" dependencies = [ "endi", "enumflags2", "serde", - "url", - "winnow 0.7.13", + "winnow 1.0.4", + "zcheapstr", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.7.0" +version = "5.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6643fd0b26a46d226bd90d3f07c1b5321fe9bb7f04673cb37ac6d6883885b68e" +checksum = "ef2672456ba1cb54b5eaec136e63135b3c7495fb938e53b28a62e633496d486d" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 3.0.9", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.2.1" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599" +checksum = "bad0294361a320b694a328460dc73add56c306150f5cb6bfafc44446120008a3" dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.106", - "winnow 0.7.13", + "syn 3.0.9", + "winnow 1.0.4", ] [[package]] name = "zxcvbn" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad76e35b00ad53688d6b90c431cabe3cbf51f7a4a154739e04b63004ab1c736c" +checksum = "f9eaee90f4a795d1eb4ba6c51e1c1721d4784d550e8efa7b2600f29c867365e0" dependencies = [ "chrono", "derive_builder", "fancy-regex", - "itertools 0.13.0", + "itertools 0.14.0", "lazy_static", "regex", "time", "wasm-bindgen", "web-sys", ] + +[[patch.unused]] +name = "tauri" +version = "2.11.5" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" + +[[patch.unused]] +name = "tauri-build" +version = "2.6.3" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" + +[[patch.unused]] +name = "tauri-codegen" +version = "2.6.3" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" + +[[patch.unused]] +name = "tauri-macros" +version = "2.6.3" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" + +[[patch.unused]] +name = "tauri-runtime" +version = "2.11.3" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" + +[[patch.unused]] +name = "tauri-runtime-wry" +version = "2.11.4" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" + +[[patch.unused]] +name = "tauri-utils" +version = "2.9.3" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" diff --git a/Cargo.toml b/Cargo.toml index 74cf970c30c..fa24cca5042 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,99 +25,99 @@ rust-version = "1.90.0" repository = "https://github.com/modrinth/code" [workspace.dependencies] -actix-cors = "0.7.1" -actix-files = "0.6.8" -actix-http = "3.11.2" -actix-multipart = "0.7.2" -actix-rt = "2.11.0" -actix-web = "4.11.0" +actix-cors = "0.7.2" +actix-files = "0.7.2" +actix-http = "3.19.0" +actix-multipart = "0.8.5" +actix-rt = "2.15.0" +actix-web = "4.17.0" actix-web-prom = "0.10.0" -actix-ws = "0.3.0" -aes-gcm = "0.10.3" -anyhow = "1.0.100" -arc-swap = "1.7.1" -argon2 = { version = "0.5.3", features = ["std"] } +actix-ws = "0.4.0" +aes-gcm = "0.11.1" +anyhow = "1.0.104" +arc-swap = "1.9.3" +argon2 = { version = "0.6.0" } ariadne = { path = "packages/ariadne" } async-minecraft-ping = { path = "packages/async-minecraft-ping" } -async-recursion = "1.1.1" +async-recursion = "1.2.0" async-stripe = { version = "0.41.0", default-features = false, features = [ "runtime-tokio-hyper-rustls", ] } -async-trait = "0.1.89" -async-tungstenite = { version = "0.31.0", default-features = false, features = ["futures-03-sink"] } -async-walkdir = "2.1.0" -async_zip = "0.0.18" +async-trait = "0.1.92" +async-tungstenite = { version = "0.35.0", default-features = false, features = ["futures-03-sink"] } +async-walkdir = "2.2.0" +async_zip = "0.0.19" aws-sdk-s3 = { version = "=1.122.0", default-features = false, features = [ "default-https-client", "rt-tokio", "rustls", ] } -base64 = "0.22.1" -bitflags = "2.9.4" +base64 = "0.23.1" +bitflags = "2.13.2" blocklist = { version = "1.0.0" } -bon = "3.9.3" -bytemuck = "1.24.0" -bytes = "1.10.1" -cel = { version = "0.14.0", default-features = false, features = ["json", "regex"] } +bon = "3.10.2" +bytemuck = "1.25.2" +bytes = "1.12.1" +cel = { version = "0.15.0", default-features = false, features = ["json", "regex"] } censor = "0.3.0" -chardetng = "0.1.17" -chrono = "0.4.42" -chumsky = "0.9.3" -cidre = { version = "0.15.0", default-features = false, features = ["macos_15_0"] } -clap = "4.5.48" -clickhouse = "0.14.0" +chardetng = "1.0.0" +chrono = "0.4.45" +chumsky = "0.13.0" +cidre = { version = "0.29.0", default-features = false, features = ["macos_15_0"] } +clap = "4.6.7" +clickhouse = "0.15.3" color-eyre = "0.6.5" color-thief = "0.2.2" component-derive = { path = "packages/component-derive" } -const_format = "0.2.34" +const_format = "0.2.36" core-foundation = "0.10.1" -core-graphics = "0.24.0" +core-graphics = "0.25.0" daedalus = { path = "packages/daedalus" } -darling = { version = "0.23" } -dashmap = "6.1.0" +darling = { version = "0.24" } +dashmap = "6.2.1" data-url = "0.3.2" deadpool-redis = { git = "https://github.com/modrinth/deadpool", rev = "c7209b086829572f368f1194aba54bdea8dc540b", version = "0.23.0" } derive_more = "2.1.1" dioxus-devtools = "0.7.10" directories = "6.0.0" -dirs = "6.0.0" -discord-rich-presence = "1.0.0" +dirs = "7.0.0" +discord-rich-presence = "1.1.0" dotenv-build = "0.1.1" dotenvy = "0.15.7" dunce = "1.0.5" -either = "1.15.0" -encoding_rs = "0.8.35" -enumset = "1.1.10" -eyre = "0.6.12" -flate2 = "1.1.4" -fs4 = { version = "0.13.1", default-features = false } -futures = "0.3.31" +either = "1.19.0" +encoding_rs = "0.8.42" +enumset = "1.1.14" +eyre = "0.6.14" +flate2 = "1.1.10" +fs4 = { version = "1.1.0", default-features = false } +futures = "0.3.34" futures-lite = "2.6.1" -futures-util = "0.3.31" +futures-util = "0.3.34" governor = "0.10.4" heck = "0.5.0" hex = "0.4.3" -hickory-resolver = "0.25.2" -hkdf = "0.12.4" -hmac = "0.12.1" +hickory-resolver = "0.26.3" +hkdf = "0.13.0" +hmac = "0.13.0" httpdate = "1.0.3" -hyper = "1.7.0" -hyper-rustls = { version = "0.27.7", default-features = false, features = [ +hyper = "1.12.0" +hyper-rustls = { version = "0.27.10", default-features = false, features = [ "aws-lc-rs", "http1", "native-tokio", "tls12", ] } -hyper-util = "0.1.17" -iana-time-zone = "0.1.64" -image = { version = "0.25.8", default-features = false, features = ["rayon"] } -indexmap = "2.11.4" -indicatif = "0.18.0" -itertools = "0.14.0" -jemalloc_pprof = "0.8.1" -json-patch = { version = "4.1.0", default-features = false } -json5 = "1.3.1" -lettre = { version = "0.11.19", default-features = false, features = [ +hyper-util = "0.1.21" +iana-time-zone = "0.1.65" +image = { version = "0.25.10", default-features = false, features = ["rayon"] } +indexmap = "2.14.2" +indicatif = "0.18.6" +itertools = "0.15.0" +jemalloc_pprof = "0.9.0" +json-patch = { version = "4.2.0", default-features = false } +json5 = "1.3.3" +lettre = { version = "0.11.23", default-features = false, features = [ "aws-lc-rs", "builder", "hostname", @@ -130,61 +130,61 @@ lettre = { version = "0.11.19", default-features = false, features = [ ] } lingua = "=1.8.0" linkify = "0.11.0" -lz4_flex = { version = "0.11.5", default-features = false, features = [ +lz4_flex = { version = "0.14.0", default-features = false, features = [ "checked-decode", "safe-decode", "safe-encode", "std", ] } -maxminddb = "0.26.0" -md5 = "0.8.0" +maxminddb = "0.32.0" +md5 = "0.8.1" modrinth-content-management = { path = "packages/modrinth-content-management" } modrinth-log = { path = "packages/modrinth-log" } modrinth-util = { path = "packages/modrinth-util" } muralpay = { path = "packages/muralpay" } murmur2 = "0.1.0" -native-dialog = "0.9.2" +native-dialog = "0.9.7" neverbounce = { path = "packages/neverbounce" } notify = { version = "8.2.0", default-features = false } notify-debouncer-mini = { version = "0.7.0", default-features = false } objc2-app-kit = { version = "0.3.2", default-features = false } -p256 = "0.13.2" +p256 = "0.14.0" parking_lot = "0.12.5" paste = "1.0.15" path-util = { path = "packages/path-util" } pathdiff = "0.2.3" -phf = { version = "0.13.1", features = ["macros"] } -png = "0.18.0" +phf = { version = "0.14.0", features = ["macros"] } +png = "0.18.1" postcard = { version = "1.1.3", default-features = false, features = ["alloc"] } -postcard-bindgen = "0.8.0" +postcard-bindgen = "0.9.1" proc-macro2 = { version = "1.0" } prometheus = "0.14.0" -psl = "2.1.145" +psl = "2.1.243" pulldown-cmark = { version = "0.13.4", default-features = false } quartz_nbt = "0.2.9" -quick-xml = "0.38.3" +quick-xml = "0.42.0" quote = { version = "1.0" } -rand = "=0.8.5" # Locked on 0.8 until argon2 and p256 update to 0.9 -rand_chacha = "=0.3.1" # Locked on 0.3 until we can update rand to 0.9 -rdkafka = { version = "0.36.2", features = ["cmake-build"] } -redis = "1.4.1" -regex = "1.12.2" -reqwest = { version = "0.12.24", default-features = false } -rgb = "0.8.52" -rust_decimal = { version = "1.39.0", features = ["serde-with-float", "serde-with-str"] } -rust_iso3166 = "0.1.14" -rust-s3 = { version = "0.37.0", default-features = false, features = [ +rand = "=0.10.3" +rand_chacha = "=0.10.0" +rdkafka = { version = "0.39.0", features = ["cmake-build"] } +redis = "1.7.1" +regex = "1.13.1" +reqwest = { version = "0.13.5", default-features = false } +rgb = "0.8.53" +rust_decimal = { version = "1.43.0", features = ["serde-with-float", "serde-with-str"] } +rust_iso3166 = "0.2.0" +rust-s3 = { version = "0.38.0", default-features = false, features = [ "fail-on-err", "tags", "tokio-rustls-tls", ] } -rustls = "0.23.32" +rustls = "0.23.46" rustrict = { version = "0.7.39", default-features = false, features = ["censor"] } -rusty-money = "0.4.1" +rusty-money = "0.5.1" same-file = "1.0.6" -scalar_api_reference = { version = "0.2.2", default-features = false } +scalar_api_reference = { version = "0.2.16", default-features = false } secrecy = "0.10.3" -sentry = { version = "0.45.0", default-features = false, features = [ +sentry = { version = "0.49.3", default-features = false, features = [ "backtrace", "contexts", "debug-images", @@ -192,82 +192,82 @@ sentry = { version = "0.45.0", default-features = false, features = [ "reqwest", "rustls", ] } -serde = "1.0.228" +serde = "1.0.229" serde-binhum = { path = "packages/serde-binhum" } serde_bytes = "0.11.19" serde_cbor = "0.11.2" serde_ini = "0.2.0" -serde_json = "1.0.145" -serde_with = "3.15.0" -sha1 = "0.10.6" +serde_json = "1.0.154" +serde_with = "3.24.0" +sha1 = "0.11.0" sha1_smol = { version = "1.0.1", features = ["std"] } -sha2 = "0.10.9" -shlex = "1.3.0" -smallvec = "1.15.1" -spdx = "0.12.0" +sha2 = "0.11.1" +shlex = "2.0.1" +smallvec = "1.16.3" +spdx = "0.13.6" sqlx = { version = "0.8.6", default-features = false } sqlx-tracing = { path = "packages/sqlx-tracing" } -strum = "0.27.2" -syn = { version = "2.0" } -sysinfo = { version = "0.37.2", default-features = false } -tar = "0.4.44" -tauri = "2.11.5" -tauri-build = "2.6.3" -tauri-plugin-deep-link = "2.4.3" -tauri-plugin-dialog = "2.4.0" -tauri-plugin-fs = "2.4.5" -tauri-plugin-http = "2.5.7" -tauri-plugin-opener = "2.5.0" -tauri-plugin-os = "2.3.1" -tauri-plugin-single-instance = "2.3.4" +strum = "0.28.0" +syn = { version = "3.0" } +sysinfo = { version = "0.38.4", default-features = false } +tar = "0.4.46" +tauri = "2.12.4" +tauri-build = "2.7.3" +tauri-plugin-deep-link = "2.6.2" +tauri-plugin-dialog = "2.8.3" +tauri-plugin-fs = "2.7.1" +tauri-plugin-http = "2.8.3" +tauri-plugin-opener = "2.7.2" +tauri-plugin-os = "2.4.0" +tauri-plugin-single-instance = "2.5.4" tauri-plugin-updater = { git = "https://github.com/modrinth/plugins-workspace", rev = "0d30f2aa28ec668ce187d527da1c475da3c01cbc", default-features = false, features = [ "rustls-tls", "zip", ] } -tauri-plugin-window-state = "2.4.0" -tempfile = "3.23.0" +tauri-plugin-window-state = "2.5.0" +tempfile = "3.27.0" theseus = { path = "packages/app-lib" } -thiserror = "2.0.17" -tikv-jemalloc-ctl = "0.6.0" -tikv-jemallocator = "0.6.0" -tokio = "1.47.1" -tokio-stream = "0.1.17" -tokio-util = "0.7.16" -toml = "0.9.8" -totp-rs = "5.7.0" -tracing = "0.1.41" -tracing-actix-web = { version = "0.7.19", default-features = false } +thiserror = "2.0.21" +tikv-jemalloc-ctl = "0.7.0" +tikv-jemallocator = "0.7.0" +tokio = "1.54.0" +tokio-stream = "0.1.19" +tokio-util = "0.7.20" +toml = "1.1.8" +totp-rs = "6.0.0" +tracing = "0.1.44" +tracing-actix-web = { version = "0.7.25", default-features = false } tracing-ecs = "0.5.0" tracing-error = "0.2.1" -tracing-subscriber = "0.3.20" +tracing-subscriber = "0.3.23" ts-rs = "12.0.1" -typed-path = "0.12.0" -unicode-normalization = "0.1.24" -unicode-segmentation = "1.12.0" -url = "2.5.7" +typed-path = "0.13.0" +unicode-normalization = "0.1.26" +unicode-segmentation = "1.13.3" +url = "2.5.8" urlencoding = "2.1.3" -utoipa = { version = "5.4.0", features = ["actix_extras", "chrono", "decimal"] } -uuid = "1.18.1" -validator = "0.20.0" +utoipa = { version = "6.0.0", features = ["actix_extras", "chrono", "decimal"] } +uuid = "1.28.0" +validator = "0.21.0" webauthn-rs = "0.5.5" webauthn-rs-proto = "0.5.5" webp = { version = "0.3.1", default-features = false } -webview2-com = "0.38.0" # Should be updated in lockstep with wry -whoami = "1.6.1" -windows = "=0.61.3" # Locked on 0.61 until we can update windows-core to 0.62 -windows-core = "=0.61.2" # Locked on 0.61 until webview2-com updates to 0.62 -winreg = "0.55.0" +webview2-com = "0.39.1" # Should be updated in lockstep with wry +whoami = "2.1.3" +windows = "=0.62.2" +windows-core = "=0.62.2" +winreg = "0.56.0" woothee = "0.13.0" xredis = { path = "packages/xredis" } yaserde = "0.12.0" -zbus = "5.11.0" -zip = { version = "6.0.0", default-features = false, features = [ +zbus = "6.0.0" +zip = { version = "9.0.5", default-features = false, features = [ "bzip2", "deflate", "deflate64", "zstd", ] } -zxcvbn = "3.1.0" +zxcvbn = "3.1.1" [workspace.lints.clippy] bool_to_int_with_if = "warn" diff --git a/apps/daedalus_client/Cargo.toml b/apps/daedalus_client/Cargo.toml index af67313d83d..0bdf248fd09 100644 --- a/apps/daedalus_client/Cargo.toml +++ b/apps/daedalus_client/Cargo.toml @@ -22,7 +22,7 @@ indexmap = { workspace = true, features = ["serde"] } itertools = { workspace = true } md5 = { workspace = true } quick-xml = { workspace = true } -reqwest = { workspace = true, features = ["json", "rustls-tls-native-roots", "stream"] } +reqwest = { workspace = true, features = ["json", "rustls", "stream"] } rust-s3 = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } diff --git a/apps/labrinth/Cargo.toml b/apps/labrinth/Cargo.toml index 49511942cca..7169b8c6007 100644 --- a/apps/labrinth/Cargo.toml +++ b/apps/labrinth/Cargo.toml @@ -92,7 +92,7 @@ rand_chacha = { workspace = true } rdkafka = { workspace = true } redis = { workspace = true, features = ["ahash", "cluster", "cluster-async", "r2d2", "tokio-comp"] } regex = { workspace = true } -reqwest = { workspace = true, features = ["http2", "json", "multipart", "rustls-tls-webpki-roots"] } +reqwest = { workspace = true, features = ["http2", "json", "multipart", "rustls"] } rust_decimal = { workspace = true, features = ["serde-with-float", "serde-with-str"] } rust_iso3166 = { workspace = true } rustls.workspace = true diff --git a/packages/app-lib/Cargo.toml b/packages/app-lib/Cargo.toml index fcf1edca17b..56de2afdb89 100644 --- a/packages/app-lib/Cargo.toml +++ b/packages/app-lib/Cargo.toml @@ -75,9 +75,9 @@ reqwest = { workspace = true, features = [ "gzip", "http2", "json", - "macos-system-configuration", + "system-proxy", "multipart", - "rustls-tls-webpki-roots", + "rustls", "stream", ] } rgb = { workspace = true } diff --git a/packages/async-minecraft-ping/Cargo.toml b/packages/async-minecraft-ping/Cargo.toml index 7013f0f44f8..e1a8b40e29c 100644 --- a/packages/async-minecraft-ping/Cargo.toml +++ b/packages/async-minecraft-ping/Cargo.toml @@ -12,13 +12,13 @@ categories = ["api-bindings", "asynchronous"] [dependencies] async-trait = "0.1" -hickory-resolver = { version = "0.24", optional = true } +hickory-resolver = { version = "0.26", optional = true } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -thiserror = "1.0" +thiserror = "2.0" [dependencies.tokio] -version = "1.15" +version = "1.54" features = ["io-util", "net", "time"] [dev-dependencies] @@ -26,7 +26,7 @@ anyhow = "1.0" structopt = "0.3" [dev-dependencies.tokio] -version = "1.15" +version = "1.54" features = ["io-util", "macros", "net", "rt-multi-thread"] [features] diff --git a/packages/sqlx-tracing/Cargo.toml b/packages/sqlx-tracing/Cargo.toml index 3ce51c659a8..413c95b0ea3 100644 --- a/packages/sqlx-tracing/Cargo.toml +++ b/packages/sqlx-tracing/Cargo.toml @@ -19,10 +19,10 @@ sqlx = { version = "0.8", default-features = false, features = ["derive"] } tracing = { version = "0.1" } [dev-dependencies] -opentelemetry = "0.30" +opentelemetry = "0.33" opentelemetry-testing = "0.1" sqlx = { version = "0.8", features = ["runtime-tokio"] } -testcontainers = "0.25" +testcontainers = "0.25.2" tokio = { version = "1", features = ["macros", "rt-multi-thread"] } [features] From 5d1554258ea36647ef78a7fd50687a962ebf908f Mon Sep 17 00:00:00 2001 From: aecsocket <43144841+aecsocket@users.noreply.github.com> Date: Tue, 20 Oct 2026 16:49:37 +0100 Subject: [PATCH 2/4] update deps to compile --- Cargo.lock | 912 ++++++++++++++---- Cargo.toml | 28 +- apps/app/src/api/oauth_utils/auth_seal.rs | 11 +- apps/app/src/api/thumbnails.rs | 7 +- apps/daedalus_client/Cargo.toml | 2 +- apps/labrinth/src/auth/oauth/mod.rs | 6 +- .../labrinth/src/database/models/flow_item.rs | 6 +- apps/labrinth/src/database/models/ids.rs | 4 +- .../src/database/models/oauth_client_item.rs | 2 +- .../src/database/models/oauth_token_item.rs | 2 +- apps/labrinth/src/file_hosting/mock.rs | 2 +- apps/labrinth/src/file_hosting/s3_host.rs | 2 +- apps/labrinth/src/main.rs | 18 +- apps/labrinth/src/queue/file_scan.rs | 5 +- apps/labrinth/src/routes/internal/campaign.rs | 2 +- apps/labrinth/src/routes/internal/flows.rs | 49 +- apps/labrinth/src/routes/internal/pats.rs | 6 +- apps/labrinth/src/routes/internal/session.rs | 6 +- apps/labrinth/src/routes/v2/openapi.rs | 3 +- apps/labrinth/src/routes/v3/content/mod.rs | 2 +- apps/labrinth/src/routes/v3/oauth_clients.rs | 4 +- apps/labrinth/src/routes/v3/payouts.rs | 2 +- apps/labrinth/src/routes/v3/projects/mod.rs | 2 +- apps/labrinth/src/routes/v3/tags.rs | 12 +- apps/labrinth/src/search/filter/parse.rs | 110 ++- apps/labrinth/src/util/anrok.rs | 4 +- apps/labrinth/src/util/cel.rs | 55 +- apps/labrinth/src/validate/fabric.rs | 2 +- apps/labrinth/src/validate/forge.rs | 12 +- apps/labrinth/src/validate/liteloader.rs | 2 +- apps/labrinth/src/validate/mod.rs | 38 +- apps/labrinth/src/validate/modpack.rs | 8 +- apps/labrinth/src/validate/neoforge.rs | 6 +- apps/labrinth/src/validate/plugin.rs | 25 +- apps/labrinth/src/validate/quilt.rs | 2 +- apps/labrinth/src/validate/rift.rs | 2 +- apps/labrinth/src/validate/risugami.rs | 16 +- apps/labrinth/src/validate/shader.rs | 14 +- .../src/api/instance/shared/publish.rs | 3 +- .../game_options/locales/archive.rs | 6 +- .../game_options/options_file.rs | 6 +- .../game_options/pack_updates.rs | 6 +- .../api/instance/synced_packs/operations.rs | 14 +- packages/app-lib/src/api/jre.rs | 24 +- packages/app-lib/src/api/logs.rs | 8 +- packages/app-lib/src/api/minecraft_skins.rs | 7 +- packages/app-lib/src/api/server_address.rs | 21 +- packages/app-lib/src/api/worlds.rs | 30 +- packages/app-lib/src/error.rs | 6 +- .../content_store/adapters/verified_files.rs | 12 +- .../content_store/commands/acquire_content.rs | 4 +- .../state/content_store/commands/migration.rs | 6 +- .../app-lib/src/state/content_store/store.rs | 16 +- .../commands/embedded_content_metadata.rs | 14 +- packages/app-lib/src/state/minecraft_auth.rs | 15 +- packages/app-lib/src/state/process.rs | 45 +- packages/app-lib/src/util/content_hash.rs | 6 +- packages/app-lib/src/util/fetch.rs | 4 +- packages/app-lib/src/util/io.rs | 6 +- packages/ariadne/src/ids.rs | 10 +- packages/async-minecraft-ping/src/server.rs | 13 +- packages/modrinth-maxmind/examples/maxmind.rs | 6 +- packages/modrinth-maxmind/src/lib.rs | 11 +- packages/muralpay/src/payout.rs | 7 - packages/serde-binhum/src/lib.rs | 5 +- 65 files changed, 1208 insertions(+), 494 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 73333153a54..158e34d1c04 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,7 +27,7 @@ checksum = "2aff07ada3254fc02618cb7850da91dceb23b5dbda53c6676ccbb28ba504f150" dependencies = [ "actix-utils", "actix-web", - "derive_more", + "derive_more 2.1.1", "futures-util", "log", "once_cell", @@ -46,7 +46,7 @@ dependencies = [ "actix-web", "bitflags 2.13.2", "bytes", - "derive_more", + "derive_more 2.1.1", "futures-core", "http-range", "log", @@ -69,10 +69,10 @@ dependencies = [ "actix-utils", "base64 0.22.1", "bitflags 2.13.2", - "brotli", + "brotli 9.0.0", "bytes", "bytestring", - "derive_more", + "derive_more 2.1.1", "encoding_rs", "flate2", "foldhash 0.2.0", @@ -116,7 +116,7 @@ dependencies = [ "actix-multipart-derive", "actix-utils", "actix-web", - "derive_more", + "derive_more 2.1.1", "futures-core", "futures-util", "httparse", @@ -226,7 +226,7 @@ dependencies = [ "bytestring", "cfg-if", "cookie 0.16.2", - "derive_more", + "derive_more 2.1.1", "encoding_rs", "foldhash 0.2.0", "futures-core", @@ -384,19 +384,34 @@ dependencies = [ "equator", ] +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + [[package]] name = "alloc-no-stdlib" version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2fb6cfd47bf496ff64095c20eaba0c201404ee38714d4142fcfa1dc334fcc7a" +[[package]] +name = "alloc-stdlib" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" +dependencies = [ + "alloc-no-stdlib 2.0.4", +] + [[package]] name = "alloc-stdlib" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b5c1865780388bfa186411ab5f247819487fc4864c6e9c3106611fa347586e1" dependencies = [ - "alloc-no-stdlib", + "alloc-no-stdlib 3.0.0", ] [[package]] @@ -594,6 +609,27 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" +[[package]] +name = "ashpd" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f3f79755c74fd155000314eb349864caa787c6592eace6c6882dad873d9c39" +dependencies = [ + "enumflags2", + "futures-channel", + "futures-util", + "rand 0.9.5", + "raw-window-handle", + "serde", + "serde_repr", + "tokio", + "url", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "zbus 5.19.0", +] + [[package]] name = "asn1-rs" version = "0.6.2" @@ -1872,15 +1908,36 @@ dependencies = [ "syn 3.0.9", ] +[[package]] +name = "brotli" +version = "8.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" +dependencies = [ + "alloc-no-stdlib 2.0.4", + "alloc-stdlib 0.2.4", + "brotli-decompressor 5.0.3", +] + [[package]] name = "brotli" version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8b851b75c23ca7873623d612fe49bd1989aeb03d08fb9432187eb253d3d4c6b" dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", + "alloc-no-stdlib 3.0.0", + "alloc-stdlib 0.3.0", + "brotli-decompressor 6.0.1", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" +dependencies = [ + "alloc-no-stdlib 2.0.4", + "alloc-stdlib 0.2.4", ] [[package]] @@ -1889,8 +1946,8 @@ version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "941cd9bd4ddab83cb46fa5a2d428f1c857b24ac78cb876cf7beb710840934bd7" dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", + "alloc-no-stdlib 3.0.0", + "alloc-stdlib 0.3.0", ] [[package]] @@ -2456,7 +2513,7 @@ version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cae36683101b2899f48bd31f8db9839437356188e3b1ff23096e73dab09ba8fe" dependencies = [ - "brotli", + "brotli 9.0.0", "bzip2", "compression-core", "deflate64", @@ -2552,6 +2609,12 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "convert_case" version = "0.10.0" @@ -2592,6 +2655,24 @@ dependencies = [ "version_check", ] +[[package]] +name = "cookie_store" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eac901828f88a5241ee0600950ab981148a18f2f756900ffba1b125ca6a3ef9" +dependencies = [ + "cookie 0.18.2", + "document-features", + "idna", + "log", + "publicsuffix", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] + [[package]] name = "cookie_store" version = "0.22.1" @@ -2831,19 +2912,46 @@ dependencies = [ "rand_core 0.10.1", ] +[[package]] +name = "cssparser" +version = "0.29.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" +dependencies = [ + "cssparser-macros 0.6.1", + "dtoa-short", + "itoa", + "matches", + "phf 0.10.1", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + [[package]] name = "cssparser" version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c9cdaae01d5ed7882b04d795e7f752f46ff52d2fa3b50a20d28c464510bba98" dependencies = [ - "cssparser-macros", + "cssparser-macros 0.7.1", "dtoa-short", "itoa", "phf 0.13.1", "smallvec", ] +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.119", +] + [[package]] name = "cssparser-macros" version = "0.7.1" @@ -3254,6 +3362,19 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.119", +] + [[package]] name = "derive_more" version = "2.1.1" @@ -3457,6 +3578,15 @@ dependencies = [ "syn 3.0.9", ] +[[package]] +name = "dlib" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a" +dependencies = [ + "libloading 0.7.4", +] + [[package]] name = "dlopen2" version = "0.8.2" @@ -3522,12 +3652,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fac5fca71e65e94cc718a6e2af65d6e0f9c6027751c2aa562fbb5087fda639bc" dependencies = [ "bit-set 0.8.0", - "cssparser", + "cssparser 0.37.0", "foldhash 0.2.0", - "html5ever", + "html5ever 0.39.0", "precomputed-hash", - "selectors", - "tendril", + "selectors 0.38.0", + "tendril 0.5.1", ] [[package]] @@ -3542,6 +3672,12 @@ version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + [[package]] name = "dpi" version = "0.1.2" @@ -4117,6 +4253,16 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a" +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + [[package]] name = "futures" version = "0.3.34" @@ -4250,6 +4396,15 @@ dependencies = [ "slab", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "gdk" version = "0.18.2" @@ -4937,6 +5092,18 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "html5ever" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" +dependencies = [ + "log", + "mac", + "markup5ever 0.14.1", + "match_token", +] + [[package]] name = "html5ever" version = "0.39.0" @@ -4944,7 +5111,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8" dependencies = [ "log", - "markup5ever", + "markup5ever 0.39.0", ] [[package]] @@ -5181,7 +5348,7 @@ dependencies = [ "tokio", "tower-service", "tracing", - "windows-registry", + "windows-registry 0.6.1", ] [[package]] @@ -5553,7 +5720,7 @@ checksum = "4d40460c0ce33d6ce4b0630ad68ff63d6661961c48b6dba35e5a4d81cfb48222" dependencies = [ "socket2 0.6.5", "widestring", - "windows-registry", + "windows-registry 0.6.1", "windows-result 0.4.1", "windows-sys 0.61.2", ] @@ -5854,12 +6021,13 @@ dependencies = [ [[package]] name = "keyboard-types" -version = "0.8.3" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" dependencies = [ "bitflags 2.13.2", "serde", + "unicode-segmentation", ] [[package]] @@ -5897,6 +6065,18 @@ dependencies = [ "libc", ] +[[package]] +name = "kuchikiki" +version = "0.8.8-speedreader" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" +dependencies = [ + "cssparser 0.29.6", + "html5ever 0.29.1", + "indexmap 2.14.2", + "selectors 0.24.0", +] + [[package]] name = "labrinth" version = "2.7.0" @@ -5931,7 +6111,7 @@ dependencies = [ "component-derive", "const_format", "dashmap", - "derive_more", + "derive_more 2.1.1", "dioxus-devtools", "dotenv-build", "dotenvy", @@ -7062,6 +7242,12 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecbdfe44b1bd960b68170b417450a628c43f7cf56bb3c5317e61cb230ee7f226" +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + [[package]] name = "maplit" version = "1.0.2" @@ -7081,6 +7267,20 @@ dependencies = [ "tracing", ] +[[package]] +name = "markup5ever" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" +dependencies = [ + "log", + "phf 0.11.3", + "phf_codegen 0.11.3", + "string_cache 0.8.9", + "string_cache_codegen 0.5.4", + "tendril 0.4.3", +] + [[package]] name = "markup5ever" version = "0.39.0" @@ -7088,10 +7288,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de" dependencies = [ "log", - "tendril", + "tendril 0.5.1", "web_atoms", ] +[[package]] +name = "match_token" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "matchers" version = "0.2.0" @@ -7101,6 +7312,12 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + [[package]] name = "matchit" version = "0.8.4" @@ -7315,7 +7532,7 @@ name = "modrinth-util" version = "0.0.0" dependencies = [ "actix-web", - "derive_more", + "derive_more 2.1.1", "dotenvy", "eyre", "modrinth-log", @@ -7354,9 +7571,9 @@ dependencies = [ [[package]] name = "muda" -version = "0.20.0" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cca139e57da4383727f189e43e66e84fa372347027fc996f9f1a007ec0a37996" +checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" dependencies = [ "crossbeam-channel", "dpi", @@ -7370,7 +7587,7 @@ dependencies = [ "png 0.18.1", "serde", "thiserror 2.0.21", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -7386,7 +7603,7 @@ dependencies = [ "arc-swap", "bytes", "chrono", - "derive_more", + "derive_more 2.1.1", "reqwest 0.13.5", "rust_decimal", "rust_iso3166", @@ -7508,6 +7725,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + [[package]] name = "nom" version = "7.1.3" @@ -7777,7 +8000,6 @@ dependencies = [ "objc2-core-foundation", "objc2-core-graphics", "objc2-foundation", - "objc2-quartz-core", ] [[package]] @@ -8411,7 +8633,7 @@ checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" name = "path-util" version = "0.0.0" dependencies = [ - "derive_more", + "derive_more 2.1.1", "itertools 0.15.0", "serde", "typed-path 0.13.0", @@ -8458,6 +8680,35 @@ dependencies = [ "getrandom 0.4.3", ] +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_shared 0.8.0", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_shared 0.11.3", +] + [[package]] name = "phf" version = "0.13.1" @@ -8480,6 +8731,26 @@ dependencies = [ "serde", ] +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", +] + [[package]] name = "phf_codegen" version = "0.13.1" @@ -8490,6 +8761,36 @@ dependencies = [ "phf_shared 0.13.1", ] +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.8", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared 0.11.3", + "rand 0.8.8", +] + [[package]] name = "phf_generator" version = "0.13.1" @@ -8510,6 +8811,20 @@ dependencies = [ "phf_shared 0.14.0", ] +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "phf_macros" version = "0.13.1" @@ -8536,13 +8851,40 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher 1.0.4", +] + [[package]] name = "phf_shared" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ - "siphasher", + "siphasher 1.0.4", ] [[package]] @@ -8551,7 +8893,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6fd9027e2d9319be6349febd1db4e8d02aa544921200c9b777720ac34a3aa89" dependencies = [ - "siphasher", + "siphasher 1.0.4", ] [[package]] @@ -8939,7 +9281,13 @@ dependencies = [ ] [[package]] -name = "proc-macro2" +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" @@ -9227,6 +9575,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b" dependencies = [ "memchr", + "serde", "tokio", ] @@ -9261,7 +9610,7 @@ dependencies = [ "getrandom 0.4.3", "lru-slab", "rand 0.10.3", - "rand_pcg", + "rand_pcg 0.10.2", "ring", "rustc-hash 2.1.3", "rustls 0.23.46", @@ -9336,6 +9685,7 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc", + "rand_pcg 0.2.1", ] [[package]] @@ -9452,6 +9802,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + [[package]] name = "rand_pcg" version = "0.10.2" @@ -9721,7 +10080,7 @@ dependencies = [ "base64 0.22.1", "bytes", "cookie 0.18.2", - "cookie_store", + "cookie_store 0.22.1", "encoding_rs", "futures-channel", "futures-core", @@ -9790,6 +10149,7 @@ dependencies = [ "rustls-platform-verifier", "serde", "serde_json", + "serde_urlencoded", "sync_wrapper", "tokio", "tokio-rustls 0.26.6", @@ -9828,10 +10188,11 @@ dependencies = [ [[package]] name = "rfd" -version = "0.16.0" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15ad77d9e70a92437d8f74c35d99b4e4691128df018833e99f90bcd36152672" +checksum = "ef2bee61e6cffa4635c72d7d81a84294e28f0930db0ddcb0f66d10244674ebed" dependencies = [ + "ashpd", "block2", "dispatch2", "glib-sys", @@ -9847,7 +10208,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -10350,6 +10711,12 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -10425,6 +10792,24 @@ dependencies = [ "libc", ] +[[package]] +name = "selectors" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" +dependencies = [ + "bitflags 1.3.2", + "cssparser 0.29.6", + "derive_more 0.99.20", + "fxhash", + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc 0.2.0", + "smallvec", +] + [[package]] name = "selectors" version = "0.38.0" @@ -10432,15 +10817,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8adfa1c298912827b8a28b223b3b874357397ae706e6190acd9bf28cee99114d" dependencies = [ "bitflags 2.13.2", - "cssparser", - "derive_more", + "cssparser 0.37.0", + "derive_more 2.1.1", "log", "new_debug_unreachable", "phf 0.13.1", - "phf_codegen", + "phf_codegen 0.13.1", "precomputed-hash", "rustc-hash 2.1.3", - "servo_arc", + "servo_arc 0.4.3", "smallvec", ] @@ -10896,6 +11281,16 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "servo_arc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + [[package]] name = "servo_arc" version = "0.4.3" @@ -11031,6 +11426,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "siphasher" version = "1.0.4" @@ -11411,7 +11812,7 @@ dependencies = [ name = "sqlx-tracing" version = "0.2.0" dependencies = [ - "derive_more", + "derive_more 2.1.1", "futures", "opentelemetry 0.33.1", "opentelemetry-testing", @@ -11446,12 +11847,6 @@ 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 = "str_stack" version = "0.1.1" @@ -11464,6 +11859,19 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046d549b88a663d317cd04d39696fca5f77db4db44e1db65bfb9dee7f9e680bd" +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.11.3", + "precomputed-hash", + "serde", +] + [[package]] name = "string_cache" version = "0.9.0" @@ -11476,6 +11884,18 @@ dependencies = [ "precomputed-hash", ] +[[package]] +name = "string_cache_codegen" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", +] + [[package]] name = "string_cache_codegen" version = "0.6.1" @@ -11785,9 +12205,9 @@ checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" [[package]] name = "tao" -version = "0.37.1" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f37f381f4e048e6cdf038b5705f8cf14ad108279d46eb968140a7b291aba9400" +checksum = "e9fa4618f999c4249db1681cba0a19b890718f274de7fa93c445d46bd3a8a999" dependencies = [ "bitflags 2.13.2", "block2", @@ -11811,14 +12231,15 @@ dependencies = [ "objc2-app-kit", "objc2-foundation", "objc2-ui-kit", + "once_cell", "parking_lot", "percent-encoding", "raw-window-handle", "tao-macros", "unicode-segmentation", "url", - "windows 0.62.2", - "windows-core 0.62.2", + "windows 0.61.3", + "windows-core 0.61.2", "windows-version", "x11-dl", ] @@ -11853,14 +12274,13 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f316751027fc2644221d1a448564d519efb07067fda584879d9cda966391d212" +version = "2.11.5" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" dependencies = [ "anyhow", "bytes", "cookie 0.18.2", - "dirs 7.0.0", + "dirs 6.0.0", "dunce", "embed_plist", "getrandom 0.3.4", @@ -11900,18 +12320,17 @@ dependencies = [ "webkit2gtk", "webview2-com", "window-vibrancy", - "windows 0.62.2", + "windows 0.61.3", ] [[package]] name = "tauri-build" -version = "2.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "641dd5fd297c99ab92717b0428cca5b9c6f960b2ac96ca131b3eebc9d70b8ddc" +version = "2.6.3" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" dependencies = [ "anyhow", "cargo_toml", - "dirs 7.0.0", + "dirs 6.0.0", "glob", "heck 0.5.0", "json-patch", @@ -11920,8 +12339,6 @@ dependencies = [ "semver", "serde", "serde_json", - "static_vcruntime", - "strsim 0.11.1", "tauri-codegen", "tauri-utils", "tauri-winres", @@ -11930,16 +12347,15 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6585c5b536c00f039d12ce70a9755172d5423bbcfd3969863baa70314c3e02f" +version = "2.6.3" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" dependencies = [ - "base64 0.23.1", - "brotli", + "base64 0.22.1", + "brotli 8.0.4", "ico", "json-patch", "plist", - "png 0.18.1", + "png 0.17.16", "proc-macro2", "quote", "semver", @@ -11957,9 +12373,8 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e83a0cfa1bae376e8fbbdc0b1692707aed50cd6072ce85cae4789af5d6c19f" +version = "2.6.3" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -11971,9 +12386,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.7.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fb21a77e8f94e8beb3325e583102488659365af0a3948b7ea244c5b779c291" +checksum = "692a77abd8b8773e107a42ec0e05b767b8d2b7ece76ab36c6c3947e34df9f53f" dependencies = [ "anyhow", "glob", @@ -11982,14 +12397,15 @@ dependencies = [ "serde", "serde_json", "tauri-utils", + "toml 0.9.12+spec-1.1.0", "walkdir", ] [[package]] name = "tauri-plugin-deep-link" -version = "2.6.2" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b3c64e24ebcbc63aaa2d88a9c51e2507084b46620baf39ecb0baa0738a08bb4" +checksum = "cd67112fb1131834c2a7398ffcba520dbbf62c17de3b10329acd1a3554b1a9bb" dependencies = [ "dunce", "plist", @@ -12002,15 +12418,15 @@ dependencies = [ "thiserror 2.0.21", "tracing", "url", - "windows-registry", - "windows-result 0.4.1", + "windows-registry 0.5.3", + "windows-result 0.3.4", ] [[package]] name = "tauri-plugin-dialog" -version = "2.8.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7461aaacf1901915ea7b9f5cd74f8224a351ed96af0a62c07fce934003cb34b" +checksum = "0beee42a4002bc695550599b011728d9dfabf82f767f134754ed6655e434824e" dependencies = [ "log", "raw-window-handle", @@ -12026,15 +12442,13 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.7.1" +version = "2.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d58eb1d4984e535f47a642ffec09a2da6f5c18a12b5902d12126cb7626d628b" +checksum = "ed390cc669f937afeb8b28032ce837bac8ea023d975a2e207375ec05afaf1804" dependencies = [ "anyhow", "dunce", "glob", - "log", - "objc2-foundation", "percent-encoding", "schemars 0.8.22", "serde", @@ -12044,18 +12458,18 @@ dependencies = [ "tauri-plugin", "tauri-utils", "thiserror 2.0.21", - "toml 1.1.8+spec-1.1.0", + "toml 0.9.12+spec-1.1.0", "url", ] [[package]] name = "tauri-plugin-http" -version = "2.8.3" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c57e3451553f95a1db3bfed6a358a77ce5080b6399a242c6eadac113f97abd2" +checksum = "d8f069451c4e87e7e2636b7f065a4c52866c4ce5e60e2d53fa1038edb6d184dc" dependencies = [ "bytes", - "cookie_store", + "cookie_store 0.21.1", "data-url", "http 1.5.0", "regex", @@ -12069,14 +12483,14 @@ dependencies = [ "thiserror 2.0.21", "tokio", "url", - "urlpattern", + "urlpattern 0.3.0", ] [[package]] name = "tauri-plugin-opener" -version = "2.7.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53810be1b4fed22bb6ac3f4cab5a2b80d9391d1af436bda145607532bc0bb219" +checksum = "786156aa8e89e03d271fbd3fe642207da8e65f3c961baa9e2930f332bf80a1f5" dependencies = [ "dunce", "glob", @@ -12090,15 +12504,15 @@ dependencies = [ "tauri-plugin", "thiserror 2.0.21", "url", - "windows 0.62.2", + "windows 0.61.3", "zbus 5.19.0", ] [[package]] name = "tauri-plugin-os" -version = "2.4.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd69d272ab772b30462779de12a40f837616831c794c71531bea91474e1061f" +checksum = "77a1c77ebf6f20417ab2a74e8c310820ba52151406d0c80fbcea7df232e3f6ba" dependencies = [ "gethostname", "log", @@ -12114,17 +12528,16 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.5.4" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561cd99484561bc39c954768e7b41a66cebbe1ac3d9d081c34361f740c489e2c" +checksum = "fb9cac815bf11c4a80fb498666bcdad66d65b89e3ae24669e47806febb76389c" dependencies = [ "serde", "serde_json", "tauri", "thiserror 2.0.21", - "tokio", "tracing", - "windows-sys 0.61.2", + "windows-sys 0.60.2", "zbus 5.19.0", ] @@ -12162,9 +12575,9 @@ dependencies = [ [[package]] name = "tauri-plugin-window-state" -version = "2.5.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6815cab7b212f9cfe16a9d79d8d22f9e14159e4a9460f7dec1467167a008e3" +checksum = "2d5f6fe3291bfa609c7e0b0ee3bedac294d94c7018934086ce782c1d0f2a468e" dependencies = [ "bitflags 2.13.2", "log", @@ -12177,9 +12590,8 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c55766d99cea69055904d1735b93c2049302b2e09effd462120deb5581d78e9" +version = "2.11.3" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" dependencies = [ "cookie 0.18.2", "dpi", @@ -12197,14 +12609,13 @@ dependencies = [ "url", "webkit2gtk", "webview2-com", - "windows 0.62.2", + "windows 0.61.3", ] [[package]] name = "tauri-runtime-wry" -version = "2.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d61892587aea2a85245bcaec98c6fe46268874c0a0deae5535fb71ca7b93eae" +version = "2.11.4" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" dependencies = [ "gtk", "http 1.5.0", @@ -12222,26 +12633,27 @@ dependencies = [ "url", "webkit2gtk", "webview2-com", - "windows 0.62.2", + "windows 0.61.3", "wry", ] [[package]] name = "tauri-utils" -version = "2.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "362ab21cd4cc713f2a02b1a9b5688198b1541cfb6907c4281e9190e0f0ef4aa3" +version = "2.9.3" +source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" dependencies = [ "anyhow", - "brotli", + "brotli 8.0.4", "cargo_metadata", "ctor", "dom_query", "dunce", "glob", + "html5ever 0.29.1", "http 1.5.0", "infer 0.22.0", "json-patch", + "kuchikiki", "log", "memchr", "phf 0.13.1", @@ -12259,20 +12671,19 @@ dependencies = [ "thiserror 2.0.21", "toml 1.1.8+spec-1.1.0", "url", - "urlpattern", + "urlpattern 0.6.0", "uuid 1.28.0", "walkdir", ] [[package]] name = "tauri-winres" -version = "0.3.7" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c52bb6904475a6ca662f15ef787f18ade61d5740a1ee12c45d3b748efdb6f796" +checksum = "fd21509dd1fa9bd355dc29894a6ff10635880732396aa38c0066c1e6c1ab8074" dependencies = [ - "dunce", "embed-resource", - "toml 1.1.8+spec-1.1.0", + "toml 0.9.12+spec-1.1.0", ] [[package]] @@ -12288,6 +12699,17 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + [[package]] name = "tendril" version = "0.5.1" @@ -12366,7 +12788,7 @@ dependencies = [ "daedalus", "dashmap", "data-url", - "derive_more", + "derive_more 2.1.1", "dirs 7.0.0", "discord-rich-presence", "dotenvy", @@ -12429,8 +12851,8 @@ dependencies = [ "urlencoding", "uuid 1.28.0", "whoami 2.1.3", - "windows 0.62.2", - "windows-core 0.62.2", + "windows 0.61.3", + "windows-core 0.61.2", "winreg", "zbus 6.0.0", "zip 9.0.5", @@ -12485,8 +12907,8 @@ dependencies = [ "urlencoding", "uuid 1.28.0", "webview2-com", - "windows 0.62.2", - "windows-core 0.62.2", + "windows 0.61.3", + "windows-core 0.61.2", ] [[package]] @@ -12736,6 +13158,21 @@ dependencies = [ "toml_edit 0.20.2", ] +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.14.2", + "serde_core", + "serde_spanned 1.1.2", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + [[package]] name = "toml" version = "1.1.8+spec-1.1.0" @@ -12760,6 +13197,15 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_datetime" version = "1.1.2+spec-1.1.0" @@ -13078,12 +13524,12 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.25.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b9c52859a94554803ccd4a24b98f74148ebc73b90676d783f3490b1bff9d72" +checksum = "045979e3f037cd18ad1cb2a419dfda133c5c29c9f3453370079f2255d46c257e" dependencies = [ "crossbeam-channel", - "dirs 7.0.0", + "dirs 6.0.0", "libappindicator", "muda", "objc2", @@ -13095,7 +13541,7 @@ dependencies = [ "png 0.18.1", "serde", "thiserror 2.0.21", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -13251,6 +13697,47 @@ dependencies = [ "libc", ] +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + [[package]] name = "unicase" version = "2.10.0" @@ -13377,6 +13864,18 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + [[package]] name = "urlpattern" version = "0.6.0" @@ -13762,6 +14261,66 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wayland-backend" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38a91b4eaddff87b1cd1074985e3713da4af2c49742d1b356b2c01670a67a078" +dependencies = [ + "cc", + "downcast-rs", + "rustix 1.1.5", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c36a0f861ad76d0901f2800b46321410d9f73f2ea88aac0650d86c32688073" +dependencies = [ + "bitflags 2.13.2", + "rustix 1.1.5", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" +dependencies = [ + "bitflags 2.13.2", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "338e30461b3a2b67d70eb30a6d89f8e0c93a833e07d2ae89085cd070c4a00ac0" +dependencies = [ + "proc-macro2", + "quick-xml 0.41.0", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be" +dependencies = [ + "dlib", + "log", + "pkg-config", +] + [[package]] name = "web-sys" version = "0.3.106" @@ -13789,9 +14348,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba8b815c1b593dc0baf78dd0f4fc8fdb2de53198fb1163738093e9a311c33fb3" dependencies = [ "phf 0.13.1", - "phf_codegen", - "string_cache", - "string_cache_codegen", + "phf_codegen 0.13.1", + "string_cache 0.9.0", + "string_cache_codegen 0.6.1", ] [[package]] @@ -13944,14 +14503,16 @@ dependencies = [ [[package]] name = "webview2-com" -version = "0.39.1" +version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f89fca7a704cee10dcb3654c1dbb8941d1783132f1917358af75bec37a7d7e6" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows 0.62.2", - "windows-core 0.62.2", + "windows 0.61.3", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", ] [[package]] @@ -13967,13 +14528,13 @@ dependencies = [ [[package]] name = "webview2-com-sys" -version = "0.39.1" +version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a07132775117d6065853d9d1178157b8c90e228de47129d6bce2c7edebedfb" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" dependencies = [ "thiserror 2.0.21", - "windows 0.62.2", - "windows-core 0.62.2", + "windows 0.61.3", + "windows-core 0.61.2", ] [[package]] @@ -14066,17 +14627,16 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window-vibrancy" -version = "0.8.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111e51caca442cafd9bab396628ac4d814880eaea4e63dfd76a12e9f342b5580" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" dependencies = [ "objc2", "objc2-app-kit", "objc2-core-foundation", "objc2-foundation", - "objc2-quartz-core", "raw-window-handle", - "windows-sys 0.61.2", + "windows-sys 0.59.0", "windows-version", ] @@ -14225,6 +14785,17 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "windows-registry" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + [[package]] name = "windows-registry" version = "0.6.1" @@ -14605,6 +15176,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + [[package]] name = "winnow" version = "1.0.4" @@ -14666,15 +15243,15 @@ checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "wry" -version = "0.57.0" +version = "0.56.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a819957a01b3119af85e638a38d242af76dbc87d130dca67bfd0441072e21ff0" +checksum = "375becb4aded9913f736443cf88000c6311478db69814cc06070465e4cc44c98" dependencies = [ "base64 0.22.1", "block2", "cookie 0.18.2", "crossbeam-channel", - "dirs 7.0.0", + "dirs 6.0.0", "dom_query", "dpi", "dunce", @@ -14702,8 +15279,8 @@ dependencies = [ "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows 0.62.2", - "windows-core 0.62.2", + "windows 0.61.3", + "windows-core 0.61.2", "windows-version", "x11-dl", ] @@ -14875,6 +15452,7 @@ dependencies = [ "rustix 1.1.5", "serde", "serde_repr", + "tokio", "tracing", "uds_windows", "uuid 1.28.0", @@ -15197,6 +15775,7 @@ dependencies = [ "endi", "enumflags2", "serde", + "url", "winnow 1.0.4", "zcheapstr", "zvariant_derive", @@ -15245,38 +15824,3 @@ dependencies = [ "wasm-bindgen", "web-sys", ] - -[[patch.unused]] -name = "tauri" -version = "2.11.5" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" - -[[patch.unused]] -name = "tauri-build" -version = "2.6.3" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" - -[[patch.unused]] -name = "tauri-codegen" -version = "2.6.3" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" - -[[patch.unused]] -name = "tauri-macros" -version = "2.6.3" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" - -[[patch.unused]] -name = "tauri-runtime" -version = "2.11.3" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" - -[[patch.unused]] -name = "tauri-runtime-wry" -version = "2.11.4" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" - -[[patch.unused]] -name = "tauri-utils" -version = "2.9.3" -source = "git+https://github.com/tauri-apps/tauri?rev=7cc68e74ff6981f5c50a52a67d56c5eb2d227188#7cc68e74ff6981f5c50a52a67d56c5eb2d227188" diff --git a/Cargo.toml b/Cargo.toml index fa24cca5042..467f1cd090e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -169,7 +169,7 @@ rand_chacha = "=0.10.0" rdkafka = { version = "0.39.0", features = ["cmake-build"] } redis = "1.7.1" regex = "1.13.1" -reqwest = { version = "0.13.5", default-features = false } +reqwest = { version = "0.13.5", default-features = false, features = ["query", "form"] } rgb = "0.8.53" rust_decimal = { version = "1.43.0", features = ["serde-with-float", "serde-with-str"] } rust_iso3166 = "0.2.0" @@ -211,20 +211,20 @@ strum = "0.28.0" syn = { version = "3.0" } sysinfo = { version = "0.38.4", default-features = false } tar = "0.4.46" -tauri = "2.12.4" -tauri-build = "2.7.3" -tauri-plugin-deep-link = "2.6.2" -tauri-plugin-dialog = "2.8.3" -tauri-plugin-fs = "2.7.1" -tauri-plugin-http = "2.8.3" -tauri-plugin-opener = "2.7.2" -tauri-plugin-os = "2.4.0" -tauri-plugin-single-instance = "2.5.4" +tauri = "=2.11.5" +tauri-build = "=2.6.3" +tauri-plugin-deep-link = "=2.4.3" +tauri-plugin-dialog = "=2.4.0" +tauri-plugin-fs = "=2.4.5" +tauri-plugin-http = "=2.5.7" +tauri-plugin-opener = "=2.5.0" +tauri-plugin-os = "=2.3.1" +tauri-plugin-single-instance = "=2.3.4" tauri-plugin-updater = { git = "https://github.com/modrinth/plugins-workspace", rev = "0d30f2aa28ec668ce187d527da1c475da3c01cbc", default-features = false, features = [ "rustls-tls", "zip", ] } -tauri-plugin-window-state = "2.5.0" +tauri-plugin-window-state = "=2.4.0" tempfile = "3.27.0" theseus = { path = "packages/app-lib" } thiserror = "2.0.21" @@ -252,10 +252,10 @@ validator = "0.21.0" webauthn-rs = "0.5.5" webauthn-rs-proto = "0.5.5" webp = { version = "0.3.1", default-features = false } -webview2-com = "0.39.1" # Should be updated in lockstep with wry +webview2-com = "=0.38.2" # Must match the bindings used by the pinned Tauri/Wry whoami = "2.1.3" -windows = "=0.62.2" -windows-core = "=0.62.2" +windows = "=0.61.3" # Must match the bindings used by the pinned Tauri/Wry +windows-core = "=0.61.2" winreg = "0.56.0" woothee = "0.13.0" xredis = { path = "packages/xredis" } diff --git a/apps/app/src/api/oauth_utils/auth_seal.rs b/apps/app/src/api/oauth_utils/auth_seal.rs index 2fef424b74b..86221f57c6a 100644 --- a/apps/app/src/api/oauth_utils/auth_seal.rs +++ b/apps/app/src/api/oauth_utils/auth_seal.rs @@ -21,9 +21,9 @@ use hkdf::Hkdf; use p256::PublicKey; use p256::SecretKey; use p256::ecdh::diffie_hellman; +use p256::elliptic_curve::Generate; use p256::pkcs8::{DecodePublicKey, EncodePublicKey}; -use rand::RngCore; -use rand::rngs::OsRng; +use rand::Rng; use sha2::Sha256; const SEAL_VERSION: u8 = 2; @@ -38,9 +38,10 @@ pub struct AuthSeal { impl AuthSeal { pub fn generate() -> Self { - let secret = SecretKey::random(&mut OsRng); - let mut nonce_bytes = [0u8; 16]; - OsRng.fill_bytes(&mut nonce_bytes); + let mut rng = rand::rng(); + let secret = SecretKey::generate_from_rng(&mut rng); + let mut nonce_bytes = [0u8; 16]; + rng.fill_bytes(&mut nonce_bytes); Self { secret, diff --git a/apps/app/src/api/thumbnails.rs b/apps/app/src/api/thumbnails.rs index 1a4b669bddd..eb0a32db70b 100644 --- a/apps/app/src/api/thumbnails.rs +++ b/apps/app/src/api/thumbnails.rs @@ -62,7 +62,12 @@ fn create_thumbnail( hash.update(metadata.len().to_le_bytes()); hash.update(modified.as_nanos().to_le_bytes()); hash.update(size.to_le_bytes()); - let target = cache.join(format!("{:x}.png", hash.finalize())); + let hash: String = hash + .finalize() + .iter() + .map(|byte| format!("{byte:02x}")) + .collect(); + let target = cache.join(format!("{hash}.png")); if target.is_file() { return Ok(target); } diff --git a/apps/daedalus_client/Cargo.toml b/apps/daedalus_client/Cargo.toml index 0bdf248fd09..107f26177c9 100644 --- a/apps/daedalus_client/Cargo.toml +++ b/apps/daedalus_client/Cargo.toml @@ -21,7 +21,7 @@ futures = { workspace = true } indexmap = { workspace = true, features = ["serde"] } itertools = { workspace = true } md5 = { workspace = true } -quick-xml = { workspace = true } +quick-xml = { workspace = true, features = ["serialize"] } reqwest = { workspace = true, features = ["json", "rustls", "stream"] } rust-s3 = { workspace = true } serde = { workspace = true, features = ["derive"] } diff --git a/apps/labrinth/src/auth/oauth/mod.rs b/apps/labrinth/src/auth/oauth/mod.rs index 10d58fbc8c7..69f7692cc52 100644 --- a/apps/labrinth/src/auth/oauth/mod.rs +++ b/apps/labrinth/src/auth/oauth/mod.rs @@ -20,8 +20,8 @@ use actix_web::http::header::{CACHE_CONTROL, LOCATION, PRAGMA}; use actix_web::web::{Data, Query}; use actix_web::{HttpRequest, HttpResponse, get, post, web}; use chrono::{DateTime, Duration}; -use rand::distributions::Alphanumeric; -use rand::{Rng, SeedableRng}; +use rand::distr::Alphanumeric; +use rand::{RngExt, SeedableRng}; use rand_chacha::ChaCha20Rng; use serde::{Deserialize, Serialize}; use xredis::RedisPool; @@ -434,7 +434,7 @@ fn authenticate_client_token_request( } fn generate_access_token() -> String { - let random = ChaCha20Rng::from_entropy() + let random = ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(60) .map(char::from) diff --git a/apps/labrinth/src/database/models/flow_item.rs b/apps/labrinth/src/database/models/flow_item.rs index 8fb8fa555bf..244997a4cea 100644 --- a/apps/labrinth/src/database/models/flow_item.rs +++ b/apps/labrinth/src/database/models/flow_item.rs @@ -4,8 +4,8 @@ use crate::models::pats::Scopes; use crate::{auth::AuthProvider, routes::internal::flows::TempUser}; use chrono::Duration; use eyre::{Result, WrapErr}; -use rand::Rng; -use rand::distributions::Alphanumeric; +use rand::RngExt; +use rand::distr::Alphanumeric; use rand_chacha::ChaCha20Rng; use rand_chacha::rand_core::SeedableRng; use serde_binhum::serde_binhum; @@ -123,7 +123,7 @@ impl DBFlow { expires: Duration, redis: &RedisPool, ) -> Result { - let state = ChaCha20Rng::from_entropy() + let state = ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(32) .map(char::from) diff --git a/apps/labrinth/src/database/models/ids.rs b/apps/labrinth/src/database/models/ids.rs index 1de4fed2678..d5feec55d65 100644 --- a/apps/labrinth/src/database/models/ids.rs +++ b/apps/labrinth/src/database/models/ids.rs @@ -25,7 +25,7 @@ macro_rules! generate_ids { pub async fn $function_name( con: &mut PgTransaction<'_>, ) -> Result<$return_type> { - let mut rng = ChaCha20Rng::from_entropy(); + let mut rng = ChaCha20Rng::from_rng(&mut rand::rng()); let length = 8; let mut id = random_base62_rng(&mut rng, length); let mut retry_count = 0; @@ -72,7 +72,7 @@ macro_rules! generate_bulk_ids { // We re-acquire a thread-local RNG handle for each uniqueness loop for // the bulk generator future to be `Send + Sync`. let base = - random_base62_rng_range(&mut rand::thread_rng(), 1, 10) + random_base62_rng_range(&mut rand::rng(), 1, 10) as i64; let ids = (0..count).map(|x| base + x as i64).collect::>(); diff --git a/apps/labrinth/src/database/models/oauth_client_item.rs b/apps/labrinth/src/database/models/oauth_client_item.rs index 47d25894542..ef311980304 100644 --- a/apps/labrinth/src/database/models/oauth_client_item.rs +++ b/apps/labrinth/src/database/models/oauth_client_item.rs @@ -244,7 +244,7 @@ impl DBOAuthClient { } pub fn hash_secret(secret: &str) -> String { - format!("{:x}", sha2::Sha512::digest(secret.as_bytes())) + hex::encode(sha2::Sha512::digest(secret.as_bytes())) } } diff --git a/apps/labrinth/src/database/models/oauth_token_item.rs b/apps/labrinth/src/database/models/oauth_token_item.rs index dc2a29407e5..7a223444031 100644 --- a/apps/labrinth/src/database/models/oauth_token_item.rs +++ b/apps/labrinth/src/database/models/oauth_token_item.rs @@ -96,6 +96,6 @@ impl DBOAuthAccessToken { } pub fn hash_token(token: &str) -> String { - format!("{:x}", sha2::Sha512::digest(token.as_bytes())) + hex::encode(sha2::Sha512::digest(token.as_bytes())) } } diff --git a/apps/labrinth/src/file_hosting/mock.rs b/apps/labrinth/src/file_hosting/mock.rs index 8f18da5334f..898218c377a 100644 --- a/apps/labrinth/src/file_hosting/mock.rs +++ b/apps/labrinth/src/file_hosting/mock.rs @@ -34,7 +34,7 @@ impl FileHost for MockHost { path.parent().ok_or(FileHostingError::InvalidFilename)?, )?; let content_sha1 = sha1::Sha1::digest(&file_bytes).encode_hex(); - let content_sha512 = format!("{:x}", sha2::Sha512::digest(&file_bytes)); + let content_sha512 = hex::encode(sha2::Sha512::digest(&file_bytes)); std::fs::write(path, &*file_bytes)?; Ok(UploadFileData { diff --git a/apps/labrinth/src/file_hosting/s3_host.rs b/apps/labrinth/src/file_hosting/s3_host.rs index 558e4d5086b..6ba35e92937 100644 --- a/apps/labrinth/src/file_hosting/s3_host.rs +++ b/apps/labrinth/src/file_hosting/s3_host.rs @@ -101,7 +101,7 @@ impl FileHost for S3Host { file_bytes: Bytes, ) -> Result { let content_sha1 = sha1::Sha1::digest(&file_bytes).encode_hex(); - let content_sha512 = format!("{:x}", sha2::Sha512::digest(&file_bytes)); + let content_sha512 = hex::encode(sha2::Sha512::digest(&file_bytes)); let content_length = file_bytes.len() as u32; let bucket = self.get_bucket(file_publicity); diff --git a/apps/labrinth/src/main.rs b/apps/labrinth/src/main.rs index 27e89aa6330..be86ecc89ce 100644 --- a/apps/labrinth/src/main.rs +++ b/apps/labrinth/src/main.rs @@ -73,12 +73,11 @@ fn main() -> std::io::Result<()> { // // DSN is from SENTRY_DSN env variable. // Has no effect if not set. - let sentry = sentry::init(sentry::ClientOptions { - release: sentry::release_name!(), - traces_sample_rate: ENV.SENTRY_TRACES_SAMPLE_RATE, - environment: Some((&ENV.SENTRY_ENVIRONMENT).into()), - ..Default::default() - }); + let mut sentry_options = sentry::ClientOptions::new() + .traces_sample_rate(ENV.SENTRY_TRACES_SAMPLE_RATE) + .environment(ENV.SENTRY_ENVIRONMENT.as_str()); + sentry_options.release = sentry::release_name!(); + let sentry = sentry::init(sentry_options); if sentry.is_enabled() { info!("Enabled Sentry integration"); unsafe { @@ -482,9 +481,10 @@ fn add_error_content(response: &mut Response) { if response.content.is_empty() { response.content.insert( "application/json".to_string(), - Content::new(Some(utoipa::openapi::Ref::from_schema_name( - "ApiError", - ))), + Content::new(Some(utoipa::openapi::Ref::from_schema_name( + "ApiError", + ))) + .into(), ); } } diff --git a/apps/labrinth/src/queue/file_scan.rs b/apps/labrinth/src/queue/file_scan.rs index ffb60f4a080..059d08cc8a3 100644 --- a/apps/labrinth/src/queue/file_scan.rs +++ b/apps/labrinth/src/queue/file_scan.rs @@ -591,7 +591,10 @@ fn extract_override_files(data: &[u8]) -> Result> { let mut file = zip .by_index(i) .wrap_err_with(|| eyre!("reading file {i}"))?; - let name = file.name().to_string(); + let name = file + .name() + .wrap_err_with(|| eyre!("decoding filename for file {i}"))? + .into_owned(); if file.is_dir() { continue; diff --git a/apps/labrinth/src/routes/internal/campaign.rs b/apps/labrinth/src/routes/internal/campaign.rs index 4e317bfdbd3..43aaee209e8 100644 --- a/apps/labrinth/src/routes/internal/campaign.rs +++ b/apps/labrinth/src/routes/internal/campaign.rs @@ -3,7 +3,7 @@ use actix_web::{HttpRequest, get, post, web}; use base64::Engine; use chrono::{DateTime, Duration, Utc}; use eyre::eyre; -use hmac::{Hmac, Mac}; +use hmac::{Hmac, KeyInit, Mac}; use reqwest::Method; use rust_decimal::Decimal; use serde::{Deserialize, Serialize}; diff --git a/apps/labrinth/src/routes/internal/flows.rs b/apps/labrinth/src/routes/internal/flows.rs index b69dd4f38a7..8a803af5f23 100644 --- a/apps/labrinth/src/routes/internal/flows.rs +++ b/apps/labrinth/src/routes/internal/flows.rs @@ -34,7 +34,6 @@ use actix_http::header::LOCATION; use actix_web::http::StatusCode; use actix_web::web::{Data, Query}; use actix_web::{HttpRequest, HttpResponse, delete, get, patch, post, web}; -use argon2::password_hash::SaltString; use argon2::{Argon2, PasswordHash, PasswordHasher, PasswordVerifier}; use ariadne::ids::base62_impl::{parse_base62, to_base62}; use ariadne::ids::random_base62_rng; @@ -42,10 +41,10 @@ use base64::Engine; use base64::engine::general_purpose::URL_SAFE_NO_PAD; use chrono::{Duration, Utc}; use eyre::eyre; -use hmac::{Hmac, Mac}; +use hmac::{Hmac, KeyInit, Mac}; use lettre::message::Mailbox; -use rand::Rng; -use rand::distributions::Alphanumeric; +use rand::RngExt; +use rand::distr::Alphanumeric; use rand_chacha::ChaCha20Rng; use rand_chacha::rand_core::SeedableRng; use reqwest::header::AUTHORIZATION; @@ -1791,7 +1790,7 @@ pub async fn discord_community_link( }; let now = Utc::now().timestamp(); - let nonce = ChaCha20Rng::from_entropy() + let nonce = ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(32) .map(char::from) @@ -2142,9 +2141,9 @@ impl ReadyAccountRegisterFlow { .wrap_internal_err("generating user ID")?; let hasher = Argon2::default(); - let salt = SaltString::generate(&mut ChaCha20Rng::from_entropy()); + let salt = rand::random::<[u8; 16]>(); let password_hash = hasher - .hash_password(register_flow.password.as_bytes(), &salt) + .hash_password_with_salt(register_flow.password.as_bytes(), &salt) .wrap_internal_err("hashing password")? .to_string(); @@ -2441,16 +2440,17 @@ async fn validate_2fa_code( pool: &PgPool, transaction: &mut PgTransaction<'_>, ) -> Result { - let totp = totp_rs::TOTP::new( - totp_rs::Algorithm::SHA1, - 6, - 1, - 30, - totp_rs::Secret::Encoded(secret) - .to_bytes() - .map_err(|_| AuthenticationError::InvalidCredentials)?, - ) - .map_err(|_| AuthenticationError::InvalidCredentials)?; + let totp = totp_rs::Builder::new() + .with_algorithm(totp_rs::Algorithm::SHA1) + .with_digits(6) + .with_skew(1) + .with_step_duration(30) + .with_secret( + totp_rs::Secret::try_from_base32(secret) + .map_err(|_| AuthenticationError::InvalidCredentials)?, + ) + .build() + .map_err(|_| AuthenticationError::InvalidCredentials)?; const TOTP_NAMESPACE: &str = "used_totp:v4"; let mut conn = redis.connect().await?; @@ -2464,10 +2464,7 @@ async fn validate_2fa_code( return Err(AuthenticationError::InvalidCredentials); } - if totp - .check_current(input.as_str()) - .map_err(|_| AuthenticationError::InvalidCredentials)? - { + if totp.check_current(input.as_str()).is_some() { conn.set(&key, "", Some(60)).await?; Ok(true) @@ -2616,8 +2613,8 @@ pub async fn begin_2fa_flow( .1; if !user.has_totp.unwrap_or(false) { - let string = totp_rs::Secret::generate_secret(); - let encoded = string.to_encoded(); + let string = totp_rs::Secret::generate(); + let encoded = string.to_base32(); let flow = DBFlow::Initialize2FA { user_id: user.id.into(), @@ -2735,7 +2732,7 @@ pub async fn finish_2fa_flow( let mut codes = Vec::new(); for _ in 0..6 { - let mut rng = ChaCha20Rng::from_entropy(); + let mut rng = ChaCha20Rng::from_rng(&mut rand::rng()); let val = random_base62_rng(&mut rng, 11); sqlx::query!( @@ -3148,9 +3145,9 @@ pub async fn change_password( } let hasher = Argon2::default(); - let salt = SaltString::generate(&mut ChaCha20Rng::from_entropy()); + let salt = rand::random::<[u8; 16]>(); let password_hash = hasher - .hash_password(new_password.as_bytes(), &salt) + .hash_password_with_salt(new_password.as_bytes(), &salt) .wrap_internal_err("hashing password")? .to_string(); diff --git a/apps/labrinth/src/routes/internal/pats.rs b/apps/labrinth/src/routes/internal/pats.rs index 63e4f10eba8..ee102773232 100644 --- a/apps/labrinth/src/routes/internal/pats.rs +++ b/apps/labrinth/src/routes/internal/pats.rs @@ -8,8 +8,8 @@ use crate::routes::ApiError; use actix_web::web::{self, Data}; use actix_web::{HttpRequest, HttpResponse, delete, get, patch, post}; use chrono::{DateTime, Utc}; -use rand::Rng; -use rand::distributions::Alphanumeric; +use rand::RngExt; +use rand::distr::Alphanumeric; use rand_chacha::ChaCha20Rng; use rand_chacha::rand_core::SeedableRng; use xredis::RedisPool; @@ -143,7 +143,7 @@ pub async fn create_pat( .await .wrap_internal_err("generating pat ID")?; - let token = ChaCha20Rng::from_entropy() + let token = ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(60) .map(char::from) diff --git a/apps/labrinth/src/routes/internal/session.rs b/apps/labrinth/src/routes/internal/session.rs index 4da3609e15d..75de4a9a043 100644 --- a/apps/labrinth/src/routes/internal/session.rs +++ b/apps/labrinth/src/routes/internal/session.rs @@ -15,8 +15,8 @@ use actix_web::http::header::AUTHORIZATION; use actix_web::web::Data; use actix_web::{HttpRequest, HttpResponse, delete, get, post, web}; use chrono::{DateTime, Utc}; -use rand::distributions::Alphanumeric; -use rand::{Rng, SeedableRng}; +use rand::distr::Alphanumeric; +use rand::{RngExt, SeedableRng}; use rand_chacha::ChaCha20Rng; use serde::Serialize; use woothee::parser::Parser; @@ -100,7 +100,7 @@ pub async fn issue_session( let metadata = get_session_metadata(&req).await?; - let session = ChaCha20Rng::from_entropy() + let session = ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(60) .map(char::from) diff --git a/apps/labrinth/src/routes/v2/openapi.rs b/apps/labrinth/src/routes/v2/openapi.rs index 98f4a5ac47c..b90bc0428b5 100644 --- a/apps/labrinth/src/routes/v2/openapi.rs +++ b/apps/labrinth/src/routes/v2/openapi.rs @@ -162,7 +162,8 @@ fn add_file_hash_map_response_extension(operation: &mut Option) { } fn add_file_hash_map_response_extension_to_response(response: &mut Response) { - let Some(content) = response.content.get_mut("application/json") else { + let Some(RefOr::T(content)) = response.content.get_mut("application/json") + else { return; }; let Some(RefOr::T(Schema::Object(schema))) = content.schema.as_mut() else { diff --git a/apps/labrinth/src/routes/v3/content/mod.rs b/apps/labrinth/src/routes/v3/content/mod.rs index eed8b065ffa..5b2f3b2b0d7 100644 --- a/apps/labrinth/src/routes/v3/content/mod.rs +++ b/apps/labrinth/src/routes/v3/content/mod.rs @@ -563,7 +563,7 @@ fn hash_serializable(value: &impl Serialize) -> String { .expect("serializing cache key should not fail"); let mut hasher = Sha256::new(); hasher.update(bytes); - format!("{:x}", hasher.finalize()) + hex::encode(hasher.finalize()) } fn parse_version_id(version_id: &str) -> Option { diff --git a/apps/labrinth/src/routes/v3/oauth_clients.rs b/apps/labrinth/src/routes/v3/oauth_clients.rs index 339cb0ffdf5..1eab76c35d3 100644 --- a/apps/labrinth/src/routes/v3/oauth_clients.rs +++ b/apps/labrinth/src/routes/v3/oauth_clients.rs @@ -34,7 +34,7 @@ use actix_web::{HttpRequest, HttpResponse, delete, get, patch, post, web}; use ariadne::ids::base62_impl::parse_base62; use chrono::Utc; use itertools::Itertools; -use rand::{Rng, SeedableRng, distributions::Alphanumeric}; +use rand::{RngExt, SeedableRng, distr::Alphanumeric}; use rand_chacha::ChaCha20Rng; use serde::{Deserialize, Serialize}; use validator::Validate; @@ -654,7 +654,7 @@ pub async fn revoke_oauth_authorization( } fn generate_oauth_client_secret() -> String { - ChaCha20Rng::from_entropy() + ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(32) .map(char::from) diff --git a/apps/labrinth/src/routes/v3/payouts.rs b/apps/labrinth/src/routes/v3/payouts.rs index c199d1bff09..f8bf9529643 100644 --- a/apps/labrinth/src/routes/v3/payouts.rs +++ b/apps/labrinth/src/routes/v3/payouts.rs @@ -20,7 +20,7 @@ use crate::util::gotenberg::GotenbergClient; use actix_web::{HttpRequest, HttpResponse, delete, get, post, web}; use chrono::{DateTime, Duration, Utc}; use hex::ToHex; -use hmac::{Hmac, Mac}; +use hmac::{Hmac, KeyInit, Mac}; use modrinth_util::decimal::Decimal2dp; use reqwest::Method; use rust_decimal::Decimal; diff --git a/apps/labrinth/src/routes/v3/projects/mod.rs b/apps/labrinth/src/routes/v3/projects/mod.rs index e61c949815a..e79fd75a202 100644 --- a/apps/labrinth/src/routes/v3/projects/mod.rs +++ b/apps/labrinth/src/routes/v3/projects/mod.rs @@ -213,7 +213,7 @@ pub async fn random_projects_get( }; if params.project_type.is_some() { - project_ids.shuffle(&mut rand::thread_rng()); + project_ids.shuffle(&mut rand::rng()); project_ids.truncate(params.count as usize); } diff --git a/apps/labrinth/src/routes/v3/tags.rs b/apps/labrinth/src/routes/v3/tags.rs index a0d9764b88a..83804861484 100644 --- a/apps/labrinth/src/routes/v3/tags.rs +++ b/apps/labrinth/src/routes/v3/tags.rs @@ -239,12 +239,12 @@ pub async fn license_list() -> HttpResponse { let licenses = spdx::identifiers::LICENSES; let mut results: Vec = Vec::with_capacity(licenses.len()); - for (short, name, _) in licenses { - results.push(License { - short: short.to_string(), - name: name.to_string(), - }); - } + for license in licenses { + results.push(License { + short: license.name.to_string(), + name: license.full_name.to_string(), + }); + } HttpResponse::Ok().json(results) } diff --git a/apps/labrinth/src/search/filter/parse.rs b/apps/labrinth/src/search/filter/parse.rs index 3d7973f0384..657d0ba1466 100644 --- a/apps/labrinth/src/search/filter/parse.rs +++ b/apps/labrinth/src/search/filter/parse.rs @@ -1,5 +1,3 @@ -use std::ops::Range; - use chumsky::{Parser, prelude::*}; use thiserror::Error; @@ -15,9 +13,9 @@ pub struct FilterParseError { message: String, } -fn keyword( +fn keyword<'src>( keyword: &'static str, -) -> BoxedParser<'static, char, (), Simple> { +) -> Boxed<'src, 'src, &'src str, (), extra::Err>> { let keyword = keyword .chars() @@ -29,7 +27,8 @@ fn keyword( ])) .boxed() }); - let boundary = filter(|character: &char| { + let boundary = any() + .filter(|character: &char| { !character.is_ascii_alphanumeric() && !"_.".contains(*character) }) .rewind() @@ -39,13 +38,12 @@ fn keyword( keyword.then_ignore(boundary).boxed() } -fn quoted_literal( +fn quoted_literal<'src>( quote: char, -) -> BoxedParser<'static, char, FilterLiteral, Simple> { +) -> Boxed<'src, 'src, &'src str, FilterLiteral, extra::Err>> { let escaped = just('\\').ignore_then(any()); - let character = escaped.or(filter(move |character| { - *character != quote && *character != '\\' - })); + let character = escaped.or(any() + .filter(move |character| *character != quote && *character != '\\')); character .repeated() @@ -55,13 +53,15 @@ fn quoted_literal( .boxed() } -fn literal_parser() -> BoxedParser<'static, char, FilterLiteral, Simple> { +fn literal_parser<'src>() +-> Boxed<'src, 'src, &'src str, FilterLiteral, extra::Err>> { let quoted = choice(( quoted_literal('\''), quoted_literal('"'), quoted_literal('`'), )); - let bare = filter(|character: &char| { + let bare = any() + .filter(|character: &char| { !character.is_whitespace() && !",[]()".contains(*character) }) .repeated() @@ -72,21 +72,29 @@ fn literal_parser() -> BoxedParser<'static, char, FilterLiteral, Simple> { quoted.or(bare).padded().boxed() } -fn field_name_parser() -> BoxedParser<'static, char, String, Simple> { - filter(|character: &char| { +fn field_name_parser<'src>() +-> Boxed<'src, 'src, &'src str, String, extra::Err>> { + any() + .filter(|character: &char| { character.is_ascii_alphabetic() || "_.".contains(*character) }) .then( - filter(|character: &char| { - character.is_ascii_alphanumeric() || "_.".contains(*character) + any() + .filter(|character: &char| { + character.is_ascii_alphanumeric() + || "_.".contains(*character) }) - .repeated(), + .repeated() + .collect::>(), ) - .map(|(first, rest)| std::iter::once(first).chain(rest).collect::()) + .map(|(first, rest)| { + std::iter::once(first).chain(rest).collect::() + }) .boxed() } -fn parser() -> impl Parser> { +fn parser<'src>() +-> impl Parser<'src, &'src str, FilterExpr, extra::Err>> { let field_name = field_name_parser(); let field = choice(( field_name.clone(), @@ -103,6 +111,7 @@ fn parser() -> impl Parser> { .separated_by(just(',').padded()) .at_least(1) .allow_trailing() + .collect::>() .delimited_by(just('[').padded(), just(']').padded()); let comparison = choice(( @@ -150,23 +159,38 @@ fn parser() -> impl Parser> { .clone() .or(expression.delimited_by(just('(').padded(), just(')').padded())) .padded(); - let unary = keyword("NOT").padded().repeated().then(atom).map( - |(operators, expression)| { + let unary = keyword("NOT") + .padded() + .repeated() + .collect::>() + .then(atom) + .map(|(operators, expression)| { operators.into_iter().fold(expression, |expression, ()| { FilterExpr::Not(Box::new(expression)) }) - }, - ); + }); let and = unary .clone() - .then(keyword("AND").padded().ignore_then(unary).repeated()) + .then( + keyword("AND") + .padded() + .ignore_then(unary) + .repeated() + .collect::>(), + ) .map(|(first, rest)| { FilterExpr::and(std::iter::once(first).chain(rest)) .expect("an expression always contains one operand") }); and.clone() - .then(keyword("OR").padded().ignore_then(and).repeated()) + .then( + keyword("OR") + .padded() + .ignore_then(and) + .repeated() + .collect::>(), + ) .map(|(first, rest)| { FilterExpr::or(std::iter::once(first).chain(rest)) .expect("an expression always contains one operand") @@ -177,12 +201,12 @@ fn parser() -> impl Parser> { } pub fn parse_expression(input: &str) -> Result { - parser().parse(input).map_err(|errors| { + parser().parse(input).into_result().map_err(|errors| { let error = errors .into_iter() .next() - .unwrap_or_else(|| Simple::custom(0..0, "invalid filter")); - let Range { start, .. } = error.span(); + .unwrap_or_else(|| Rich::custom((0..0).into(), "invalid filter")); + let start = error.span().start; FilterParseError { position: start, message: error.to_string(), @@ -263,4 +287,34 @@ mod tests { }; assert_eq!(predicate.field.as_str(), "notification"); } + + #[test] + fn preserves_list_values_and_trailing_comma() { + let FilterExpr::Predicate(predicate) = + parse_expression("categories nOt iN [fabric, forge,]").unwrap() + else { + panic!("expected a predicate"); + }; + assert_eq!( + predicate.condition, + FilterCondition::In { + values: vec![ + FilterLiteral::String("fabric".into()), + FilterLiteral::String("forge".into()), + ], + negated: true, +} + ); + assert!(parse_expression("categories IN []").is_err()); + } + + #[test] + fn preserves_repeated_unary_not() { + let FilterExpr::Not(expression) = + parse_expression("NOT NOT open_source = true").unwrap() + else { + panic!("expected an outer NOT expression"); + }; + assert!(matches!(*expression, FilterExpr::Not(_))); + } } diff --git a/apps/labrinth/src/util/anrok.rs b/apps/labrinth/src/util/anrok.rs index 451d0e5b8fb..0e893d31803 100644 --- a/apps/labrinth/src/util/anrok.rs +++ b/apps/labrinth/src/util/anrok.rs @@ -1,5 +1,5 @@ use chrono::{DateTime, Utc}; -use rand::Rng; +use rand::RngExt; use reqwest::{Method, StatusCode}; use serde::de::DeserializeOwned; use serde::{Deserialize, Serialize}; @@ -285,7 +285,7 @@ impl Client { n += 1; // 1000 + ~500, 2000 + ~1000, 5000 + ~2500 let base = (n - 1).pow(2) * 1000 + 1000; - let random = rand::thread_rng().gen_range(0..(base / 2)); + let random = rand::rng().random_range(0..(base / 2)); tokio::time::sleep(std::time::Duration::from_millis( base + random, )) diff --git a/apps/labrinth/src/util/cel.rs b/apps/labrinth/src/util/cel.rs index 63da48bcfb4..51bb1c303de 100644 --- a/apps/labrinth/src/util/cel.rs +++ b/apps/labrinth/src/util/cel.rs @@ -16,21 +16,25 @@ use url::{Host, Url}; const MAX_PREPROCESSED_SIZE: usize = 1_048_576; pub struct Context<'a> { - inner: CelContext<'a>, + inner: CelContext<'a, 'a>, } impl Default for Context<'_> { fn default() -> Self { let mut inner = CelContext::default(); - inner.add_function("url.parse", parse_url); - inner.add_function("url.is_valid", is_valid_url); + inner + .add_function("url.parse", parse_url) + .expect("`url.parse` must not conflict with a standard overload"); + inner.add_function("url.is_valid", is_valid_url).expect( + "`url.is_valid` must not conflict with a standard overload", + ); Self { inner } } } impl<'a> Deref for Context<'a> { - type Target = CelContext<'a>; + type Target = CelContext<'a, 'a>; fn deref(&self) -> &Self::Target { &self.inner @@ -234,16 +238,20 @@ enum LexState { BlockComment, } -fn directive_parser() -> impl Parser> { +fn directive_parser<'src>() +-> impl Parser<'src, &'src str, Directive, extra::Err>> { let horizontal_whitespace = one_of(" \t").repeated(); - let identifier = filter(|character: &char| { + let identifier = any() + .filter(|character: &char| { character.is_ascii_alphabetic() || *character == '_' }) .then( - filter(|character: &char| { + any() + .filter(|character: &char| { character.is_ascii_alphanumeric() || *character == '_' }) - .repeated(), + .repeated() + .collect::>(), ) .map(|(first, rest)| { std::iter::once(first).chain(rest).collect::() @@ -252,11 +260,10 @@ fn directive_parser() -> impl Parser> { let kind = just("define").to(true).or(just("bind").to(false)); horizontal_whitespace - .clone() .ignore_then(just('#')) - .then_ignore(horizontal_whitespace.clone()) + .then_ignore(horizontal_whitespace) .ignore_then(kind) - .then_ignore(horizontal_whitespace.clone().at_least(1)) + .then_ignore(horizontal_whitespace.at_least(1)) .then(identifier) .then_ignore(horizontal_whitespace.at_least(1)) .then(expression) @@ -288,11 +295,12 @@ fn preprocess(source: &str) -> Result { if directive { let directive = line.trim_end_matches(['\r', '\n']); - let directive = - directive_parser().parse(directive).map_err(|errors| { - let error = - errors.into_iter().next().unwrap_or_else(|| { - Simple::custom(0..0, "invalid directive") + let directive = directive_parser() + .parse(directive) + .into_result() + .map_err(|errors| { + let error = errors.into_iter().next().unwrap_or_else(|| { + Rich::custom((0..0).into(), "invalid directive") }); PreprocessorError::InvalidDirective { line: line_index + 1, @@ -879,4 +887,19 @@ URL.fragment == "fragment" assert!(error.to_string().contains("url.parse")); } + + #[test] + fn preserves_directive_identifiers_and_horizontal_whitespace() { + let preprocessed = super::preprocess( + "\t# define\t_NAME2\t42\n#bind result_2 _NAME2\nresult_2", + ) + .unwrap(); + assert_eq!(preprocessed.expression.trim(), "result_2"); + assert_eq!(preprocessed.bindings.len(), 1); + assert_eq!(preprocessed.bindings[0].name, "result_2"); + assert_eq!(preprocessed.bindings[0].expression, "42"); + assert_eq!(preprocessed.bindings[0].line, 2); + assert!(super::preprocess("#define 2NAME 42\ntrue").is_err()); + assert!(super::preprocess("#bind name\ntrue").is_err()); +} } diff --git a/apps/labrinth/src/validate/fabric.rs b/apps/labrinth/src/validate/fabric.rs index 4fe380915e4..7c159694e63 100644 --- a/apps/labrinth/src/validate/fabric.rs +++ b/apps/labrinth/src/validate/fabric.rs @@ -62,7 +62,7 @@ impl super::Validator for FabricValidator { )); } - Ok(validate_pack_formats(archive)) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/forge.rs b/apps/labrinth/src/validate/forge.rs index 09b16ac2a4c..024cd1ac213 100644 --- a/apps/labrinth/src/validate/forge.rs +++ b/apps/labrinth/src/validate/forge.rs @@ -30,14 +30,16 @@ impl super::Validator for ForgeValidator { ) -> Result { if archive.by_name("META-INF/mods.toml").is_err() && archive.by_name("META-INF/MANIFEST.MF").is_err() - && !archive.file_names().any(|x| x.ends_with(".class")) + && !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.ends_with(".class")) { return Ok(ValidationResult::Warning( "No mods.toml or valid class files present for Forge file.", )); } - Ok(validate_pack_formats(archive)) + validate_pack_formats(archive) } } @@ -66,13 +68,15 @@ impl super::Validator for LegacyForgeValidator { ) -> Result { if archive.by_name("mcmod.info").is_err() && archive.by_name("META-INF/MANIFEST.MF").is_err() - && !archive.file_names().any(|x| x.ends_with(".class")) + && !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.ends_with(".class")) { return Ok(ValidationResult::Warning( "Forge mod file does not contain mcmod.info or valid class files!", )); }; - Ok(validate_pack_formats(archive)) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/liteloader.rs b/apps/labrinth/src/validate/liteloader.rs index 11e8e08582f..0df573ff224 100644 --- a/apps/labrinth/src/validate/liteloader.rs +++ b/apps/labrinth/src/validate/liteloader.rs @@ -30,6 +30,6 @@ impl super::Validator for LiteLoaderValidator { )); } - Ok(validate_pack_formats(archive)) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/mod.rs b/apps/labrinth/src/validate/mod.rs index a899048600d..bf2a15b952b 100644 --- a/apps/labrinth/src/validate/mod.rs +++ b/apps/labrinth/src/validate/mod.rs @@ -301,7 +301,9 @@ fn validate_additional_jar( }; if file_type == FileType::SourcesJar - && !archive.file_names().any(|name| name.ends_with(".java")) + && !validated_file_names(archive)? + .into_iter() + .any(|name| name.ends_with(".java")) { return Err(ValidationError::InvalidInput( "sources jars must contain at least one `.java` file".into(), @@ -328,6 +330,7 @@ async fn validate_minecraft_file( }; if let MaybeProtectedZipFile::Unprotected(archive) = &mut zip { + validated_file_names(archive)?; for validator in VALIDATORS { validator.ensure_required_loaders(archive, &loaders)?; } @@ -444,23 +447,28 @@ fn game_version_supported( } } -#[must_use] pub fn validate_pack_formats( archive: &mut ZipArchive>, -) -> ValidationResult { - if (archive.by_name("modlist.html").is_ok() - && archive.by_name("manifest.json").is_ok()) - || archive - .file_names() - .any(|x| x.starts_with("mods/") && x.ends_with(".jar")) - || archive - .file_names() - .any(|x| x.starts_with("override/mods/") && x.ends_with(".jar")) +) -> Result { + let has_bundled_mods = validated_file_names(archive)?.iter().any(|name| { + (name.starts_with("mods/") || name.starts_with("override/mods/")) + && name.ends_with(".jar") + }); + if (archive.by_name("modlist.html").is_ok() + && archive.by_name("manifest.json").is_ok()) + || has_bundled_mods { - return ValidationResult::Warning( + return Ok(ValidationResult::Warning( "Invalid modpack file. Modpacks must be uploaded in the .mrpack format, not as a ZIP file.", - ); - } + )); + } + + Ok(ValidationResult::Pass) +} - ValidationResult::Pass +/// Decodes every filename before callers can short-circuit on a matching entry. +fn validated_file_names( + archive: &ZipArchive>, +) -> Result>, ValidationError> { + Ok(archive.file_names().collect::, _>>()?) } diff --git a/apps/labrinth/src/validate/modpack.rs b/apps/labrinth/src/validate/modpack.rs index 13d36216715..3f3d9169805 100644 --- a/apps/labrinth/src/validate/modpack.rs +++ b/apps/labrinth/src/validate/modpack.rs @@ -52,7 +52,9 @@ impl super::Validator for ModpackValidator { } if pack.files.is_empty() - && !archive.file_names().any(|x| x.starts_with("overrides/")) + && !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.starts_with("overrides/")) { return Err(ValidationError::InvalidInput( "Pack has no files!".into(), @@ -75,8 +77,8 @@ impl super::Validator for ModpackValidator { Ok(ValidationResult::PassWithPackDataAndFiles { format: pack, - files: archive - .file_names() + files: crate::validate::validated_file_names(archive)? + .into_iter() .filter(|x| { (x.ends_with("jar") || x.ends_with("zip")) && (x.starts_with("overrides/mods") diff --git a/apps/labrinth/src/validate/neoforge.rs b/apps/labrinth/src/validate/neoforge.rs index 341e4a2add1..6f136b8ebb7 100644 --- a/apps/labrinth/src/validate/neoforge.rs +++ b/apps/labrinth/src/validate/neoforge.rs @@ -27,13 +27,15 @@ impl super::Validator for NeoForgeValidator { if archive.by_name("META-INF/mods.toml").is_err() && archive.by_name("META-INF/neoforge.mods.toml").is_err() && archive.by_name("META-INF/MANIFEST.MF").is_err() - && !archive.file_names().any(|x| x.ends_with(".class")) + && !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.ends_with(".class")) { return Ok(ValidationResult::Warning( "No neoforge.mods.toml, mods.toml, or valid class files present for NeoForge file.", )); } - Ok(validate_pack_formats(archive)) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/plugin.rs b/apps/labrinth/src/validate/plugin.rs index 51391cc0a8d..d898e7b837a 100644 --- a/apps/labrinth/src/validate/plugin.rs +++ b/apps/labrinth/src/validate/plugin.rs @@ -26,7 +26,9 @@ impl super::Validator for GeyserValidator { archive: &mut ZipArchive>, loaders: &[Loader], ) -> Result<(), ValidationError> { - if archive.file_names().any(|name| name == "extension.yml") + if crate::validate::validated_file_names(archive)? + .into_iter() + .any(|name| name == "extension.yml") && !loaders.iter().any(|loader| loader.0 == "geyser") { return Err(ValidationError::InvalidInput( @@ -57,8 +59,8 @@ impl super::Validator for PluginYmlValidator { &self, archive: &mut ZipArchive>, ) -> Result { - if !archive - .file_names() + if !crate::validate::validated_file_names(archive)? + .into_iter() .any(|name| name == "plugin.yml" || name == "paper-plugin.yml") { return Ok(ValidationResult::Warning( @@ -89,8 +91,8 @@ impl super::Validator for BungeeCordValidator { &self, archive: &mut ZipArchive>, ) -> Result { - if !archive - .file_names() + if !crate::validate::validated_file_names(archive)? + .into_iter() .any(|name| name == "plugin.yml" || name == "bungee.yml") { return Ok(ValidationResult::Warning( @@ -150,11 +152,14 @@ impl super::Validator for SpongeValidator { &self, archive: &mut ZipArchive>, ) -> Result { - if !archive.file_names().any(|name| { - name == "sponge_plugins.json" - || name == "mcmod.info" - || name == "META-INF/sponge_plugins.json" - }) { + if !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|name| { + name == "sponge_plugins.json" + || name == "mcmod.info" + || name == "META-INF/sponge_plugins.json" + }) + { return Ok(ValidationResult::Warning( "No sponge_plugins.json or mcmod.info present for Sponge plugin.", )); diff --git a/apps/labrinth/src/validate/quilt.rs b/apps/labrinth/src/validate/quilt.rs index 53ee8fe0d80..7f23b3f6165 100644 --- a/apps/labrinth/src/validate/quilt.rs +++ b/apps/labrinth/src/validate/quilt.rs @@ -35,6 +35,6 @@ impl super::Validator for QuiltValidator { )); } - Ok(validate_pack_formats(archive)) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/rift.rs b/apps/labrinth/src/validate/rift.rs index e2e57bcdee6..9ca5314113f 100644 --- a/apps/labrinth/src/validate/rift.rs +++ b/apps/labrinth/src/validate/rift.rs @@ -30,6 +30,6 @@ impl super::Validator for RiftValidator { )); } - Ok(validate_pack_formats(archive)) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/risugami.rs b/apps/labrinth/src/validate/risugami.rs index b83afa03f68..7b2d1847970 100644 --- a/apps/labrinth/src/validate/risugami.rs +++ b/apps/labrinth/src/validate/risugami.rs @@ -23,21 +23,29 @@ impl super::Validator for RisugamiValidator { &self, archive: &mut ZipArchive>, ) -> Result { - if archive.file_names().any(|name| name == "instance.cfg") - && archive.file_names().any(|name| name == "mmc-pack.json") + if crate::validate::validated_file_names(archive)? + .into_iter() + .any(|name| name == "instance.cfg") + && crate::validate::validated_file_names(archive)? + .into_iter() + .any(|name| name == "mmc-pack.json") { return Err(ValidationError::InvalidInput( "multimc and prism modpacks cannot be uploaded as risugami's modloader mods".into(), )); } - if archive.file_names().any(|name| name == "level.dat") { + if crate::validate::validated_file_names(archive)? + .into_iter() + .any(|name| name == "level.dat") + { return Err(ValidationError::InvalidInput( "minecraft worlds cannot be uploaded as risugami's modloader mods".into(), )); } - for name in archive.file_names() { + for name in crate::validate::validated_file_names(archive)?.into_iter() + { let Some((_, extension)) = name.rsplit_once('.') else { continue; }; diff --git a/apps/labrinth/src/validate/shader.rs b/apps/labrinth/src/validate/shader.rs index 2ba7d7222d1..d2abd250a62 100644 --- a/apps/labrinth/src/validate/shader.rs +++ b/apps/labrinth/src/validate/shader.rs @@ -24,7 +24,10 @@ impl super::Validator for ShaderValidator { &self, archive: &mut ZipArchive>, ) -> Result { - if !archive.file_names().any(|x| x.starts_with("shaders/")) { + if !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.starts_with("shaders/")) + { return Ok(ValidationResult::Warning( "No shaders folder present for OptiFine/Iris shader.", )); @@ -59,7 +62,10 @@ impl super::Validator for CanvasShaderValidator { )); }; - if !archive.file_names().any(|x| x.contains("/pipelines/")) { + if !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.contains("/pipelines/")) + { return Ok(ValidationResult::Warning( "No pipeline shaders folder present for canvas shaders.", )); @@ -106,8 +112,8 @@ impl super::Validator for CoreShaderValidator { if match file { MaybeProtectedZipFile::Unprotected(archive) => { archive.by_name("pack.mcmeta").is_ok() - && archive - .file_names() + && crate::validate::validated_file_names(archive)? + .into_iter() .any(|x| x.starts_with("assets/minecraft/shaders/")) } MaybeProtectedZipFile::MaybeProtected { data, .. } => { diff --git a/packages/app-lib/src/api/instance/shared/publish.rs b/packages/app-lib/src/api/instance/shared/publish.rs index c06690b16fe..eaea243db1d 100644 --- a/packages/app-lib/src/api/instance/shared/publish.rs +++ b/packages/app-lib/src/api/instance/shared/publish.rs @@ -1098,7 +1098,8 @@ pub(super) async fn upload_external_files( hasher.update(&buffer[..read]); size += read as u64; } - let file_sha512 = format!("{:x}", hasher.finalize()); + let file_sha512 = + crate::util::content_hash::encode_hex(hasher.finalize().as_slice()); use tokio::io::AsyncSeekExt; file.rewind().await?; let body = diff --git a/packages/app-lib/src/api/instance/synced_options/game_options/locales/archive.rs b/packages/app-lib/src/api/instance/synced_options/game_options/locales/archive.rs index 88103899246..42b2ef32bb5 100644 --- a/packages/app-lib/src/api/instance/synced_options/game_options/locales/archive.rs +++ b/packages/app-lib/src/api/instance/synced_options/game_options/locales/archive.rs @@ -167,8 +167,10 @@ fn inspect_archive( )); } *entries -= archive.len(); - let names: BTreeSet = - archive.file_names().map(str::to_owned).collect(); + let names: BTreeSet = archive + .file_names() + .map(|name| name.map(|name| name.into_owned())) + .collect::>()?; let mut bundle = LanguageBundle { nested_path: nested_path.to_owned(), ..Default::default() diff --git a/packages/app-lib/src/api/instance/synced_options/game_options/options_file.rs b/packages/app-lib/src/api/instance/synced_options/game_options/options_file.rs index d89aa1a752f..a81939cc899 100644 --- a/packages/app-lib/src/api/instance/synced_options/game_options/options_file.rs +++ b/packages/app-lib/src/api/instance/synced_options/game_options/options_file.rs @@ -109,9 +109,11 @@ impl GameOptionsDocument { } else if bytes.starts_with(&[0xFE, 0xFF]) { (Bom::Utf16Be, UTF_16BE, &bytes[2..]) } else { - let mut detector = chardetng::EncodingDetector::new(); + let mut detector = chardetng::EncodingDetector::new( + chardetng::Iso2022JpDetection::Allow, + ); detector.feed(bytes, true); - (Bom::None, detector.guess(None, true), bytes) + (Bom::None, detector.guess(None, chardetng::Utf8Detection::Allow), bytes) }; let (decoded, decode_errors) = encoding.decode_without_bom_handling(contents); diff --git a/packages/app-lib/src/api/instance/synced_options/game_options/pack_updates.rs b/packages/app-lib/src/api/instance/synced_options/game_options/pack_updates.rs index e797bff340a..3aaa79a727b 100644 --- a/packages/app-lib/src/api/instance/synced_options/game_options/pack_updates.rs +++ b/packages/app-lib/src/api/instance/synced_options/game_options/pack_updates.rs @@ -61,9 +61,11 @@ fn detected_encoding_name(bytes: &[u8]) -> String { if bytes.starts_with(&[0xEF, 0xBB, 0xBF]) { return UTF_8.name().to_string(); } - let mut detector = chardetng::EncodingDetector::new(); + let mut detector = chardetng::EncodingDetector::new( + chardetng::Iso2022JpDetection::Allow, + ); detector.feed(bytes, true); - detector.guess(None, true).name().to_string() + detector.guess(None, chardetng::Utf8Detection::Allow).name().to_string() } fn pack_version_id(metadata: &InstanceMetadata) -> Option<&str> { diff --git a/packages/app-lib/src/api/instance/synced_packs/operations.rs b/packages/app-lib/src/api/instance/synced_packs/operations.rs index 273485fd8fd..ba1d7b98b2c 100644 --- a/packages/app-lib/src/api/instance/synced_packs/operations.rs +++ b/packages/app-lib/src/api/instance/synced_packs/operations.rs @@ -162,11 +162,15 @@ pub(super) fn validate_pack( ProjectType::DataPack => ("data/", "assets/"), _ => bail!(ErrorKind::InvalidPack(InvalidPack::UnsupportedType)), }; - if !value.get("pack").is_some_and(serde_json::Value::is_object) - || (!archive.file_names().any(|name| name.starts_with(prefix)) - && archive - .file_names() - .any(|name| name.starts_with(other_prefix))) + let mut has_prefix = false; + let mut has_other_prefix = false; + for name in archive.file_names() { + let name = name?; + has_prefix |= name.starts_with(prefix); + has_other_prefix |= name.starts_with(other_prefix); + } + if !value.get("pack").is_some_and(serde_json::Value::is_object) + || (!has_prefix && has_other_prefix) { bail!(ErrorKind::InvalidPack(InvalidPack::WrongType)); } diff --git a/packages/app-lib/src/api/jre.rs b/packages/app-lib/src/api/jre.rs index 59fab7ac0bf..75103900db7 100644 --- a/packages/app-lib/src/api/jre.rs +++ b/packages/app-lib/src/api/jre.rs @@ -289,11 +289,25 @@ async fn auto_install_java_inner( "failed to read java zip".to_string(), ))?; - // removes the old installation of java - if let Some(file) = archive.file_names().next() - && let Some(dir) = file.split('/').next() - { - let path = path.join(dir); + let names = archive.file_names().collect::, _>>()?; + // removes the old installation of java + if let Some(file) = names.first() + && let Some(dir) = file.split('/').next() + { + if dir.is_empty() + || dir == "." + || dir == ".." + || dir.contains(['\\', ':']) + || !matches!( + std::path::Path::new(dir).components().next(), + Some(std::path::Component::Normal(_)) + ) + { + bail!(ErrorKind::InputError( + "invalid Java archive directory".to_string() + )); + } + let path = path.join(dir); if path.exists() { io::remove_dir_all(path).await?; diff --git a/packages/app-lib/src/api/logs.rs b/packages/app-lib/src/api/logs.rs index e1f632acac7..a66323a53eb 100644 --- a/packages/app-lib/src/api/logs.rs +++ b/packages/app-lib/src/api/logs.rs @@ -44,7 +44,13 @@ pub struct LatestLogCursor { pub struct CensoredString(String); impl CensoredString { pub fn censor(mut s: String, credentials_list: &[Credentials]) -> Self { - let username = whoami::username(); + let Ok(username) = whoami::username_os() else { + return Self("[Log withheld: unable to determine computer username]".into()); + }; + let username = username.to_string_lossy(); + if username.is_empty() { + return Self("[Log withheld: unable to determine computer username]".into()); + } s = s .replace(&format!("/{username}/"), "/{COMPUTER_USERNAME}/") .replace(&format!("\\{username}\\"), "\\{COMPUTER_USERNAME}\\"); diff --git a/packages/app-lib/src/api/minecraft_skins.rs b/packages/app-lib/src/api/minecraft_skins.rs index a990683c8ed..39099bd45a5 100644 --- a/packages/app-lib/src/api/minecraft_skins.rs +++ b/packages/app-lib/src/api/minecraft_skins.rs @@ -1348,7 +1348,12 @@ fn get_fallback_default_skin() -> crate::Result<&'static Skin> { } fn local_skin_texture_key(texture_blob: &[u8]) -> Arc { - Arc::from(format!("local-{:x}", sha2::Sha256::digest(texture_blob))) + Arc::from(format!( + "local-{}", + crate::util::content_hash::encode_hex( + sha2::Sha256::digest(texture_blob).as_slice(), + ), + )) } #[derive(Debug, PartialEq, Eq)] diff --git a/packages/app-lib/src/api/server_address.rs b/packages/app-lib/src/api/server_address.rs index 3bb0afb47ea..d337a229ba3 100644 --- a/packages/app-lib/src/api/server_address.rs +++ b/packages/app-lib/src/api/server_address.rs @@ -148,21 +148,18 @@ pub async fn resolve_server_address( } let _permit = SIMULTANEOUS_DNS_QUERIES.acquire().await?; - let resolver = hickory_resolver::TokioResolver::builder_tokio()?.build(); + let resolver = hickory_resolver::TokioResolver::builder_tokio()?.build()?; Ok( match resolver.srv_lookup(format!("_minecraft._tcp.{host}")).await { - Err(e) - if e.proto() - .as_ref() - .is_some_and(|x| x.kind().is_no_records_found()) => - { - None - } + Err(e) if e.is_no_records_found() => None, Err(e) => return Err(e.into()), - Ok(lookup) => lookup - .into_iter() - .next() - .map(|r| (r.target().to_string(), r.port())), + Ok(lookup) => lookup.answers().iter().find_map(|record| { + if let hickory_resolver::proto::rr::RData::SRV(srv) = &record.data { + Some((srv.target.to_string(), srv.port)) + } else { + None + } + }), } .unwrap_or_else(|| (host.to_owned(), port)), ) diff --git a/packages/app-lib/src/api/worlds.rs b/packages/app-lib/src/api/worlds.rs index a550d8a6cfc..4a53c1fde30 100644 --- a/packages/app-lib/src/api/worlds.rs +++ b/packages/app-lib/src/api/worlds.rs @@ -747,17 +747,18 @@ async fn get_world_session_lock(world: &Path) -> Result { .await?; file.write_all("☃".as_bytes()).await?; file.sync_all().await?; - let locked = file.try_lock_exclusive()?; - locked.then_some(file).ok_or_else(|| { - io::IOError::IOPathError { - source: std::io::Error::new( - std::io::ErrorKind::ResourceBusy, - "already locked by Minecraft", - ), - path: lock_path.to_string_lossy().into_owned(), - } - .into() - }) + match file.try_lock() { + Ok(()) => Ok(file), + Err(fs4::TryLockError::WouldBlock) => Err(io::IOError::IOPathError { + source: std::io::Error::new( + std::io::ErrorKind::ResourceBusy, + "already locked by Minecraft", + ), + path: lock_path.to_string_lossy().into_owned(), + } + .into()), + Err(fs4::TryLockError::Error(error)) => Err(error.into()), + } } async fn try_get_world_session_lock( @@ -770,8 +771,11 @@ async fn try_get_world_session_lock( .open(world.join("session.lock")) .await?; file.sync_all().await?; - let locked = file.try_lock_exclusive()?; - Ok(locked.then_some(file)) + match file.try_lock() { + Ok(()) => Ok(Some(file)), + Err(fs4::TryLockError::WouldBlock) => Ok(None), + Err(fs4::TryLockError::Error(error)) => Err(error.into()), + } } pub async fn add_server_to_instance( diff --git a/packages/app-lib/src/error.rs b/packages/app-lib/src/error.rs index 7fe1d4866e5..5d44f22db63 100644 --- a/packages/app-lib/src/error.rs +++ b/packages/app-lib/src/error.rs @@ -7,7 +7,7 @@ use crate::util::jre::JREError; use async_tungstenite::tungstenite; use async_zip::error::ZipError; use data_url::DataUrlError; -use hickory_resolver::ResolveError; +use hickory_resolver::net::NetError; use serde::{Deserialize, Serialize}; use sqlx::migrate::MigrateError; use std::path::StripPrefixError; @@ -168,7 +168,7 @@ pub enum ErrorKind { SqlxMigrate(#[from] sqlx::migrate::MigrateError), #[error("error resolving DNS: {0}")] - DNSError(#[from] hickory_resolver::ResolveError), + DNSError(#[from] NetError), #[error("an online profile for {user_name} is not available")] OnlineMinecraftProfileUnavailable { user_name: String }, @@ -362,7 +362,7 @@ pub fn error_code(error: &Error) -> &'static str { "api_error" } else if error.is::() || error.is::() - || error.is::() + || error.is::() { "network_error" } else if error.is::() { diff --git a/packages/app-lib/src/state/content_store/adapters/verified_files.rs b/packages/app-lib/src/state/content_store/adapters/verified_files.rs index 27f1b39b937..ef6b8d9eb28 100644 --- a/packages/app-lib/src/state/content_store/adapters/verified_files.rs +++ b/packages/app-lib/src/state/content_store/adapters/verified_files.rs @@ -118,7 +118,8 @@ impl VerifiedFiles { size += read as u64; on_read(read as u64); } - let sha512 = format!("{:x}", hasher.finalize()); + let sha512 = + crate::util::content_hash::encode_hex(hasher.finalize().as_slice()); if let Some(stamp) = before && FileStamp::read(&file).as_ref() == Some(&stamp) && size == stamp.size @@ -228,6 +229,11 @@ mod tests { .hash(&path, &|read| bytes.set(bytes.get() + read)) .unwrap(); assert_eq!(bytes.get(), changed.len() as u64); - assert_eq!(actual, format!("{:x}", Sha512::digest(&changed))); - } + assert_eq!( + actual, + crate::util::content_hash::encode_hex( + Sha512::digest(&changed).as_slice(), + ) + ); + } } diff --git a/packages/app-lib/src/state/content_store/commands/acquire_content.rs b/packages/app-lib/src/state/content_store/commands/acquire_content.rs index 31749f672cc..f0508695c4e 100644 --- a/packages/app-lib/src/state/content_store/commands/acquire_content.rs +++ b/packages/app-lib/src/state/content_store/commands/acquire_content.rs @@ -160,7 +160,9 @@ impl ContentStore { fetch::StagedDownload { path: temporary, size: bytes.len() as u64, - sha512: format!("{:x}", Sha512::digest(bytes)), + sha512: crate::util::content_hash::encode_hex( + Sha512::digest(bytes).as_slice(), + ), }, &[], ) diff --git a/packages/app-lib/src/state/content_store/commands/migration.rs b/packages/app-lib/src/state/content_store/commands/migration.rs index 24bdd90efaa..5f7fe30c6a5 100644 --- a/packages/app-lib/src/state/content_store/commands/migration.rs +++ b/packages/app-lib/src/state/content_store/commands/migration.rs @@ -342,9 +342,9 @@ fn replace_file_copy( temporary: tempfile::TempPath, destination: &std::path::Path, ) -> std::io::Result<()> { - let mut temporary = tempfile::TempPath::from_path( - temporary.keep().map_err(|error| error.error)?, - ); + let mut temporary = tempfile::TempPath::try_from_path( + temporary.keep().map_err(|error| error.error)?, + )?; #[cfg(windows)] let original = { use std::os::windows::fs::OpenOptionsExt; diff --git a/packages/app-lib/src/state/content_store/store.rs b/packages/app-lib/src/state/content_store/store.rs index 022401091e0..f51da58b5c5 100644 --- a/packages/app-lib/src/state/content_store/store.rs +++ b/packages/app-lib/src/state/content_store/store.rs @@ -40,12 +40,16 @@ impl ContentStore { .write(true) .open(settings_dir.join("store.lock")) .await?; - if !file.try_lock_exclusive()? { - bail!(ErrorKind::ContentStoreError( - "another Modrinth process is using this application directory" - .into(), - )); - } + match file.try_lock() { + Ok(()) => {} + Err(fs4::TryLockError::WouldBlock) => { + bail!(ErrorKind::ContentStoreError( + "another Modrinth process is using this application directory" + .into(), + )); + } + Err(fs4::TryLockError::Error(error)) => return Err(error.into()), + } Ok(file) } diff --git a/packages/app-lib/src/state/instances/commands/embedded_content_metadata.rs b/packages/app-lib/src/state/instances/commands/embedded_content_metadata.rs index 6aeb2a25dce..e1713599a70 100644 --- a/packages/app-lib/src/state/instances/commands/embedded_content_metadata.rs +++ b/packages/app-lib/src/state/instances/commands/embedded_content_metadata.rs @@ -94,6 +94,13 @@ fn inspect_content_archive( fn infer_project_type( archive: &mut ZipArchive, ) -> crate::Result { + let mut has_data = false; + let mut has_shaders = false; + for name in archive.file_names() { + let name = name?; + has_data |= name.starts_with("data/"); + has_shaders |= name.starts_with("shaders/"); + } if has_entry(archive, "fabric.mod.json") || has_entry(archive, "quilt.mod.json") || has_entry(archive, "META-INF/neoforge.mods.toml") @@ -102,15 +109,12 @@ fn infer_project_type( { Ok(ProjectType::Mod) } else if has_entry(archive, "pack.mcmeta") { - if archive.file_names().any(|name| name.starts_with("data/")) { + if has_data { Ok(ProjectType::DataPack) } else { Ok(ProjectType::ResourcePack) } - } else if archive - .file_names() - .any(|name| name.starts_with("shaders/")) - { + } else if has_shaders { Ok(ProjectType::ShaderPack) } else { Err(ErrorKind::InputError( diff --git a/packages/app-lib/src/state/minecraft_auth.rs b/packages/app-lib/src/state/minecraft_auth.rs index 2c43fa1cfe5..b8e89c0771c 100644 --- a/packages/app-lib/src/state/minecraft_auth.rs +++ b/packages/app-lib/src/state/minecraft_auth.rs @@ -9,9 +9,9 @@ use futures::TryStreamExt; use heck::ToTitleCase; use p256::ecdsa::signature::Signer; use p256::ecdsa::{Signature, SigningKey, VerifyingKey}; +use p256::elliptic_curve::Generate; use p256::pkcs8::{DecodePrivateKey, EncodePrivateKey, LineEnding}; -use rand::Rng; -use rand::rngs::OsRng; +use rand::RngExt; use reqwest::header::HeaderMap; use reqwest::{Response, StatusCode}; use serde::de::DeserializeOwned; @@ -1577,10 +1577,10 @@ pub struct DeviceTokenKey { fn generate_key() -> Result { let uuid = Uuid::new_v4(); - let signing_key = SigningKey::random(&mut OsRng); + let signing_key = SigningKey::generate_from_rng(&mut rand::rng()); let public_key = VerifyingKey::from(&signing_key); - let encoded_point = public_key.to_encoded_point(false); + let encoded_point = public_key.to_sec1_point(false); Ok(DeviceTokenKey { id: uuid, @@ -1641,8 +1641,7 @@ async fn send_signed_request( let mut sig_buffer = Vec::new(); sig_buffer.extend_from_slice(&1_i32.to_be_bytes()[..]); sig_buffer.extend_from_slice(&(time as u64).to_be_bytes()[..]); - sig_buffer.extend_from_slice(&ecdsa_sig.r().to_bytes()); - sig_buffer.extend_from_slice(&ecdsa_sig.s().to_bytes()); + sig_buffer.extend_from_slice(&ecdsa_sig.to_bytes()); let signature = BASE64_STANDARD.encode(&sig_buffer); @@ -1701,8 +1700,8 @@ fn get_date_header(headers: &HeaderMap) -> DateTime { #[tracing::instrument] fn generate_oauth_challenge() -> String { - let mut rng = rand::thread_rng(); + let mut rng = rand::rng(); - let bytes: Vec = (0..64).map(|_| rng.r#gen::()).collect(); + let bytes: Vec = (0..64).map(|_| rng.random::()).collect(); bytes.iter().map(|byte| format!("{byte:02x}")).collect() } diff --git a/packages/app-lib/src/state/process.rs b/packages/app-lib/src/state/process.rs index 459df606778..1235a035aad 100644 --- a/packages/app-lib/src/state/process.rs +++ b/packages/app-lib/src/state/process.rs @@ -497,22 +497,17 @@ impl Process { Ok(Event::Start(e)) => { match e.name().as_ref() { - b"log4j:Event" => { + "log4j:Event" => { // Reset for new event current_event = Log4jEvent::default(); in_event = true; // Extract attributes for attr in e.attributes().flatten() { - let key = String::from_utf8_lossy( - attr.key.into_inner(), - ) - .to_string(); - let value = - String::from_utf8_lossy(&attr.value) - .to_string(); - - match key.as_str() { + let key = attr.key.into_inner(); + let value = attr.value.into_owned(); + + match key { "logger" => { current_event.logger_name = Some(value) @@ -532,11 +527,11 @@ impl Process { } } } - b"log4j:Message" => { + "log4j:Message" => { in_message = true; current_content = String::new(); } - b"log4j:Throwable" => { + "log4j:Throwable" => { in_throwable = true; current_content = String::new(); } @@ -545,12 +540,12 @@ impl Process { } Ok(Event::End(e)) => { match e.name().as_ref() { - b"log4j:Message" => { + "log4j:Message" => { in_message = false; current_event.message = Some(current_content.clone()); } - b"log4j:Throwable" => { + "log4j:Throwable" => { in_throwable = false; current_event.throwable = if current_content.is_empty() { @@ -592,7 +587,7 @@ impl Process { ¤t_event, ); } - b"log4j:Event" => { + "log4j:Event" => { in_event = false; // If no throwable was present, write the log entry at the end of the event if current_event.message.is_some() @@ -643,14 +638,13 @@ impl Process { } Ok(Event::Text(mut e)) => { if in_message || in_throwable { - if let Ok(text) = e.xml_content() { - current_content.push_str(&text); - } + let text = e.xml11_content(); + current_content.push_str(&text); } else if !in_event && !e.inplace_trim_end() && !e.inplace_trim_start() - && let Ok(text) = e.xml_content() - { + { + let text = e.xml11_content(); if let Err(e) = Process::append_to_log_file( &log_path, &format!("{text}\n"), @@ -663,13 +657,10 @@ impl Process { Self::emit_legacy_log(instance_id, &text); } } - Ok(Event::CData(e)) => { - if (in_message || in_throwable) - && let Ok(text) = e.xml_content() - { - current_content.push_str(&text); - } - } + Ok(Event::CData(e)) if in_message || in_throwable => { + let text = e.xml11_content(); + current_content.push_str(&text); + } _ => (), } diff --git a/packages/app-lib/src/util/content_hash.rs b/packages/app-lib/src/util/content_hash.rs index fc667b873c5..e76b77a9d1f 100644 --- a/packages/app-lib/src/util/content_hash.rs +++ b/packages/app-lib/src/util/content_hash.rs @@ -22,7 +22,7 @@ impl ContentHasher { pub(crate) fn finish(self, size: u64) -> FileHashes { FileHashes { - sha512: format!("{:x}", self.sha512.finalize()), + sha512: encode_hex(self.sha512.finalize().as_slice()), size, } } @@ -71,3 +71,7 @@ pub(crate) async fn copy_and_hash( }; Ok(hashes.finish(size)) } + +pub(crate) fn encode_hex(bytes: &[u8]) -> String { + bytes.iter().map(|byte| format!("{byte:02x}")).collect() +} diff --git a/packages/app-lib/src/util/fetch.rs b/packages/app-lib/src/util/fetch.rs index d89ffaf381a..61e0e9a5a69 100644 --- a/packages/app-lib/src/util/fetch.rs +++ b/packages/app-lib/src/util/fetch.rs @@ -10,7 +10,7 @@ use chrono::{DateTime, TimeDelta, Utc}; use governor::clock::{Clock, DefaultClock}; use governor::{DefaultDirectRateLimiter, Quota, RateLimiter}; use parking_lot::Mutex; -use rand::Rng; +use rand::RngExt; use reqwest::Method; use serde::de::DeserializeOwned; use serde::{Deserialize, Serialize}; @@ -166,7 +166,7 @@ impl FenceInner { .unwrap_or(Self::BLOCK_DURATION_MAX_BASE); let delta_seconds = (max - min).as_seconds_f64() - * rand::thread_rng().gen_range(0.0..=1.0); + * rand::rng().random_range(0.0..=1.0); let duration = min + TimeDelta::milliseconds((delta_seconds * 1000.0) as i64); diff --git a/packages/app-lib/src/util/io.rs b/packages/app-lib/src/util/io.rs index 052ea8c86fe..09eee4eb64a 100644 --- a/packages/app-lib/src/util/io.rs +++ b/packages/app-lib/src/util/io.rs @@ -124,9 +124,11 @@ pub async fn read_any_encoding_to_string( })?; let file_encoding = { - let mut encoding_detector = chardetng::EncodingDetector::new(); + let mut encoding_detector = chardetng::EncodingDetector::new( + chardetng::Iso2022JpDetection::Allow, + ); encoding_detector.feed(&file_bytes, true); - encoding_detector.guess(None, true) + encoding_detector.guess(None, chardetng::Utf8Detection::Allow) }; let (file_string, actual_file_encoding, _) = diff --git a/packages/ariadne/src/ids.rs b/packages/ariadne/src/ids.rs index 10e6ecb7054..13efee982e6 100644 --- a/packages/ariadne/src/ids.rs +++ b/packages/ariadne/src/ids.rs @@ -11,7 +11,7 @@ use thiserror::Error; /// can only represent up to 11 character base62 strings #[inline] pub fn random_base62(n: usize) -> u64 { - random_base62_rng(&mut rand::thread_rng(), n) + random_base62_rng(&mut rand::rng(), n) } /// Generates a random 64 bit integer that is exactly `n` characters @@ -21,20 +21,20 @@ pub fn random_base62(n: usize) -> u64 { /// /// This method panics if `n` is 0 or greater than 11, since a `u64` /// can only represent up to 11 character base62 strings -pub fn random_base62_rng(rng: &mut R, n: usize) -> u64 { +pub fn random_base62_rng(rng: &mut R, n: usize) -> u64 { random_base62_rng_range(rng, n, n) } -pub fn random_base62_rng_range( +pub fn random_base62_rng_range( rng: &mut R, n_min: usize, n_max: usize, ) -> u64 { - use rand::Rng; + use rand::RngExt; assert!(n_min > 0 && n_max <= 11 && n_min <= n_max); // random_range is [low, high): max value is `MULTIPLES[n] - 1`, // which is n characters long when encoded - rng.gen_range(MULTIPLES[n_min - 1]..MULTIPLES[n_max]) + rng.random_range(MULTIPLES[n_min - 1]..MULTIPLES[n_max]) } const MULTIPLES: [u64; 12] = [ diff --git a/packages/async-minecraft-ping/src/server.rs b/packages/async-minecraft-ping/src/server.rs index 03d3f184b4a..2e3b1a2a2e5 100644 --- a/packages/async-minecraft-ping/src/server.rs +++ b/packages/async-minecraft-ping/src/server.rs @@ -204,9 +204,9 @@ impl ConnectionConfig { #[cfg(feature = "srv")] async fn lookup_srv(&self) -> Option<(String, u16)> { - use hickory_resolver::TokioAsyncResolver; + use hickory_resolver::{TokioResolver, proto::rr::RData}; - let resolver = TokioAsyncResolver::tokio_from_system_conf().ok()?; + let resolver = TokioResolver::builder_tokio().ok()?.build().ok()?; let srv_name = format!("_minecraft._tcp.{}", self.address); let lookup = tokio::time::timeout(self.timeout, resolver.srv_lookup(&srv_name)) @@ -214,11 +214,14 @@ impl ConnectionConfig { .ok()? .ok()?; - let record = lookup.iter().next()?; - let target = record.target().to_string(); + let record = lookup.answers().iter().find_map(|record| match &record.data { + RData::SRV(srv) => Some(srv), + _ => None, + })?; + let target = record.target.to_string(); // Remove trailing dot from DNS name let host = target.trim_end_matches('.').to_string(); - let port = record.port(); + let port = record.port; Some((host, port)) } diff --git a/packages/modrinth-maxmind/examples/maxmind.rs b/packages/modrinth-maxmind/examples/maxmind.rs index ab104331151..3642e956758 100644 --- a/packages/modrinth-maxmind/examples/maxmind.rs +++ b/packages/modrinth-maxmind/examples/maxmind.rs @@ -26,8 +26,10 @@ async fn main() -> Result<()> { let ip = args.ip; let country = maxmind - .lookup::(ip) - .wrap_err("failed to lookup country")?; + .lookup(ip) + .wrap_err("failed to lookup country")? + .decode::() + .wrap_err("failed to decode country")?; info!("Country details for {ip:?}:\n{country:#?}"); diff --git a/packages/modrinth-maxmind/src/lib.rs b/packages/modrinth-maxmind/src/lib.rs index 22080967c6d..1f81f08899f 100644 --- a/packages/modrinth-maxmind/src/lib.rs +++ b/packages/modrinth-maxmind/src/lib.rs @@ -57,11 +57,12 @@ impl MaxMind { /// [`None`]. pub async fn query_country(&self, ip: impl Into) -> Option { let reader = self.reader.as_ref()?; - reader - .lookup::(ip.into()) - .ok()? - .and_then(|c| c.country) - .and_then(|c| c.iso_code.map(|s| s.to_string())) + reader + .lookup(ip.into()) + .ok()? + .decode::() + .ok()? + .and_then(|c| c.country.iso_code.map(|s| s.to_string())) } } diff --git a/packages/muralpay/src/payout.rs b/packages/muralpay/src/payout.rs index 5b3cdc0957d..acbeff2ab15 100644 --- a/packages/muralpay/src/payout.rs +++ b/packages/muralpay/src/payout.rs @@ -1,10 +1,3 @@ -#![cfg_attr( - feature = "utoipa", - expect( - clippy::large_stack_arrays, - reason = "due to `utoipa::ToSchema` derive" - ) -)] use { crate::{ diff --git a/packages/serde-binhum/src/lib.rs b/packages/serde-binhum/src/lib.rs index 6fa3db8389c..390531d5c43 100644 --- a/packages/serde-binhum/src/lib.rs +++ b/packages/serde-binhum/src/lib.rs @@ -30,7 +30,10 @@ impl FromMeta for SerdeOptions { let options = items .iter() .map(|item| match item { - NestedMeta::Meta(option) => Ok(option.clone()), + NestedMeta::Meta(option) => Ok(option.clone()), + NestedMeta::NameValueInvalidExpr(option) => { + Err(option.error.clone()) + } NestedMeta::Lit(literal) => { Err(darling::Error::custom("expected a Serde option") .with_span(literal)) From 20ef2bcd733e4017ddda101219723c692556ea2b Mon Sep 17 00:00:00 2001 From: aecsocket <43144841+aecsocket@users.noreply.github.com> Date: Tue, 20 Oct 2026 17:24:55 +0100 Subject: [PATCH 3/4] update sqlx to 0.9.0 --- .github/workflows/turbo-ci.yml | 2 +- Cargo.lock | 387 +++--------------- Cargo.toml | 4 +- apps/app/src/api/oauth_utils/auth_seal.rs | 8 +- apps/app/src/api/thumbnails.rs | 12 +- apps/labrinth/src/auth/oauth/mod.rs | 2 +- .../labrinth/src/database/models/flow_item.rs | 2 +- apps/labrinth/src/database/models/ids.rs | 5 +- .../src/database/models/oauth_client_item.rs | 2 +- .../src/database/models/oauth_token_item.rs | 2 +- apps/labrinth/src/file_hosting/mock.rs | 2 +- apps/labrinth/src/file_hosting/s3_host.rs | 2 +- apps/labrinth/src/main.rs | 18 +- apps/labrinth/src/queue/file_scan.rs | 8 +- apps/labrinth/src/routes/internal/flows.rs | 40 +- apps/labrinth/src/routes/internal/pats.rs | 2 +- apps/labrinth/src/routes/internal/session.rs | 2 +- apps/labrinth/src/routes/v2/openapi.rs | 4 +- apps/labrinth/src/routes/v3/content/mod.rs | 2 +- apps/labrinth/src/routes/v3/oauth_clients.rs | 2 +- apps/labrinth/src/routes/v3/projects/mod.rs | 2 +- apps/labrinth/src/routes/v3/tags.rs | 12 +- apps/labrinth/src/search/filter/parse.rs | 172 ++++---- apps/labrinth/src/test/database.rs | 34 +- apps/labrinth/src/test/db.rs | 9 +- apps/labrinth/src/test/dummy_data.rs | 4 +- apps/labrinth/src/util/anrok.rs | 2 +- apps/labrinth/src/util/cel.rs | 102 ++--- apps/labrinth/src/validate/fabric.rs | 2 +- apps/labrinth/src/validate/forge.rs | 16 +- apps/labrinth/src/validate/liteloader.rs | 2 +- apps/labrinth/src/validate/mod.rs | 32 +- apps/labrinth/src/validate/modpack.rs | 10 +- apps/labrinth/src/validate/neoforge.rs | 8 +- apps/labrinth/src/validate/plugin.rs | 30 +- apps/labrinth/src/validate/quilt.rs | 2 +- apps/labrinth/src/validate/rift.rs | 2 +- apps/labrinth/src/validate/risugami.rs | 24 +- apps/labrinth/src/validate/shader.rs | 20 +- apps/labrinth/tests/project.rs | 5 +- clippy.toml | 2 +- .../src/api/instance/shared/publish.rs | 4 +- .../game_options/locales/archive.rs | 8 +- .../game_options/options_file.rs | 12 +- .../game_options/pack_updates.rs | 10 +- .../api/instance/synced_packs/operations.rs | 18 +- packages/app-lib/src/api/jre.rs | 38 +- packages/app-lib/src/api/logs.rs | 18 +- packages/app-lib/src/api/minecraft_skins.rs | 12 +- packages/app-lib/src/api/server_address.rs | 20 +- packages/app-lib/src/api/worlds.rs | 34 +- packages/app-lib/src/error.rs | 4 +- .../content_store/adapters/verified_files.rs | 18 +- .../content_store/commands/acquire_content.rs | 6 +- .../state/content_store/commands/migration.rs | 6 +- .../app-lib/src/state/content_store/store.rs | 14 +- .../commands/embedded_content_metadata.rs | 16 +- packages/app-lib/src/state/minecraft_auth.rs | 10 +- packages/app-lib/src/state/process.rs | 34 +- packages/app-lib/src/util/content_hash.rs | 4 +- packages/app-lib/src/util/fetch.rs | 4 +- packages/app-lib/src/util/io.rs | 8 +- packages/ariadne/src/ids.rs | 6 +- packages/async-minecraft-ping/src/server.rs | 19 +- packages/modrinth-maxmind/examples/maxmind.rs | 8 +- packages/modrinth-maxmind/src/lib.rs | 12 +- packages/muralpay/src/payout.rs | 1 - packages/serde-binhum/src/lib.rs | 8 +- packages/sqlx-tracing/Cargo.toml | 4 +- packages/sqlx-tracing/README.md | 9 +- packages/sqlx-tracing/src/any_connection.rs | 10 +- packages/sqlx-tracing/src/connection.rs | 86 ++-- packages/sqlx-tracing/src/lib.rs | 1 + packages/sqlx-tracing/src/pool.rs | 53 ++- packages/sqlx-tracing/src/query.rs | 43 ++ packages/sqlx-tracing/src/transaction.rs | 63 +-- packages/sqlx-tracing/tests/common.rs | 2 +- packages/sqlx-tracing/tests/sqlite.rs | 54 ++- 78 files changed, 796 insertions(+), 881 deletions(-) create mode 100644 packages/sqlx-tracing/src/query.rs diff --git a/.github/workflows/turbo-ci.yml b/.github/workflows/turbo-ci.yml index 5ac2ab70ac9..c0571bdb9be 100644 --- a/.github/workflows/turbo-ci.yml +++ b/.github/workflows/turbo-ci.yml @@ -112,7 +112,7 @@ jobs: - name: Setup cargo-sqlx uses: taiki-e/cache-cargo-install-action@417450f3c33ee20393705369577571770643d4c7 # v3.0.7 with: - tool: sqlx-cli@0.8.6 + tool: sqlx-cli@0.9.0 locked: false no-default-features: true features: rustls,postgres diff --git a/Cargo.lock b/Cargo.lock index 158e34d1c04..35dd6ec8c3d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -928,7 +928,7 @@ dependencies = [ "tokio", "tokio-rustls 0.26.6", "tungstenite 0.30.0", - "webpki-roots 1.0.10", + "webpki-roots", ] [[package]] @@ -1010,7 +1010,7 @@ dependencies = [ "serde", "serde_json", "url", - "webpki-roots 1.0.10", + "webpki-roots", ] [[package]] @@ -1244,7 +1244,7 @@ dependencies = [ "http 1.5.0", "http-body 1.1.0", "http-body-util", - "md-5 0.11.0", + "md-5", "pin-project-lite", "sha1 0.11.0", "sha2 0.11.1", @@ -2550,12 +2550,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "const-oid" version = "0.10.2" @@ -3275,25 +3269,14 @@ dependencies = [ "thiserror 2.0.21", ] -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid 0.9.6", - "pem-rfc7468 0.7.0", - "zeroize", -] - [[package]] name = "der" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a878c850e9e421b20262e9b41f9c860e4785fa07541c266b62ff9d1ef998a80a" dependencies = [ - "const-oid 0.10.2", - "pem-rfc7468 1.0.0", + "const-oid", + "pem-rfc7468", "zeroize", ] @@ -3405,7 +3388,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", - "const-oid 0.9.6", "crypto-common 0.1.7", "subtle", ] @@ -3417,7 +3399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer 0.12.1", - "const-oid 0.10.2", + "const-oid", "crypto-common 0.2.2", "ctutils", ] @@ -3584,7 +3566,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a" dependencies = [ - "libloading 0.7.4", + "libloading 0.8.9", ] [[package]] @@ -3720,12 +3702,12 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0681a4fc24c767085329728d8dfba959af91228aa4610cca4f8ce317ba46ae0" dependencies = [ - "der 0.8.2", + "der", "digest 0.11.3", "elliptic-curve", "rfc6979", - "signature 3.0.0", - "spki 0.8.1", + "signature", + "spki", "zeroize", ] @@ -3750,10 +3732,10 @@ dependencies = [ "digest 0.11.3", "ff", "group", - "hkdf 0.13.0", + "hkdf", "hybrid-array", - "pem-rfc7468 1.0.0", - "pkcs8 0.11.0", + "pem-rfc7468", + "pkcs8", "rand_core 0.10.1", "sec1", "subtle", @@ -3952,24 +3934,23 @@ dependencies = [ [[package]] name = "etcetera" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +checksum = "26c7b13d0780cb82722fd59f6f57f925e143427e4a75313a6c77243bf5326ae6" dependencies = [ "cfg-if", "home", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "etcetera" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c7b13d0780cb82722fd59f6f57f925e143427e4a75313a6c77243bf5326ae6" +checksum = "de48cc4d1c1d97a20fd819def54b890cadde72ed3ad0c614822a0a433361be96" dependencies = [ "cfg-if", - "home", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -4137,9 +4118,9 @@ dependencies = [ [[package]] name = "flume" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +checksum = "5e139bc46ca777eb5efaf62df0ab8cc5fd400866427e56c68b22e414e53bd3be" dependencies = [ "futures-core", "futures-sink", @@ -4917,11 +4898,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +checksum = "824e001ac4f3012dd16a264bec811403a67ca9deb6c102fc5049b32c4574b35f" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.16.1", ] [[package]] @@ -5036,15 +5017,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac 0.12.1", -] - [[package]] name = "hkdf" version = "0.13.0" @@ -5309,7 +5281,7 @@ dependencies = [ "tokio", "tokio-rustls 0.26.6", "tower-service", - "webpki-roots 1.0.10", + "webpki-roots", ] [[package]] @@ -6330,10 +6302,7 @@ version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61ff90caf6077a803a240f62fdbe88645a890bbca49ef8174c3cb0404362171d" dependencies = [ - "bitflags 2.13.2", "libc", - "plain", - "redox_syscall 0.9.5", ] [[package]] @@ -7357,16 +7326,6 @@ dependencies = [ "rayon", ] -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - [[package]] name = "md-5" version = "0.11.0" @@ -7587,7 +7546,7 @@ dependencies = [ "png 0.18.1", "serde", "thiserror 2.0.21", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -7853,22 +7812,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-bigint-dig" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" -dependencies = [ - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.8", - "smallvec", - "zeroize", -] - [[package]] name = "num-complex" version = "0.4.6" @@ -7943,7 +7886,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "libm", ] [[package]] @@ -8571,7 +8513,7 @@ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.18", + "redox_syscall", "smallvec", "windows-link 0.2.1", ] @@ -8645,15 +8587,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "pem-rfc7468" version = "1.0.0" @@ -8939,35 +8872,14 @@ dependencies = [ "futures-io", ] -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der 0.7.10", - "pkcs8 0.10.2", - "spki 0.7.3", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der 0.7.10", - "spki 0.7.3", -] - [[package]] name = "pkcs8" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451913da69c775a56034ea8d9003d27ee8948e12443eae7c038ba100a4f21cb7" dependencies = [ - "der 0.8.2", - "spki 0.8.1", + "der", + "spki", ] [[package]] @@ -8976,12 +8888,6 @@ version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - [[package]] name = "plist" version = "1.10.2" @@ -9982,15 +9888,6 @@ dependencies = [ "bitflags 2.13.2", ] -[[package]] -name = "redox_syscall" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "580c875845b41ecb1564ad1ae4703044cef774145e3d7a94dc2b3fa7c97868fd" -dependencies = [ - "bitflags 2.13.2", -] - [[package]] name = "redox_users" version = "0.5.3" @@ -10115,7 +10012,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams 0.4.2", "web-sys", - "webpki-roots 1.0.10", + "webpki-roots", ] [[package]] @@ -10234,26 +10131,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rsa" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" -dependencies = [ - "const-oid 0.9.6", - "digest 0.10.7", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8 0.10.2", - "rand_core 0.6.4", - "signature 2.2.0", - "spki 0.7.3", - "subtle", - "zeroize", -] - [[package]] name = "rust-embed" version = "8.13.0" @@ -10741,7 +10618,7 @@ checksum = "d56d437c2f19203ce5f7122e507831de96f3d2d4d3be5af44a0b0a09d8a80e4d" dependencies = [ "base16ct", "ctutils", - "der 0.8.2", + "der", "hybrid-array", "subtle", "zeroize", @@ -11375,16 +11252,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - [[package]] name = "signature" version = "3.0.0" @@ -11518,7 +11385,7 @@ dependencies = [ "objc2-foundation", "objc2-quartz-core", "raw-window-handle", - "redox_syscall 0.5.18", + "redox_syscall", "tracing", "wasm-bindgen", "web-sys", @@ -11587,16 +11454,6 @@ dependencies = [ "lock_api", ] -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der 0.7.10", -] - [[package]] name = "spki" version = "0.8.1" @@ -11604,14 +11461,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef958a98b9d5da290cfc78946e9f3e61e1e62a18db0d92cac0b83cc161491a9" dependencies = [ "base64ct", - "der 0.8.2", + "der", ] [[package]] name = "sqlx" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" +checksum = "378620ccc25c62c89d8be1c819e76a88d59bdcc3304733330788948e619bfd71" dependencies = [ "sqlx-core", "sqlx-macros", @@ -11622,12 +11479,13 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" +checksum = "05b44e85bf579a8eeb4ceaa77a3a523baf2bf0e9bac7e40f405d537b5d2d5ccb" dependencies = [ "base64 0.22.1", "bytes", + "cfg-if", "chrono", "crc", "crossbeam-queue", @@ -11637,12 +11495,11 @@ dependencies = [ "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "hashlink", "indexmap 2.14.2", "log", "memchr", - "once_cell", "percent-encoding", "rust_decimal", "rustls 0.23.46", @@ -11656,14 +11513,14 @@ dependencies = [ "tracing", "url", "uuid 1.28.0", - "webpki-roots 0.26.11", + "webpki-roots", ] [[package]] name = "sqlx-macros" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" +checksum = "bd2b84f2bc39a5705ef27ec785a11c934a41bbd4a24941e257927cddc26b60bf" dependencies = [ "proc-macro2", "quote", @@ -11674,15 +11531,15 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" +checksum = "fb8d96de5fdc85a5c4ec813432b523ec637e80ba98f046555f75f7908ddac7c3" dependencies = [ + "cfg-if", "dotenvy", "either", "heck 0.5.0", "hex", - "once_cell", "proc-macro2", "quote", "serde", @@ -11693,60 +11550,45 @@ dependencies = [ "sqlx-postgres", "sqlx-sqlite", "syn 2.0.119", + "thiserror 2.0.21", "tokio", "url", ] [[package]] name = "sqlx-mysql" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" +checksum = "90b8020fe17c5f2c245bfa2505d7ef59c5604839527c740266ad2214acebea27" dependencies = [ - "atoi", - "base64 0.22.1", "bitflags 2.13.2", "byteorder", "bytes", "chrono", "crc", - "digest 0.10.7", + "digest 0.11.3", "dotenvy", "either", - "futures-channel", "futures-core", - "futures-io", "futures-util", "generic-array", - "hex", - "hkdf 0.12.4", - "hmac 0.12.1", - "itoa", "log", - "md-5 0.10.6", - "memchr", - "once_cell", "percent-encoding", - "rand 0.8.8", - "rsa", "rust_decimal", "serde", - "sha1 0.10.7", - "sha2 0.10.9", - "smallvec", + "sha1 0.11.0", + "sha2 0.11.1", "sqlx-core", - "stringprep", "thiserror 2.0.21", "tracing", "uuid 1.28.0", - "whoami 1.6.1", ] [[package]] name = "sqlx-postgres" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" +checksum = "87a2bdd6e83f6b3ea525ca9fee568030508b58355a43d0b2c1674d5f79dcd65e" dependencies = [ "atoi", "base64 0.22.1", @@ -11755,42 +11597,41 @@ dependencies = [ "chrono", "crc", "dotenvy", - "etcetera 0.8.0", + "etcetera 0.11.0", "futures-channel", "futures-core", "futures-util", "hex", - "hkdf 0.12.4", - "hmac 0.12.1", - "home", + "hkdf", + "hmac 0.13.0", "itoa", "log", - "md-5 0.10.6", + "md-5", "memchr", - "once_cell", - "rand 0.8.8", + "rand 0.10.3", "rust_decimal", "serde", "serde_json", - "sha2 0.10.9", + "sha2 0.11.1", "smallvec", "sqlx-core", "stringprep", "thiserror 2.0.21", "tracing", "uuid 1.28.0", - "whoami 1.6.1", + "whoami", ] [[package]] name = "sqlx-sqlite" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" +checksum = "488e99c397a62007e4229aec669a179816339afc6d2620ca6fa420dbee2e982c" dependencies = [ "atoi", "chrono", "flume", + "form_urlencoded", "futures-channel", "futures-core", "futures-executor", @@ -11800,7 +11641,6 @@ dependencies = [ "log", "percent-encoding", "serde", - "serde_urlencoded", "sqlx-core", "thiserror 2.0.21", "tracing", @@ -12850,7 +12690,7 @@ dependencies = [ "url", "urlencoding", "uuid 1.28.0", - "whoami 2.1.3", + "whoami", "windows 0.61.3", "windows-core 0.61.2", "winreg", @@ -12873,7 +12713,7 @@ dependencies = [ "dashmap", "either", "enumset", - "hkdf 0.13.0", + "hkdf", "hyper 1.12.0", "hyper-util", "image", @@ -13541,7 +13381,7 @@ dependencies = [ "png 0.18.1", "serde", "thiserror 2.0.21", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -13830,7 +13670,7 @@ dependencies = [ "rustls-pki-types", "ureq-proto", "utf8-zero", - "webpki-roots 1.0.10", + "webpki-roots", ] [[package]] @@ -14163,12 +14003,6 @@ dependencies = [ "wit-bindgen", ] -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - [[package]] name = "wasite" version = "1.0.2" @@ -14483,15 +14317,6 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "webpki-roots" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" -dependencies = [ - "webpki-roots 1.0.10", -] - [[package]] name = "webpki-roots" version = "1.0.10" @@ -14565,16 +14390,6 @@ dependencies = [ "winsafe", ] -[[package]] -name = "whoami" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" -dependencies = [ - "libredox", - "wasite 0.1.0", -] - [[package]] name = "whoami" version = "2.1.3" @@ -14584,7 +14399,7 @@ dependencies = [ "libc", "libredox", "objc2-system-configuration", - "wasite 1.0.2", + "wasite", "web-sys", ] @@ -14852,15 +14667,6 @@ dependencies = [ "windows-targets 0.42.2", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -14912,21 +14718,6 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -14993,12 +14784,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -15017,12 +14802,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -15041,12 +14820,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -15077,12 +14850,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -15101,12 +14868,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -15125,12 +14886,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -15149,12 +14904,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" diff --git a/Cargo.toml b/Cargo.toml index 467f1cd090e..29ff55b10b0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ members = [ [workspace.package] edition = "2024" -rust-version = "1.90.0" +rust-version = "1.94.0" repository = "https://github.com/modrinth/code" [workspace.dependencies] @@ -205,7 +205,7 @@ sha2 = "0.11.1" shlex = "2.0.1" smallvec = "1.16.3" spdx = "0.13.6" -sqlx = { version = "0.8.6", default-features = false } +sqlx = { version = "0.9.0", default-features = false } sqlx-tracing = { path = "packages/sqlx-tracing" } strum = "0.28.0" syn = { version = "3.0" } diff --git a/apps/app/src/api/oauth_utils/auth_seal.rs b/apps/app/src/api/oauth_utils/auth_seal.rs index 86221f57c6a..e40f4b7ca32 100644 --- a/apps/app/src/api/oauth_utils/auth_seal.rs +++ b/apps/app/src/api/oauth_utils/auth_seal.rs @@ -38,10 +38,10 @@ pub struct AuthSeal { impl AuthSeal { pub fn generate() -> Self { - let mut rng = rand::rng(); - let secret = SecretKey::generate_from_rng(&mut rng); - let mut nonce_bytes = [0u8; 16]; - rng.fill_bytes(&mut nonce_bytes); + let mut rng = rand::rng(); + let secret = SecretKey::generate_from_rng(&mut rng); + let mut nonce_bytes = [0u8; 16]; + rng.fill_bytes(&mut nonce_bytes); Self { secret, diff --git a/apps/app/src/api/thumbnails.rs b/apps/app/src/api/thumbnails.rs index eb0a32db70b..ebbe197df8a 100644 --- a/apps/app/src/api/thumbnails.rs +++ b/apps/app/src/api/thumbnails.rs @@ -62,12 +62,12 @@ fn create_thumbnail( hash.update(metadata.len().to_le_bytes()); hash.update(modified.as_nanos().to_le_bytes()); hash.update(size.to_le_bytes()); - let hash: String = hash - .finalize() - .iter() - .map(|byte| format!("{byte:02x}")) - .collect(); - let target = cache.join(format!("{hash}.png")); + let hash: String = hash + .finalize() + .iter() + .map(|byte| format!("{byte:02x}")) + .collect(); + let target = cache.join(format!("{hash}.png")); if target.is_file() { return Ok(target); } diff --git a/apps/labrinth/src/auth/oauth/mod.rs b/apps/labrinth/src/auth/oauth/mod.rs index 69f7692cc52..adb48931048 100644 --- a/apps/labrinth/src/auth/oauth/mod.rs +++ b/apps/labrinth/src/auth/oauth/mod.rs @@ -434,7 +434,7 @@ fn authenticate_client_token_request( } fn generate_access_token() -> String { - let random = ChaCha20Rng::from_rng(&mut rand::rng()) + let random = ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(60) .map(char::from) diff --git a/apps/labrinth/src/database/models/flow_item.rs b/apps/labrinth/src/database/models/flow_item.rs index 244997a4cea..0257ec6d0a2 100644 --- a/apps/labrinth/src/database/models/flow_item.rs +++ b/apps/labrinth/src/database/models/flow_item.rs @@ -123,7 +123,7 @@ impl DBFlow { expires: Duration, redis: &RedisPool, ) -> Result { - let state = ChaCha20Rng::from_rng(&mut rand::rng()) + let state = ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(32) .map(char::from) diff --git a/apps/labrinth/src/database/models/ids.rs b/apps/labrinth/src/database/models/ids.rs index d5feec55d65..3866651caa1 100644 --- a/apps/labrinth/src/database/models/ids.rs +++ b/apps/labrinth/src/database/models/ids.rs @@ -25,7 +25,7 @@ macro_rules! generate_ids { pub async fn $function_name( con: &mut PgTransaction<'_>, ) -> Result<$return_type> { - let mut rng = ChaCha20Rng::from_rng(&mut rand::rng()); + let mut rng = ChaCha20Rng::from_rng(&mut rand::rng()); let length = 8; let mut id = random_base62_rng(&mut rng, length); let mut retry_count = 0; @@ -72,8 +72,7 @@ macro_rules! generate_bulk_ids { // We re-acquire a thread-local RNG handle for each uniqueness loop for // the bulk generator future to be `Send + Sync`. let base = - random_base62_rng_range(&mut rand::rng(), 1, 10) - as i64; + random_base62_rng_range(&mut rand::rng(), 1, 10) as i64; let ids = (0..count).map(|x| base + x as i64).collect::>(); diff --git a/apps/labrinth/src/database/models/oauth_client_item.rs b/apps/labrinth/src/database/models/oauth_client_item.rs index ef311980304..6f70ffebae8 100644 --- a/apps/labrinth/src/database/models/oauth_client_item.rs +++ b/apps/labrinth/src/database/models/oauth_client_item.rs @@ -244,7 +244,7 @@ impl DBOAuthClient { } pub fn hash_secret(secret: &str) -> String { - hex::encode(sha2::Sha512::digest(secret.as_bytes())) + hex::encode(sha2::Sha512::digest(secret.as_bytes())) } } diff --git a/apps/labrinth/src/database/models/oauth_token_item.rs b/apps/labrinth/src/database/models/oauth_token_item.rs index 7a223444031..34c733fdd07 100644 --- a/apps/labrinth/src/database/models/oauth_token_item.rs +++ b/apps/labrinth/src/database/models/oauth_token_item.rs @@ -96,6 +96,6 @@ impl DBOAuthAccessToken { } pub fn hash_token(token: &str) -> String { - hex::encode(sha2::Sha512::digest(token.as_bytes())) + hex::encode(sha2::Sha512::digest(token.as_bytes())) } } diff --git a/apps/labrinth/src/file_hosting/mock.rs b/apps/labrinth/src/file_hosting/mock.rs index 898218c377a..b59785413c9 100644 --- a/apps/labrinth/src/file_hosting/mock.rs +++ b/apps/labrinth/src/file_hosting/mock.rs @@ -34,7 +34,7 @@ impl FileHost for MockHost { path.parent().ok_or(FileHostingError::InvalidFilename)?, )?; let content_sha1 = sha1::Sha1::digest(&file_bytes).encode_hex(); - let content_sha512 = hex::encode(sha2::Sha512::digest(&file_bytes)); + let content_sha512 = hex::encode(sha2::Sha512::digest(&file_bytes)); std::fs::write(path, &*file_bytes)?; Ok(UploadFileData { diff --git a/apps/labrinth/src/file_hosting/s3_host.rs b/apps/labrinth/src/file_hosting/s3_host.rs index 6ba35e92937..713a2e908b7 100644 --- a/apps/labrinth/src/file_hosting/s3_host.rs +++ b/apps/labrinth/src/file_hosting/s3_host.rs @@ -101,7 +101,7 @@ impl FileHost for S3Host { file_bytes: Bytes, ) -> Result { let content_sha1 = sha1::Sha1::digest(&file_bytes).encode_hex(); - let content_sha512 = hex::encode(sha2::Sha512::digest(&file_bytes)); + let content_sha512 = hex::encode(sha2::Sha512::digest(&file_bytes)); let content_length = file_bytes.len() as u32; let bucket = self.get_bucket(file_publicity); diff --git a/apps/labrinth/src/main.rs b/apps/labrinth/src/main.rs index be86ecc89ce..01f52be9c14 100644 --- a/apps/labrinth/src/main.rs +++ b/apps/labrinth/src/main.rs @@ -73,11 +73,11 @@ fn main() -> std::io::Result<()> { // // DSN is from SENTRY_DSN env variable. // Has no effect if not set. - let mut sentry_options = sentry::ClientOptions::new() - .traces_sample_rate(ENV.SENTRY_TRACES_SAMPLE_RATE) - .environment(ENV.SENTRY_ENVIRONMENT.as_str()); - sentry_options.release = sentry::release_name!(); - let sentry = sentry::init(sentry_options); + let mut sentry_options = sentry::ClientOptions::new() + .traces_sample_rate(ENV.SENTRY_TRACES_SAMPLE_RATE) + .environment(ENV.SENTRY_ENVIRONMENT.as_str()); + sentry_options.release = sentry::release_name!(); + let sentry = sentry::init(sentry_options); if sentry.is_enabled() { info!("Enabled Sentry integration"); unsafe { @@ -481,10 +481,10 @@ fn add_error_content(response: &mut Response) { if response.content.is_empty() { response.content.insert( "application/json".to_string(), - Content::new(Some(utoipa::openapi::Ref::from_schema_name( - "ApiError", - ))) - .into(), + Content::new(Some(utoipa::openapi::Ref::from_schema_name( + "ApiError", + ))) + .into(), ); } } diff --git a/apps/labrinth/src/queue/file_scan.rs b/apps/labrinth/src/queue/file_scan.rs index 059d08cc8a3..3a58d491d64 100644 --- a/apps/labrinth/src/queue/file_scan.rs +++ b/apps/labrinth/src/queue/file_scan.rs @@ -591,10 +591,10 @@ fn extract_override_files(data: &[u8]) -> Result> { let mut file = zip .by_index(i) .wrap_err_with(|| eyre!("reading file {i}"))?; - let name = file - .name() - .wrap_err_with(|| eyre!("decoding filename for file {i}"))? - .into_owned(); + let name = file + .name() + .wrap_err_with(|| eyre!("decoding filename for file {i}"))? + .into_owned(); if file.is_dir() { continue; diff --git a/apps/labrinth/src/routes/internal/flows.rs b/apps/labrinth/src/routes/internal/flows.rs index 8a803af5f23..456fe01c6e1 100644 --- a/apps/labrinth/src/routes/internal/flows.rs +++ b/apps/labrinth/src/routes/internal/flows.rs @@ -1790,7 +1790,7 @@ pub async fn discord_community_link( }; let now = Utc::now().timestamp(); - let nonce = ChaCha20Rng::from_rng(&mut rand::rng()) + let nonce = ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(32) .map(char::from) @@ -2141,9 +2141,9 @@ impl ReadyAccountRegisterFlow { .wrap_internal_err("generating user ID")?; let hasher = Argon2::default(); - let salt = rand::random::<[u8; 16]>(); + let salt = rand::random::<[u8; 16]>(); let password_hash = hasher - .hash_password_with_salt(register_flow.password.as_bytes(), &salt) + .hash_password_with_salt(register_flow.password.as_bytes(), &salt) .wrap_internal_err("hashing password")? .to_string(); @@ -2440,17 +2440,17 @@ async fn validate_2fa_code( pool: &PgPool, transaction: &mut PgTransaction<'_>, ) -> Result { - let totp = totp_rs::Builder::new() - .with_algorithm(totp_rs::Algorithm::SHA1) - .with_digits(6) - .with_skew(1) - .with_step_duration(30) - .with_secret( - totp_rs::Secret::try_from_base32(secret) - .map_err(|_| AuthenticationError::InvalidCredentials)?, - ) - .build() - .map_err(|_| AuthenticationError::InvalidCredentials)?; + let totp = totp_rs::Builder::new() + .with_algorithm(totp_rs::Algorithm::SHA1) + .with_digits(6) + .with_skew(1) + .with_step_duration(30) + .with_secret( + totp_rs::Secret::try_from_base32(secret) + .map_err(|_| AuthenticationError::InvalidCredentials)?, + ) + .build() + .map_err(|_| AuthenticationError::InvalidCredentials)?; const TOTP_NAMESPACE: &str = "used_totp:v4"; let mut conn = redis.connect().await?; @@ -2464,7 +2464,7 @@ async fn validate_2fa_code( return Err(AuthenticationError::InvalidCredentials); } - if totp.check_current(input.as_str()).is_some() { + if totp.check_current(input.as_str()).is_some() { conn.set(&key, "", Some(60)).await?; Ok(true) @@ -2613,8 +2613,8 @@ pub async fn begin_2fa_flow( .1; if !user.has_totp.unwrap_or(false) { - let string = totp_rs::Secret::generate(); - let encoded = string.to_base32(); + let string = totp_rs::Secret::generate(); + let encoded = string.to_base32(); let flow = DBFlow::Initialize2FA { user_id: user.id.into(), @@ -2732,7 +2732,7 @@ pub async fn finish_2fa_flow( let mut codes = Vec::new(); for _ in 0..6 { - let mut rng = ChaCha20Rng::from_rng(&mut rand::rng()); + let mut rng = ChaCha20Rng::from_rng(&mut rand::rng()); let val = random_base62_rng(&mut rng, 11); sqlx::query!( @@ -3145,9 +3145,9 @@ pub async fn change_password( } let hasher = Argon2::default(); - let salt = rand::random::<[u8; 16]>(); + let salt = rand::random::<[u8; 16]>(); let password_hash = hasher - .hash_password_with_salt(new_password.as_bytes(), &salt) + .hash_password_with_salt(new_password.as_bytes(), &salt) .wrap_internal_err("hashing password")? .to_string(); diff --git a/apps/labrinth/src/routes/internal/pats.rs b/apps/labrinth/src/routes/internal/pats.rs index ee102773232..cedc7c8237d 100644 --- a/apps/labrinth/src/routes/internal/pats.rs +++ b/apps/labrinth/src/routes/internal/pats.rs @@ -143,7 +143,7 @@ pub async fn create_pat( .await .wrap_internal_err("generating pat ID")?; - let token = ChaCha20Rng::from_rng(&mut rand::rng()) + let token = ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(60) .map(char::from) diff --git a/apps/labrinth/src/routes/internal/session.rs b/apps/labrinth/src/routes/internal/session.rs index 75de4a9a043..0fb38912adc 100644 --- a/apps/labrinth/src/routes/internal/session.rs +++ b/apps/labrinth/src/routes/internal/session.rs @@ -100,7 +100,7 @@ pub async fn issue_session( let metadata = get_session_metadata(&req).await?; - let session = ChaCha20Rng::from_rng(&mut rand::rng()) + let session = ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(60) .map(char::from) diff --git a/apps/labrinth/src/routes/v2/openapi.rs b/apps/labrinth/src/routes/v2/openapi.rs index b90bc0428b5..31af5794b4e 100644 --- a/apps/labrinth/src/routes/v2/openapi.rs +++ b/apps/labrinth/src/routes/v2/openapi.rs @@ -162,8 +162,8 @@ fn add_file_hash_map_response_extension(operation: &mut Option) { } fn add_file_hash_map_response_extension_to_response(response: &mut Response) { - let Some(RefOr::T(content)) = response.content.get_mut("application/json") - else { + let Some(RefOr::T(content)) = response.content.get_mut("application/json") + else { return; }; let Some(RefOr::T(Schema::Object(schema))) = content.schema.as_mut() else { diff --git a/apps/labrinth/src/routes/v3/content/mod.rs b/apps/labrinth/src/routes/v3/content/mod.rs index 5b2f3b2b0d7..4c9d61dcb53 100644 --- a/apps/labrinth/src/routes/v3/content/mod.rs +++ b/apps/labrinth/src/routes/v3/content/mod.rs @@ -563,7 +563,7 @@ fn hash_serializable(value: &impl Serialize) -> String { .expect("serializing cache key should not fail"); let mut hasher = Sha256::new(); hasher.update(bytes); - hex::encode(hasher.finalize()) + hex::encode(hasher.finalize()) } fn parse_version_id(version_id: &str) -> Option { diff --git a/apps/labrinth/src/routes/v3/oauth_clients.rs b/apps/labrinth/src/routes/v3/oauth_clients.rs index 1eab76c35d3..0d1798b067a 100644 --- a/apps/labrinth/src/routes/v3/oauth_clients.rs +++ b/apps/labrinth/src/routes/v3/oauth_clients.rs @@ -654,7 +654,7 @@ pub async fn revoke_oauth_authorization( } fn generate_oauth_client_secret() -> String { - ChaCha20Rng::from_rng(&mut rand::rng()) + ChaCha20Rng::from_rng(&mut rand::rng()) .sample_iter(&Alphanumeric) .take(32) .map(char::from) diff --git a/apps/labrinth/src/routes/v3/projects/mod.rs b/apps/labrinth/src/routes/v3/projects/mod.rs index e79fd75a202..2493b80d787 100644 --- a/apps/labrinth/src/routes/v3/projects/mod.rs +++ b/apps/labrinth/src/routes/v3/projects/mod.rs @@ -213,7 +213,7 @@ pub async fn random_projects_get( }; if params.project_type.is_some() { - project_ids.shuffle(&mut rand::rng()); + project_ids.shuffle(&mut rand::rng()); project_ids.truncate(params.count as usize); } diff --git a/apps/labrinth/src/routes/v3/tags.rs b/apps/labrinth/src/routes/v3/tags.rs index 83804861484..9dd303c3c5f 100644 --- a/apps/labrinth/src/routes/v3/tags.rs +++ b/apps/labrinth/src/routes/v3/tags.rs @@ -239,12 +239,12 @@ pub async fn license_list() -> HttpResponse { let licenses = spdx::identifiers::LICENSES; let mut results: Vec = Vec::with_capacity(licenses.len()); - for license in licenses { - results.push(License { - short: license.name.to_string(), - name: license.full_name.to_string(), - }); - } + for license in licenses { + results.push(License { + short: license.name.to_string(), + name: license.full_name.to_string(), + }); + } HttpResponse::Ok().json(results) } diff --git a/apps/labrinth/src/search/filter/parse.rs b/apps/labrinth/src/search/filter/parse.rs index 657d0ba1466..bf8a5f72a54 100644 --- a/apps/labrinth/src/search/filter/parse.rs +++ b/apps/labrinth/src/search/filter/parse.rs @@ -27,13 +27,13 @@ fn keyword<'src>( ])) .boxed() }); - let boundary = any() - .filter(|character: &char| { - !character.is_ascii_alphanumeric() && !"_.".contains(*character) - }) - .rewind() - .ignored() - .or(end()); + let boundary = any() + .filter(|character: &char| { + !character.is_ascii_alphanumeric() && !"_.".contains(*character) + }) + .rewind() + .ignored() + .or(end()); keyword.then_ignore(boundary).boxed() } @@ -42,8 +42,8 @@ fn quoted_literal<'src>( quote: char, ) -> Boxed<'src, 'src, &'src str, FilterLiteral, extra::Err>> { let escaped = just('\\').ignore_then(any()); - let character = escaped.or(any() - .filter(move |character| *character != quote && *character != '\\')); + let character = escaped.or(any() + .filter(move |character| *character != quote && *character != '\\')); character .repeated() @@ -60,37 +60,37 @@ fn literal_parser<'src>() quoted_literal('"'), quoted_literal('`'), )); - let bare = any() - .filter(|character: &char| { - !character.is_whitespace() && !",[]()".contains(*character) - }) - .repeated() - .at_least(1) - .collect::() - .map(FilterLiteral::from_bare); + let bare = any() + .filter(|character: &char| { + !character.is_whitespace() && !",[]()".contains(*character) + }) + .repeated() + .at_least(1) + .collect::() + .map(FilterLiteral::from_bare); quoted.or(bare).padded().boxed() } fn field_name_parser<'src>() -> Boxed<'src, 'src, &'src str, String, extra::Err>> { - any() - .filter(|character: &char| { - character.is_ascii_alphabetic() || "_.".contains(*character) - }) - .then( - any() - .filter(|character: &char| { - character.is_ascii_alphanumeric() - || "_.".contains(*character) + any() + .filter(|character: &char| { + character.is_ascii_alphabetic() || "_.".contains(*character) + }) + .then( + any() + .filter(|character: &char| { + character.is_ascii_alphanumeric() + || "_.".contains(*character) + }) + .repeated() + .collect::>(), + ) + .map(|(first, rest)| { + std::iter::once(first).chain(rest).collect::() }) - .repeated() - .collect::>(), - ) - .map(|(first, rest)| { - std::iter::once(first).chain(rest).collect::() - }) - .boxed() + .boxed() } fn parser<'src>() @@ -111,7 +111,7 @@ fn parser<'src>() .separated_by(just(',').padded()) .at_least(1) .allow_trailing() - .collect::>() + .collect::>() .delimited_by(just('[').padded(), just(']').padded()); let comparison = choice(( @@ -159,38 +159,38 @@ fn parser<'src>() .clone() .or(expression.delimited_by(just('(').padded(), just(')').padded())) .padded(); - let unary = keyword("NOT") - .padded() - .repeated() - .collect::>() - .then(atom) - .map(|(operators, expression)| { + let unary = keyword("NOT") + .padded() + .repeated() + .collect::>() + .then(atom) + .map(|(operators, expression)| { operators.into_iter().fold(expression, |expression, ()| { FilterExpr::Not(Box::new(expression)) }) - }); + }); let and = unary .clone() - .then( - keyword("AND") - .padded() - .ignore_then(unary) - .repeated() - .collect::>(), - ) + .then( + keyword("AND") + .padded() + .ignore_then(unary) + .repeated() + .collect::>(), + ) .map(|(first, rest)| { FilterExpr::and(std::iter::once(first).chain(rest)) .expect("an expression always contains one operand") }); and.clone() - .then( - keyword("OR") - .padded() - .ignore_then(and) - .repeated() - .collect::>(), - ) + .then( + keyword("OR") + .padded() + .ignore_then(and) + .repeated() + .collect::>(), + ) .map(|(first, rest)| { FilterExpr::or(std::iter::once(first).chain(rest)) .expect("an expression always contains one operand") @@ -201,12 +201,12 @@ fn parser<'src>() } pub fn parse_expression(input: &str) -> Result { - parser().parse(input).into_result().map_err(|errors| { + parser().parse(input).into_result().map_err(|errors| { let error = errors .into_iter() .next() - .unwrap_or_else(|| Rich::custom((0..0).into(), "invalid filter")); - let start = error.span().start; + .unwrap_or_else(|| Rich::custom((0..0).into(), "invalid filter")); + let start = error.span().start; FilterParseError { position: start, message: error.to_string(), @@ -288,33 +288,33 @@ mod tests { assert_eq!(predicate.field.as_str(), "notification"); } - #[test] - fn preserves_list_values_and_trailing_comma() { - let FilterExpr::Predicate(predicate) = - parse_expression("categories nOt iN [fabric, forge,]").unwrap() - else { - panic!("expected a predicate"); - }; - assert_eq!( - predicate.condition, - FilterCondition::In { - values: vec![ - FilterLiteral::String("fabric".into()), - FilterLiteral::String("forge".into()), - ], - negated: true, -} - ); - assert!(parse_expression("categories IN []").is_err()); - } + #[test] + fn preserves_list_values_and_trailing_comma() { + let FilterExpr::Predicate(predicate) = + parse_expression("categories nOt iN [fabric, forge,]").unwrap() + else { + panic!("expected a predicate"); + }; + assert_eq!( + predicate.condition, + FilterCondition::In { + values: vec![ + FilterLiteral::String("fabric".into()), + FilterLiteral::String("forge".into()), + ], + negated: true, + } + ); + assert!(parse_expression("categories IN []").is_err()); + } - #[test] - fn preserves_repeated_unary_not() { - let FilterExpr::Not(expression) = - parse_expression("NOT NOT open_source = true").unwrap() - else { - panic!("expected an outer NOT expression"); - }; - assert!(matches!(*expression, FilterExpr::Not(_))); - } + #[test] + fn preserves_repeated_unary_not() { + let FilterExpr::Not(expression) = + parse_expression("NOT NOT open_source = true").unwrap() + else { + panic!("expected an outer NOT expression"); + }; + assert!(matches!(*expression, FilterExpr::Not(_))); + } } diff --git a/apps/labrinth/src/test/database.rs b/apps/labrinth/src/test/database.rs index deb7187ffec..4b50c5592e0 100644 --- a/apps/labrinth/src/test/database.rs +++ b/apps/labrinth/src/test/database.rs @@ -2,6 +2,7 @@ use crate::database::PgPool; use crate::database::{MIGRATOR, ReadOnlyPgPool}; use crate::env::ENV; use crate::search::{self, SearchBackend}; +use sqlx::AssertSqlSafe; use sqlx::postgres::PgPoolOptions; use std::sync::Arc; use std::time::Duration; @@ -113,6 +114,8 @@ impl TemporaryDatabase { // 6. Creates a temporary database at 'temp_database_name' from the template // 7. Drops lock and all created connections in the function async fn create_temporary(database_url: &str, temp_database_name: &str) { + assert_safe_database_name(temp_database_name); + assert_safe_database_name(TEMPLATE_DATABASE_NAME); let main_pool = sqlx::PgPool::connect(database_url) .await .map(PgPool::from) @@ -129,9 +132,9 @@ impl TemporaryDatabase { if lock_acquired { // Create the db template if it doesn't exist // Check if template_db already exists - let db_exists: Option = sqlx::query_scalar(&format!( - "SELECT 1 FROM pg_database WHERE datname = '{TEMPLATE_DATABASE_NAME}'" - )) + let db_exists: Option = sqlx::query_scalar(AssertSqlSafe(format!( + "SELECT 1 FROM pg_database WHERE datname = '{TEMPLATE_DATABASE_NAME}'" + ))) .fetch_optional(&main_pool) .await .unwrap(); @@ -215,7 +218,7 @@ impl TemporaryDatabase { &temp_database_name, TEMPLATE_DATABASE_NAME ); - sqlx::raw_sql(&create_db_query) + sqlx::raw_sql(AssertSqlSafe(create_db_query)) .execute(&main_pool) .await .expect("Database creation failed"); @@ -238,6 +241,7 @@ impl TemporaryDatabase { // If a temporary db is created, it must be cleaned up with cleanup. // This means that dbs will only 'remain' if a test fails (for examination of the db), and will be cleaned up otherwise. pub async fn cleanup(mut self) { + assert_safe_database_name(&self.database_name); let database_url = &ENV.DATABASE_URL; self.pool.close().await; @@ -252,7 +256,7 @@ impl TemporaryDatabase { "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname = '{}' AND pid <> pg_backend_pid()", &self.database_name ); - sqlx::raw_sql(&terminate_query) + sqlx::raw_sql(AssertSqlSafe(terminate_query)) .execute(&self.pool) .await .unwrap(); @@ -260,7 +264,7 @@ impl TemporaryDatabase { // Execute the deletion query asynchronously let drop_db_query = format!("DROP DATABASE IF EXISTS {}", &self.database_name); - sqlx::raw_sql(&drop_db_query) + sqlx::raw_sql(AssertSqlSafe(drop_db_query)) .execute(&self.pool) .await .expect("Database deletion failed"); @@ -268,13 +272,29 @@ impl TemporaryDatabase { } async fn create_template_database(pool: &PgPool) { + assert_safe_database_name(TEMPLATE_DATABASE_NAME); let create_db_query = format!("CREATE DATABASE {TEMPLATE_DATABASE_NAME}"); - sqlx::raw_sql(&create_db_query) + sqlx::raw_sql(AssertSqlSafe(create_db_query)) .execute(pool) .await .expect("Database creation failed"); } +// Names are interpolated as both unquoted identifiers and SQL string literals. +fn assert_safe_database_name(name: &str) { + assert!( + !name.is_empty() + && name.len() <= 63 + && name.as_bytes()[0].is_ascii_lowercase() + && name.bytes().all(|byte| { + byte.is_ascii_lowercase() + || byte.is_ascii_digit() + || byte == b'_' + }), + "unsafe database name: {name:?}" + ); +} + // Appends a random 8-digit number to the end of the str pub fn generate_random_name(str: &str) -> String { let mut str = String::from(str); diff --git a/apps/labrinth/src/test/db.rs b/apps/labrinth/src/test/db.rs index 500cb2700e8..30d1383db1b 100644 --- a/apps/labrinth/src/test/db.rs +++ b/apps/labrinth/src/test/db.rs @@ -1,5 +1,6 @@ use crate::database::Executor; use eyre::{Context, Result}; +use sqlx::AssertSqlSafe; use crate::database::{PgPool, models::DBUserId}; @@ -71,7 +72,8 @@ pub mod user_id { /// /// Errors if the fixture could not be applied. pub async fn add_dummy_data(db: &PgPool) -> Result<()> { - db.execute( + // Fixture SQL only substitutes numeric values and hard-coded, quote-free PATs. + db.execute(AssertSqlSafe( include_str!("../../fixtures/dummy_data.sql") // .replace("{{user_id::ADMIN}}", &user_id::ADMIN.0.to_string()) @@ -92,9 +94,8 @@ pub async fn add_dummy_data(db: &PgPool) -> Result<()> { .replace( "{{all_scopes}}", &crate::models::pats::Scopes::all().bits().to_string(), - ) - .as_str(), - ) + ), + )) .await .wrap_err("failed to add dummy data")?; diff --git a/apps/labrinth/src/test/dummy_data.rs b/apps/labrinth/src/test/dummy_data.rs index 01ab2a23ff6..de463a984f0 100644 --- a/apps/labrinth/src/test/dummy_data.rs +++ b/apps/labrinth/src/test/dummy_data.rs @@ -355,9 +355,9 @@ pub async fn add_dummy_data(api: &ApiV3, db: TemporaryDatabase) -> DummyData { let oauth_client_alpha = get_oauth_client_alpha(api).await; - sqlx::raw_sql(&format!( + sqlx::raw_sql(sqlx::AssertSqlSafe(format!( "INSERT INTO dummy_data (update_id) VALUES ({DUMMY_DATA_UPDATE})" - )) + ))) .execute(pool) .await .unwrap(); diff --git a/apps/labrinth/src/util/anrok.rs b/apps/labrinth/src/util/anrok.rs index 0e893d31803..ff7e1dfd359 100644 --- a/apps/labrinth/src/util/anrok.rs +++ b/apps/labrinth/src/util/anrok.rs @@ -285,7 +285,7 @@ impl Client { n += 1; // 1000 + ~500, 2000 + ~1000, 5000 + ~2500 let base = (n - 1).pow(2) * 1000 + 1000; - let random = rand::rng().random_range(0..(base / 2)); + let random = rand::rng().random_range(0..(base / 2)); tokio::time::sleep(std::time::Duration::from_millis( base + random, )) diff --git a/apps/labrinth/src/util/cel.rs b/apps/labrinth/src/util/cel.rs index 51bb1c303de..6d38f462042 100644 --- a/apps/labrinth/src/util/cel.rs +++ b/apps/labrinth/src/util/cel.rs @@ -16,25 +16,25 @@ use url::{Host, Url}; const MAX_PREPROCESSED_SIZE: usize = 1_048_576; pub struct Context<'a> { - inner: CelContext<'a, 'a>, + inner: CelContext<'a, 'a>, } impl Default for Context<'_> { fn default() -> Self { let mut inner = CelContext::default(); - inner - .add_function("url.parse", parse_url) - .expect("`url.parse` must not conflict with a standard overload"); - inner.add_function("url.is_valid", is_valid_url).expect( - "`url.is_valid` must not conflict with a standard overload", - ); + inner + .add_function("url.parse", parse_url) + .expect("`url.parse` must not conflict with a standard overload"); + inner.add_function("url.is_valid", is_valid_url).expect( + "`url.is_valid` must not conflict with a standard overload", + ); Self { inner } } } impl<'a> Deref for Context<'a> { - type Target = CelContext<'a, 'a>; + type Target = CelContext<'a, 'a>; fn deref(&self) -> &Self::Target { &self.inner @@ -241,29 +241,29 @@ enum LexState { fn directive_parser<'src>() -> impl Parser<'src, &'src str, Directive, extra::Err>> { let horizontal_whitespace = one_of(" \t").repeated(); - let identifier = any() - .filter(|character: &char| { - character.is_ascii_alphabetic() || *character == '_' - }) - .then( - any() - .filter(|character: &char| { - character.is_ascii_alphanumeric() || *character == '_' + let identifier = any() + .filter(|character: &char| { + character.is_ascii_alphabetic() || *character == '_' }) - .repeated() - .collect::>(), - ) - .map(|(first, rest)| { - std::iter::once(first).chain(rest).collect::() - }); + .then( + any() + .filter(|character: &char| { + character.is_ascii_alphanumeric() || *character == '_' + }) + .repeated() + .collect::>(), + ) + .map(|(first, rest)| { + std::iter::once(first).chain(rest).collect::() + }); let expression = any().repeated().at_least(1).collect::(); let kind = just("define").to(true).or(just("bind").to(false)); horizontal_whitespace .ignore_then(just('#')) - .then_ignore(horizontal_whitespace) + .then_ignore(horizontal_whitespace) .ignore_then(kind) - .then_ignore(horizontal_whitespace.at_least(1)) + .then_ignore(horizontal_whitespace.at_least(1)) .then(identifier) .then_ignore(horizontal_whitespace.at_least(1)) .then(expression) @@ -295,19 +295,19 @@ fn preprocess(source: &str) -> Result { if directive { let directive = line.trim_end_matches(['\r', '\n']); - let directive = directive_parser() - .parse(directive) - .into_result() - .map_err(|errors| { - let error = errors.into_iter().next().unwrap_or_else(|| { - Rich::custom((0..0).into(), "invalid directive") - }); - PreprocessorError::InvalidDirective { - line: line_index + 1, - column: error.span().start + 1, - message: error.to_string(), - } - })?; + let directive = directive_parser() + .parse(directive) + .into_result() + .map_err(|errors| { + let error = errors.into_iter().next().unwrap_or_else(|| { + Rich::custom((0..0).into(), "invalid directive") + }); + PreprocessorError::InvalidDirective { + line: line_index + 1, + column: error.span().start + 1, + message: error.to_string(), + } + })?; match directive { Directive::Define(definition) => { @@ -888,18 +888,18 @@ URL.fragment == "fragment" assert!(error.to_string().contains("url.parse")); } - #[test] - fn preserves_directive_identifiers_and_horizontal_whitespace() { - let preprocessed = super::preprocess( - "\t# define\t_NAME2\t42\n#bind result_2 _NAME2\nresult_2", - ) - .unwrap(); - assert_eq!(preprocessed.expression.trim(), "result_2"); - assert_eq!(preprocessed.bindings.len(), 1); - assert_eq!(preprocessed.bindings[0].name, "result_2"); - assert_eq!(preprocessed.bindings[0].expression, "42"); - assert_eq!(preprocessed.bindings[0].line, 2); - assert!(super::preprocess("#define 2NAME 42\ntrue").is_err()); - assert!(super::preprocess("#bind name\ntrue").is_err()); -} + #[test] + fn preserves_directive_identifiers_and_horizontal_whitespace() { + let preprocessed = super::preprocess( + "\t# define\t_NAME2\t42\n#bind result_2 _NAME2\nresult_2", + ) + .unwrap(); + assert_eq!(preprocessed.expression.trim(), "result_2"); + assert_eq!(preprocessed.bindings.len(), 1); + assert_eq!(preprocessed.bindings[0].name, "result_2"); + assert_eq!(preprocessed.bindings[0].expression, "42"); + assert_eq!(preprocessed.bindings[0].line, 2); + assert!(super::preprocess("#define 2NAME 42\ntrue").is_err()); + assert!(super::preprocess("#bind name\ntrue").is_err()); + } } diff --git a/apps/labrinth/src/validate/fabric.rs b/apps/labrinth/src/validate/fabric.rs index 7c159694e63..37f6e0f2038 100644 --- a/apps/labrinth/src/validate/fabric.rs +++ b/apps/labrinth/src/validate/fabric.rs @@ -62,7 +62,7 @@ impl super::Validator for FabricValidator { )); } - validate_pack_formats(archive) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/forge.rs b/apps/labrinth/src/validate/forge.rs index 024cd1ac213..1a3682401f9 100644 --- a/apps/labrinth/src/validate/forge.rs +++ b/apps/labrinth/src/validate/forge.rs @@ -30,16 +30,16 @@ impl super::Validator for ForgeValidator { ) -> Result { if archive.by_name("META-INF/mods.toml").is_err() && archive.by_name("META-INF/MANIFEST.MF").is_err() - && !crate::validate::validated_file_names(archive)? - .into_iter() - .any(|x| x.ends_with(".class")) + && !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.ends_with(".class")) { return Ok(ValidationResult::Warning( "No mods.toml or valid class files present for Forge file.", )); } - validate_pack_formats(archive) + validate_pack_formats(archive) } } @@ -68,15 +68,15 @@ impl super::Validator for LegacyForgeValidator { ) -> Result { if archive.by_name("mcmod.info").is_err() && archive.by_name("META-INF/MANIFEST.MF").is_err() - && !crate::validate::validated_file_names(archive)? - .into_iter() - .any(|x| x.ends_with(".class")) + && !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.ends_with(".class")) { return Ok(ValidationResult::Warning( "Forge mod file does not contain mcmod.info or valid class files!", )); }; - validate_pack_formats(archive) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/liteloader.rs b/apps/labrinth/src/validate/liteloader.rs index 0df573ff224..c6227adc841 100644 --- a/apps/labrinth/src/validate/liteloader.rs +++ b/apps/labrinth/src/validate/liteloader.rs @@ -30,6 +30,6 @@ impl super::Validator for LiteLoaderValidator { )); } - validate_pack_formats(archive) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/mod.rs b/apps/labrinth/src/validate/mod.rs index bf2a15b952b..467d2b7f066 100644 --- a/apps/labrinth/src/validate/mod.rs +++ b/apps/labrinth/src/validate/mod.rs @@ -301,9 +301,9 @@ fn validate_additional_jar( }; if file_type == FileType::SourcesJar - && !validated_file_names(archive)? - .into_iter() - .any(|name| name.ends_with(".java")) + && !validated_file_names(archive)? + .into_iter() + .any(|name| name.ends_with(".java")) { return Err(ValidationError::InvalidInput( "sources jars must contain at least one `.java` file".into(), @@ -450,25 +450,25 @@ fn game_version_supported( pub fn validate_pack_formats( archive: &mut ZipArchive>, ) -> Result { - let has_bundled_mods = validated_file_names(archive)?.iter().any(|name| { - (name.starts_with("mods/") || name.starts_with("override/mods/")) - && name.ends_with(".jar") - }); - if (archive.by_name("modlist.html").is_ok() - && archive.by_name("manifest.json").is_ok()) - || has_bundled_mods + let has_bundled_mods = validated_file_names(archive)?.iter().any(|name| { + (name.starts_with("mods/") || name.starts_with("override/mods/")) + && name.ends_with(".jar") + }); + if (archive.by_name("modlist.html").is_ok() + && archive.by_name("manifest.json").is_ok()) + || has_bundled_mods { - return Ok(ValidationResult::Warning( + return Ok(ValidationResult::Warning( "Invalid modpack file. Modpacks must be uploaded in the .mrpack format, not as a ZIP file.", - )); - } + )); + } - Ok(ValidationResult::Pass) + Ok(ValidationResult::Pass) } /// Decodes every filename before callers can short-circuit on a matching entry. fn validated_file_names( - archive: &ZipArchive>, + archive: &ZipArchive>, ) -> Result>, ValidationError> { - Ok(archive.file_names().collect::, _>>()?) + Ok(archive.file_names().collect::, _>>()?) } diff --git a/apps/labrinth/src/validate/modpack.rs b/apps/labrinth/src/validate/modpack.rs index 3f3d9169805..e5f02f4cae0 100644 --- a/apps/labrinth/src/validate/modpack.rs +++ b/apps/labrinth/src/validate/modpack.rs @@ -52,9 +52,9 @@ impl super::Validator for ModpackValidator { } if pack.files.is_empty() - && !crate::validate::validated_file_names(archive)? - .into_iter() - .any(|x| x.starts_with("overrides/")) + && !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.starts_with("overrides/")) { return Err(ValidationError::InvalidInput( "Pack has no files!".into(), @@ -77,8 +77,8 @@ impl super::Validator for ModpackValidator { Ok(ValidationResult::PassWithPackDataAndFiles { format: pack, - files: crate::validate::validated_file_names(archive)? - .into_iter() + files: crate::validate::validated_file_names(archive)? + .into_iter() .filter(|x| { (x.ends_with("jar") || x.ends_with("zip")) && (x.starts_with("overrides/mods") diff --git a/apps/labrinth/src/validate/neoforge.rs b/apps/labrinth/src/validate/neoforge.rs index 6f136b8ebb7..2d939411a70 100644 --- a/apps/labrinth/src/validate/neoforge.rs +++ b/apps/labrinth/src/validate/neoforge.rs @@ -27,15 +27,15 @@ impl super::Validator for NeoForgeValidator { if archive.by_name("META-INF/mods.toml").is_err() && archive.by_name("META-INF/neoforge.mods.toml").is_err() && archive.by_name("META-INF/MANIFEST.MF").is_err() - && !crate::validate::validated_file_names(archive)? - .into_iter() - .any(|x| x.ends_with(".class")) + && !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.ends_with(".class")) { return Ok(ValidationResult::Warning( "No neoforge.mods.toml, mods.toml, or valid class files present for NeoForge file.", )); } - validate_pack_formats(archive) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/plugin.rs b/apps/labrinth/src/validate/plugin.rs index d898e7b837a..794b476c2f0 100644 --- a/apps/labrinth/src/validate/plugin.rs +++ b/apps/labrinth/src/validate/plugin.rs @@ -26,9 +26,9 @@ impl super::Validator for GeyserValidator { archive: &mut ZipArchive>, loaders: &[Loader], ) -> Result<(), ValidationError> { - if crate::validate::validated_file_names(archive)? - .into_iter() - .any(|name| name == "extension.yml") + if crate::validate::validated_file_names(archive)? + .into_iter() + .any(|name| name == "extension.yml") && !loaders.iter().any(|loader| loader.0 == "geyser") { return Err(ValidationError::InvalidInput( @@ -59,8 +59,8 @@ impl super::Validator for PluginYmlValidator { &self, archive: &mut ZipArchive>, ) -> Result { - if !crate::validate::validated_file_names(archive)? - .into_iter() + if !crate::validate::validated_file_names(archive)? + .into_iter() .any(|name| name == "plugin.yml" || name == "paper-plugin.yml") { return Ok(ValidationResult::Warning( @@ -91,8 +91,8 @@ impl super::Validator for BungeeCordValidator { &self, archive: &mut ZipArchive>, ) -> Result { - if !crate::validate::validated_file_names(archive)? - .into_iter() + if !crate::validate::validated_file_names(archive)? + .into_iter() .any(|name| name == "plugin.yml" || name == "bungee.yml") { return Ok(ValidationResult::Warning( @@ -152,14 +152,14 @@ impl super::Validator for SpongeValidator { &self, archive: &mut ZipArchive>, ) -> Result { - if !crate::validate::validated_file_names(archive)? - .into_iter() - .any(|name| { - name == "sponge_plugins.json" - || name == "mcmod.info" - || name == "META-INF/sponge_plugins.json" - }) - { + if !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|name| { + name == "sponge_plugins.json" + || name == "mcmod.info" + || name == "META-INF/sponge_plugins.json" + }) + { return Ok(ValidationResult::Warning( "No sponge_plugins.json or mcmod.info present for Sponge plugin.", )); diff --git a/apps/labrinth/src/validate/quilt.rs b/apps/labrinth/src/validate/quilt.rs index 7f23b3f6165..7cd7f42eb94 100644 --- a/apps/labrinth/src/validate/quilt.rs +++ b/apps/labrinth/src/validate/quilt.rs @@ -35,6 +35,6 @@ impl super::Validator for QuiltValidator { )); } - validate_pack_formats(archive) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/rift.rs b/apps/labrinth/src/validate/rift.rs index 9ca5314113f..ec9e4106288 100644 --- a/apps/labrinth/src/validate/rift.rs +++ b/apps/labrinth/src/validate/rift.rs @@ -30,6 +30,6 @@ impl super::Validator for RiftValidator { )); } - validate_pack_formats(archive) + validate_pack_formats(archive) } } diff --git a/apps/labrinth/src/validate/risugami.rs b/apps/labrinth/src/validate/risugami.rs index 7b2d1847970..6cfa4bfe1d4 100644 --- a/apps/labrinth/src/validate/risugami.rs +++ b/apps/labrinth/src/validate/risugami.rs @@ -23,29 +23,29 @@ impl super::Validator for RisugamiValidator { &self, archive: &mut ZipArchive>, ) -> Result { - if crate::validate::validated_file_names(archive)? - .into_iter() - .any(|name| name == "instance.cfg") - && crate::validate::validated_file_names(archive)? - .into_iter() - .any(|name| name == "mmc-pack.json") + if crate::validate::validated_file_names(archive)? + .into_iter() + .any(|name| name == "instance.cfg") + && crate::validate::validated_file_names(archive)? + .into_iter() + .any(|name| name == "mmc-pack.json") { return Err(ValidationError::InvalidInput( "multimc and prism modpacks cannot be uploaded as risugami's modloader mods".into(), )); } - if crate::validate::validated_file_names(archive)? - .into_iter() - .any(|name| name == "level.dat") - { + if crate::validate::validated_file_names(archive)? + .into_iter() + .any(|name| name == "level.dat") + { return Err(ValidationError::InvalidInput( "minecraft worlds cannot be uploaded as risugami's modloader mods".into(), )); } - for name in crate::validate::validated_file_names(archive)?.into_iter() - { + for name in crate::validate::validated_file_names(archive)?.into_iter() + { let Some((_, extension)) = name.rsplit_once('.') else { continue; }; diff --git a/apps/labrinth/src/validate/shader.rs b/apps/labrinth/src/validate/shader.rs index d2abd250a62..64ed93b5d63 100644 --- a/apps/labrinth/src/validate/shader.rs +++ b/apps/labrinth/src/validate/shader.rs @@ -24,10 +24,10 @@ impl super::Validator for ShaderValidator { &self, archive: &mut ZipArchive>, ) -> Result { - if !crate::validate::validated_file_names(archive)? - .into_iter() - .any(|x| x.starts_with("shaders/")) - { + if !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.starts_with("shaders/")) + { return Ok(ValidationResult::Warning( "No shaders folder present for OptiFine/Iris shader.", )); @@ -62,10 +62,10 @@ impl super::Validator for CanvasShaderValidator { )); }; - if !crate::validate::validated_file_names(archive)? - .into_iter() - .any(|x| x.contains("/pipelines/")) - { + if !crate::validate::validated_file_names(archive)? + .into_iter() + .any(|x| x.contains("/pipelines/")) + { return Ok(ValidationResult::Warning( "No pipeline shaders folder present for canvas shaders.", )); @@ -112,8 +112,8 @@ impl super::Validator for CoreShaderValidator { if match file { MaybeProtectedZipFile::Unprotected(archive) => { archive.by_name("pack.mcmeta").is_ok() - && crate::validate::validated_file_names(archive)? - .into_iter() + && crate::validate::validated_file_names(archive)? + .into_iter() .any(|x| x.starts_with("assets/minecraft/shaders/")) } MaybeProtectedZipFile::MaybeProtected { data, .. } => { diff --git a/apps/labrinth/tests/project.rs b/apps/labrinth/tests/project.rs index 15856f26b67..58e55e5e1e8 100644 --- a/apps/labrinth/tests/project.rs +++ b/apps/labrinth/tests/project.rs @@ -381,7 +381,7 @@ async fn project_redirect_accepts_literal_and_encoded_plus() { r#"INSERT INTO project_redirects (slug, target_project_id) VALUES ('redirect+alias', {target}), ('redirect%2balias', {percent_target})"# ); - sqlx::raw_sql(&fixture_sql) + sqlx::raw_sql(sqlx::AssertSqlSafe(fixture_sql)) .execute(&env.db.pool) .await .unwrap(); @@ -439,7 +439,8 @@ async fn project_redirect_cache_preserves_case_sensitive_ids() { r#"INSERT INTO project_redirects (slug, target_project_id) VALUES ('{alias}', {target})"# ); - sqlx::raw_sql(&fixture_sql) + assert!(alias.bytes().all(|byte| byte.is_ascii_alphanumeric())); + sqlx::raw_sql(sqlx::AssertSqlSafe(fixture_sql)) .execute(&env.db.pool) .await .unwrap(); diff --git a/clippy.toml b/clippy.toml index ddc612e9083..a39dd259da9 100644 --- a/clippy.toml +++ b/clippy.toml @@ -1,2 +1,2 @@ allow-dbg-in-tests = true -msrv = "1.90.0" +msrv = "1.94.0" diff --git a/packages/app-lib/src/api/instance/shared/publish.rs b/packages/app-lib/src/api/instance/shared/publish.rs index eaea243db1d..399bb3d305f 100644 --- a/packages/app-lib/src/api/instance/shared/publish.rs +++ b/packages/app-lib/src/api/instance/shared/publish.rs @@ -1098,8 +1098,8 @@ pub(super) async fn upload_external_files( hasher.update(&buffer[..read]); size += read as u64; } - let file_sha512 = - crate::util::content_hash::encode_hex(hasher.finalize().as_slice()); + let file_sha512 = + crate::util::content_hash::encode_hex(hasher.finalize().as_slice()); use tokio::io::AsyncSeekExt; file.rewind().await?; let body = diff --git a/packages/app-lib/src/api/instance/synced_options/game_options/locales/archive.rs b/packages/app-lib/src/api/instance/synced_options/game_options/locales/archive.rs index 42b2ef32bb5..92432f77fb3 100644 --- a/packages/app-lib/src/api/instance/synced_options/game_options/locales/archive.rs +++ b/packages/app-lib/src/api/instance/synced_options/game_options/locales/archive.rs @@ -167,10 +167,10 @@ fn inspect_archive( )); } *entries -= archive.len(); - let names: BTreeSet = archive - .file_names() - .map(|name| name.map(|name| name.into_owned())) - .collect::>()?; + let names: BTreeSet = archive + .file_names() + .map(|name| name.map(|name| name.into_owned())) + .collect::>()?; let mut bundle = LanguageBundle { nested_path: nested_path.to_owned(), ..Default::default() diff --git a/packages/app-lib/src/api/instance/synced_options/game_options/options_file.rs b/packages/app-lib/src/api/instance/synced_options/game_options/options_file.rs index a81939cc899..9d22ee78077 100644 --- a/packages/app-lib/src/api/instance/synced_options/game_options/options_file.rs +++ b/packages/app-lib/src/api/instance/synced_options/game_options/options_file.rs @@ -109,11 +109,15 @@ impl GameOptionsDocument { } else if bytes.starts_with(&[0xFE, 0xFF]) { (Bom::Utf16Be, UTF_16BE, &bytes[2..]) } else { - let mut detector = chardetng::EncodingDetector::new( - chardetng::Iso2022JpDetection::Allow, - ); + let mut detector = chardetng::EncodingDetector::new( + chardetng::Iso2022JpDetection::Allow, + ); detector.feed(bytes, true); - (Bom::None, detector.guess(None, chardetng::Utf8Detection::Allow), bytes) + ( + Bom::None, + detector.guess(None, chardetng::Utf8Detection::Allow), + bytes, + ) }; let (decoded, decode_errors) = encoding.decode_without_bom_handling(contents); diff --git a/packages/app-lib/src/api/instance/synced_options/game_options/pack_updates.rs b/packages/app-lib/src/api/instance/synced_options/game_options/pack_updates.rs index 3aaa79a727b..025d6af9677 100644 --- a/packages/app-lib/src/api/instance/synced_options/game_options/pack_updates.rs +++ b/packages/app-lib/src/api/instance/synced_options/game_options/pack_updates.rs @@ -61,11 +61,13 @@ fn detected_encoding_name(bytes: &[u8]) -> String { if bytes.starts_with(&[0xEF, 0xBB, 0xBF]) { return UTF_8.name().to_string(); } - let mut detector = chardetng::EncodingDetector::new( - chardetng::Iso2022JpDetection::Allow, - ); + let mut detector = + chardetng::EncodingDetector::new(chardetng::Iso2022JpDetection::Allow); detector.feed(bytes, true); - detector.guess(None, chardetng::Utf8Detection::Allow).name().to_string() + detector + .guess(None, chardetng::Utf8Detection::Allow) + .name() + .to_string() } fn pack_version_id(metadata: &InstanceMetadata) -> Option<&str> { diff --git a/packages/app-lib/src/api/instance/synced_packs/operations.rs b/packages/app-lib/src/api/instance/synced_packs/operations.rs index ba1d7b98b2c..d564ed25c1d 100644 --- a/packages/app-lib/src/api/instance/synced_packs/operations.rs +++ b/packages/app-lib/src/api/instance/synced_packs/operations.rs @@ -162,15 +162,15 @@ pub(super) fn validate_pack( ProjectType::DataPack => ("data/", "assets/"), _ => bail!(ErrorKind::InvalidPack(InvalidPack::UnsupportedType)), }; - let mut has_prefix = false; - let mut has_other_prefix = false; - for name in archive.file_names() { - let name = name?; - has_prefix |= name.starts_with(prefix); - has_other_prefix |= name.starts_with(other_prefix); - } - if !value.get("pack").is_some_and(serde_json::Value::is_object) - || (!has_prefix && has_other_prefix) + let mut has_prefix = false; + let mut has_other_prefix = false; + for name in archive.file_names() { + let name = name?; + has_prefix |= name.starts_with(prefix); + has_other_prefix |= name.starts_with(other_prefix); + } + if !value.get("pack").is_some_and(serde_json::Value::is_object) + || (!has_prefix && has_other_prefix) { bail!(ErrorKind::InvalidPack(InvalidPack::WrongType)); } diff --git a/packages/app-lib/src/api/jre.rs b/packages/app-lib/src/api/jre.rs index 75103900db7..2aa07b94eb5 100644 --- a/packages/app-lib/src/api/jre.rs +++ b/packages/app-lib/src/api/jre.rs @@ -289,25 +289,25 @@ async fn auto_install_java_inner( "failed to read java zip".to_string(), ))?; - let names = archive.file_names().collect::, _>>()?; - // removes the old installation of java - if let Some(file) = names.first() - && let Some(dir) = file.split('/').next() - { - if dir.is_empty() - || dir == "." - || dir == ".." - || dir.contains(['\\', ':']) - || !matches!( - std::path::Path::new(dir).components().next(), - Some(std::path::Component::Normal(_)) - ) - { - bail!(ErrorKind::InputError( - "invalid Java archive directory".to_string() - )); - } - let path = path.join(dir); + let names = archive.file_names().collect::, _>>()?; + // removes the old installation of java + if let Some(file) = names.first() + && let Some(dir) = file.split('/').next() + { + if dir.is_empty() + || dir == "." + || dir == ".." + || dir.contains(['\\', ':']) + || !matches!( + std::path::Path::new(dir).components().next(), + Some(std::path::Component::Normal(_)) + ) + { + bail!(ErrorKind::InputError( + "invalid Java archive directory".to_string() + )); + } + let path = path.join(dir); if path.exists() { io::remove_dir_all(path).await?; diff --git a/packages/app-lib/src/api/logs.rs b/packages/app-lib/src/api/logs.rs index a66323a53eb..864cc7f2451 100644 --- a/packages/app-lib/src/api/logs.rs +++ b/packages/app-lib/src/api/logs.rs @@ -44,13 +44,17 @@ pub struct LatestLogCursor { pub struct CensoredString(String); impl CensoredString { pub fn censor(mut s: String, credentials_list: &[Credentials]) -> Self { - let Ok(username) = whoami::username_os() else { - return Self("[Log withheld: unable to determine computer username]".into()); - }; - let username = username.to_string_lossy(); - if username.is_empty() { - return Self("[Log withheld: unable to determine computer username]".into()); - } + let Ok(username) = whoami::username_os() else { + return Self( + "[Log withheld: unable to determine computer username]".into(), + ); + }; + let username = username.to_string_lossy(); + if username.is_empty() { + return Self( + "[Log withheld: unable to determine computer username]".into(), + ); + } s = s .replace(&format!("/{username}/"), "/{COMPUTER_USERNAME}/") .replace(&format!("\\{username}\\"), "\\{COMPUTER_USERNAME}\\"); diff --git a/packages/app-lib/src/api/minecraft_skins.rs b/packages/app-lib/src/api/minecraft_skins.rs index 39099bd45a5..6e44ede1178 100644 --- a/packages/app-lib/src/api/minecraft_skins.rs +++ b/packages/app-lib/src/api/minecraft_skins.rs @@ -1348,12 +1348,12 @@ fn get_fallback_default_skin() -> crate::Result<&'static Skin> { } fn local_skin_texture_key(texture_blob: &[u8]) -> Arc { - Arc::from(format!( - "local-{}", - crate::util::content_hash::encode_hex( - sha2::Sha256::digest(texture_blob).as_slice(), - ), - )) + Arc::from(format!( + "local-{}", + crate::util::content_hash::encode_hex( + sha2::Sha256::digest(texture_blob).as_slice(), + ), + )) } #[derive(Debug, PartialEq, Eq)] diff --git a/packages/app-lib/src/api/server_address.rs b/packages/app-lib/src/api/server_address.rs index d337a229ba3..3fd2d5d21b1 100644 --- a/packages/app-lib/src/api/server_address.rs +++ b/packages/app-lib/src/api/server_address.rs @@ -148,18 +148,20 @@ pub async fn resolve_server_address( } let _permit = SIMULTANEOUS_DNS_QUERIES.acquire().await?; - let resolver = hickory_resolver::TokioResolver::builder_tokio()?.build()?; + let resolver = hickory_resolver::TokioResolver::builder_tokio()?.build()?; Ok( match resolver.srv_lookup(format!("_minecraft._tcp.{host}")).await { - Err(e) if e.is_no_records_found() => None, + Err(e) if e.is_no_records_found() => None, Err(e) => return Err(e.into()), - Ok(lookup) => lookup.answers().iter().find_map(|record| { - if let hickory_resolver::proto::rr::RData::SRV(srv) = &record.data { - Some((srv.target.to_string(), srv.port)) - } else { - None - } - }), + Ok(lookup) => lookup.answers().iter().find_map(|record| { + if let hickory_resolver::proto::rr::RData::SRV(srv) = + &record.data + { + Some((srv.target.to_string(), srv.port)) + } else { + None + } + }), } .unwrap_or_else(|| (host.to_owned(), port)), ) diff --git a/packages/app-lib/src/api/worlds.rs b/packages/app-lib/src/api/worlds.rs index 4a53c1fde30..47c94145ab4 100644 --- a/packages/app-lib/src/api/worlds.rs +++ b/packages/app-lib/src/api/worlds.rs @@ -747,18 +747,18 @@ async fn get_world_session_lock(world: &Path) -> Result { .await?; file.write_all("☃".as_bytes()).await?; file.sync_all().await?; - match file.try_lock() { - Ok(()) => Ok(file), - Err(fs4::TryLockError::WouldBlock) => Err(io::IOError::IOPathError { - source: std::io::Error::new( - std::io::ErrorKind::ResourceBusy, - "already locked by Minecraft", - ), - path: lock_path.to_string_lossy().into_owned(), - } - .into()), - Err(fs4::TryLockError::Error(error)) => Err(error.into()), - } + match file.try_lock() { + Ok(()) => Ok(file), + Err(fs4::TryLockError::WouldBlock) => Err(io::IOError::IOPathError { + source: std::io::Error::new( + std::io::ErrorKind::ResourceBusy, + "already locked by Minecraft", + ), + path: lock_path.to_string_lossy().into_owned(), + } + .into()), + Err(fs4::TryLockError::Error(error)) => Err(error.into()), + } } async fn try_get_world_session_lock( @@ -771,11 +771,11 @@ async fn try_get_world_session_lock( .open(world.join("session.lock")) .await?; file.sync_all().await?; - match file.try_lock() { - Ok(()) => Ok(Some(file)), - Err(fs4::TryLockError::WouldBlock) => Ok(None), - Err(fs4::TryLockError::Error(error)) => Err(error.into()), - } + match file.try_lock() { + Ok(()) => Ok(Some(file)), + Err(fs4::TryLockError::WouldBlock) => Ok(None), + Err(fs4::TryLockError::Error(error)) => Err(error.into()), + } } pub async fn add_server_to_instance( diff --git a/packages/app-lib/src/error.rs b/packages/app-lib/src/error.rs index 5d44f22db63..0f03fa406bf 100644 --- a/packages/app-lib/src/error.rs +++ b/packages/app-lib/src/error.rs @@ -168,7 +168,7 @@ pub enum ErrorKind { SqlxMigrate(#[from] sqlx::migrate::MigrateError), #[error("error resolving DNS: {0}")] - DNSError(#[from] NetError), + DNSError(#[from] NetError), #[error("an online profile for {user_name} is not available")] OnlineMinecraftProfileUnavailable { user_name: String }, @@ -362,7 +362,7 @@ pub fn error_code(error: &Error) -> &'static str { "api_error" } else if error.is::() || error.is::() - || error.is::() + || error.is::() { "network_error" } else if error.is::() { diff --git a/packages/app-lib/src/state/content_store/adapters/verified_files.rs b/packages/app-lib/src/state/content_store/adapters/verified_files.rs index ef6b8d9eb28..c3fb85f342f 100644 --- a/packages/app-lib/src/state/content_store/adapters/verified_files.rs +++ b/packages/app-lib/src/state/content_store/adapters/verified_files.rs @@ -118,8 +118,8 @@ impl VerifiedFiles { size += read as u64; on_read(read as u64); } - let sha512 = - crate::util::content_hash::encode_hex(hasher.finalize().as_slice()); + let sha512 = + crate::util::content_hash::encode_hex(hasher.finalize().as_slice()); if let Some(stamp) = before && FileStamp::read(&file).as_ref() == Some(&stamp) && size == stamp.size @@ -229,11 +229,11 @@ mod tests { .hash(&path, &|read| bytes.set(bytes.get() + read)) .unwrap(); assert_eq!(bytes.get(), changed.len() as u64); - assert_eq!( - actual, - crate::util::content_hash::encode_hex( - Sha512::digest(&changed).as_slice(), - ) - ); - } + assert_eq!( + actual, + crate::util::content_hash::encode_hex( + Sha512::digest(&changed).as_slice(), + ) + ); + } } diff --git a/packages/app-lib/src/state/content_store/commands/acquire_content.rs b/packages/app-lib/src/state/content_store/commands/acquire_content.rs index f0508695c4e..36cabd9c386 100644 --- a/packages/app-lib/src/state/content_store/commands/acquire_content.rs +++ b/packages/app-lib/src/state/content_store/commands/acquire_content.rs @@ -160,9 +160,9 @@ impl ContentStore { fetch::StagedDownload { path: temporary, size: bytes.len() as u64, - sha512: crate::util::content_hash::encode_hex( - Sha512::digest(bytes).as_slice(), - ), + sha512: crate::util::content_hash::encode_hex( + Sha512::digest(bytes).as_slice(), + ), }, &[], ) diff --git a/packages/app-lib/src/state/content_store/commands/migration.rs b/packages/app-lib/src/state/content_store/commands/migration.rs index 5f7fe30c6a5..dec1c034e42 100644 --- a/packages/app-lib/src/state/content_store/commands/migration.rs +++ b/packages/app-lib/src/state/content_store/commands/migration.rs @@ -342,9 +342,9 @@ fn replace_file_copy( temporary: tempfile::TempPath, destination: &std::path::Path, ) -> std::io::Result<()> { - let mut temporary = tempfile::TempPath::try_from_path( - temporary.keep().map_err(|error| error.error)?, - )?; + let mut temporary = tempfile::TempPath::try_from_path( + temporary.keep().map_err(|error| error.error)?, + )?; #[cfg(windows)] let original = { use std::os::windows::fs::OpenOptionsExt; diff --git a/packages/app-lib/src/state/content_store/store.rs b/packages/app-lib/src/state/content_store/store.rs index f51da58b5c5..0ae3a566b49 100644 --- a/packages/app-lib/src/state/content_store/store.rs +++ b/packages/app-lib/src/state/content_store/store.rs @@ -40,16 +40,16 @@ impl ContentStore { .write(true) .open(settings_dir.join("store.lock")) .await?; - match file.try_lock() { - Ok(()) => {} - Err(fs4::TryLockError::WouldBlock) => { - bail!(ErrorKind::ContentStoreError( + match file.try_lock() { + Ok(()) => {} + Err(fs4::TryLockError::WouldBlock) => { + bail!(ErrorKind::ContentStoreError( "another Modrinth process is using this application directory" .into(), )); - } - Err(fs4::TryLockError::Error(error)) => return Err(error.into()), - } + } + Err(fs4::TryLockError::Error(error)) => return Err(error.into()), + } Ok(file) } diff --git a/packages/app-lib/src/state/instances/commands/embedded_content_metadata.rs b/packages/app-lib/src/state/instances/commands/embedded_content_metadata.rs index e1713599a70..9a4f8ab9ddb 100644 --- a/packages/app-lib/src/state/instances/commands/embedded_content_metadata.rs +++ b/packages/app-lib/src/state/instances/commands/embedded_content_metadata.rs @@ -94,13 +94,13 @@ fn inspect_content_archive( fn infer_project_type( archive: &mut ZipArchive, ) -> crate::Result { - let mut has_data = false; - let mut has_shaders = false; - for name in archive.file_names() { - let name = name?; - has_data |= name.starts_with("data/"); - has_shaders |= name.starts_with("shaders/"); - } + let mut has_data = false; + let mut has_shaders = false; + for name in archive.file_names() { + let name = name?; + has_data |= name.starts_with("data/"); + has_shaders |= name.starts_with("shaders/"); + } if has_entry(archive, "fabric.mod.json") || has_entry(archive, "quilt.mod.json") || has_entry(archive, "META-INF/neoforge.mods.toml") @@ -114,7 +114,7 @@ fn infer_project_type( } else { Ok(ProjectType::ResourcePack) } - } else if has_shaders { + } else if has_shaders { Ok(ProjectType::ShaderPack) } else { Err(ErrorKind::InputError( diff --git a/packages/app-lib/src/state/minecraft_auth.rs b/packages/app-lib/src/state/minecraft_auth.rs index b8e89c0771c..4e1a89ac30f 100644 --- a/packages/app-lib/src/state/minecraft_auth.rs +++ b/packages/app-lib/src/state/minecraft_auth.rs @@ -1577,10 +1577,10 @@ pub struct DeviceTokenKey { fn generate_key() -> Result { let uuid = Uuid::new_v4(); - let signing_key = SigningKey::generate_from_rng(&mut rand::rng()); + let signing_key = SigningKey::generate_from_rng(&mut rand::rng()); let public_key = VerifyingKey::from(&signing_key); - let encoded_point = public_key.to_sec1_point(false); + let encoded_point = public_key.to_sec1_point(false); Ok(DeviceTokenKey { id: uuid, @@ -1641,7 +1641,7 @@ async fn send_signed_request( let mut sig_buffer = Vec::new(); sig_buffer.extend_from_slice(&1_i32.to_be_bytes()[..]); sig_buffer.extend_from_slice(&(time as u64).to_be_bytes()[..]); - sig_buffer.extend_from_slice(&ecdsa_sig.to_bytes()); + sig_buffer.extend_from_slice(&ecdsa_sig.to_bytes()); let signature = BASE64_STANDARD.encode(&sig_buffer); @@ -1700,8 +1700,8 @@ fn get_date_header(headers: &HeaderMap) -> DateTime { #[tracing::instrument] fn generate_oauth_challenge() -> String { - let mut rng = rand::rng(); + let mut rng = rand::rng(); - let bytes: Vec = (0..64).map(|_| rng.random::()).collect(); + let bytes: Vec = (0..64).map(|_| rng.random::()).collect(); bytes.iter().map(|byte| format!("{byte:02x}")).collect() } diff --git a/packages/app-lib/src/state/process.rs b/packages/app-lib/src/state/process.rs index 1235a035aad..da924921616 100644 --- a/packages/app-lib/src/state/process.rs +++ b/packages/app-lib/src/state/process.rs @@ -497,17 +497,17 @@ impl Process { Ok(Event::Start(e)) => { match e.name().as_ref() { - "log4j:Event" => { + "log4j:Event" => { // Reset for new event current_event = Log4jEvent::default(); in_event = true; // Extract attributes for attr in e.attributes().flatten() { - let key = attr.key.into_inner(); - let value = attr.value.into_owned(); + let key = attr.key.into_inner(); + let value = attr.value.into_owned(); - match key { + match key { "logger" => { current_event.logger_name = Some(value) @@ -527,11 +527,11 @@ impl Process { } } } - "log4j:Message" => { + "log4j:Message" => { in_message = true; current_content = String::new(); } - "log4j:Throwable" => { + "log4j:Throwable" => { in_throwable = true; current_content = String::new(); } @@ -540,12 +540,12 @@ impl Process { } Ok(Event::End(e)) => { match e.name().as_ref() { - "log4j:Message" => { + "log4j:Message" => { in_message = false; current_event.message = Some(current_content.clone()); } - "log4j:Throwable" => { + "log4j:Throwable" => { in_throwable = false; current_event.throwable = if current_content.is_empty() { @@ -587,7 +587,7 @@ impl Process { ¤t_event, ); } - "log4j:Event" => { + "log4j:Event" => { in_event = false; // If no throwable was present, write the log entry at the end of the event if current_event.message.is_some() @@ -638,13 +638,13 @@ impl Process { } Ok(Event::Text(mut e)) => { if in_message || in_throwable { - let text = e.xml11_content(); - current_content.push_str(&text); + let text = e.xml11_content(); + current_content.push_str(&text); } else if !in_event && !e.inplace_trim_end() && !e.inplace_trim_start() - { - let text = e.xml11_content(); + { + let text = e.xml11_content(); if let Err(e) = Process::append_to_log_file( &log_path, &format!("{text}\n"), @@ -657,10 +657,10 @@ impl Process { Self::emit_legacy_log(instance_id, &text); } } - Ok(Event::CData(e)) if in_message || in_throwable => { - let text = e.xml11_content(); - current_content.push_str(&text); - } + Ok(Event::CData(e)) if in_message || in_throwable => { + let text = e.xml11_content(); + current_content.push_str(&text); + } _ => (), } diff --git a/packages/app-lib/src/util/content_hash.rs b/packages/app-lib/src/util/content_hash.rs index e76b77a9d1f..2786bf71a35 100644 --- a/packages/app-lib/src/util/content_hash.rs +++ b/packages/app-lib/src/util/content_hash.rs @@ -22,7 +22,7 @@ impl ContentHasher { pub(crate) fn finish(self, size: u64) -> FileHashes { FileHashes { - sha512: encode_hex(self.sha512.finalize().as_slice()), + sha512: encode_hex(self.sha512.finalize().as_slice()), size, } } @@ -73,5 +73,5 @@ pub(crate) async fn copy_and_hash( } pub(crate) fn encode_hex(bytes: &[u8]) -> String { - bytes.iter().map(|byte| format!("{byte:02x}")).collect() + bytes.iter().map(|byte| format!("{byte:02x}")).collect() } diff --git a/packages/app-lib/src/util/fetch.rs b/packages/app-lib/src/util/fetch.rs index 61e0e9a5a69..bc399677668 100644 --- a/packages/app-lib/src/util/fetch.rs +++ b/packages/app-lib/src/util/fetch.rs @@ -165,8 +165,8 @@ impl FenceInner { .checked_mul(self.block_factor) .unwrap_or(Self::BLOCK_DURATION_MAX_BASE); - let delta_seconds = (max - min).as_seconds_f64() - * rand::rng().random_range(0.0..=1.0); + let delta_seconds = + (max - min).as_seconds_f64() * rand::rng().random_range(0.0..=1.0); let duration = min + TimeDelta::milliseconds((delta_seconds * 1000.0) as i64); diff --git a/packages/app-lib/src/util/io.rs b/packages/app-lib/src/util/io.rs index 09eee4eb64a..708e6bf4fb4 100644 --- a/packages/app-lib/src/util/io.rs +++ b/packages/app-lib/src/util/io.rs @@ -124,11 +124,11 @@ pub async fn read_any_encoding_to_string( })?; let file_encoding = { - let mut encoding_detector = chardetng::EncodingDetector::new( - chardetng::Iso2022JpDetection::Allow, - ); + let mut encoding_detector = chardetng::EncodingDetector::new( + chardetng::Iso2022JpDetection::Allow, + ); encoding_detector.feed(&file_bytes, true); - encoding_detector.guess(None, chardetng::Utf8Detection::Allow) + encoding_detector.guess(None, chardetng::Utf8Detection::Allow) }; let (file_string, actual_file_encoding, _) = diff --git a/packages/ariadne/src/ids.rs b/packages/ariadne/src/ids.rs index 13efee982e6..b0ae261405a 100644 --- a/packages/ariadne/src/ids.rs +++ b/packages/ariadne/src/ids.rs @@ -11,7 +11,7 @@ use thiserror::Error; /// can only represent up to 11 character base62 strings #[inline] pub fn random_base62(n: usize) -> u64 { - random_base62_rng(&mut rand::rng(), n) + random_base62_rng(&mut rand::rng(), n) } /// Generates a random 64 bit integer that is exactly `n` characters @@ -30,11 +30,11 @@ pub fn random_base62_rng_range( n_min: usize, n_max: usize, ) -> u64 { - use rand::RngExt; + use rand::RngExt; assert!(n_min > 0 && n_max <= 11 && n_min <= n_max); // random_range is [low, high): max value is `MULTIPLES[n] - 1`, // which is n characters long when encoded - rng.random_range(MULTIPLES[n_min - 1]..MULTIPLES[n_max]) + rng.random_range(MULTIPLES[n_min - 1]..MULTIPLES[n_max]) } const MULTIPLES: [u64; 12] = [ diff --git a/packages/async-minecraft-ping/src/server.rs b/packages/async-minecraft-ping/src/server.rs index 2e3b1a2a2e5..f4dac4efdb6 100644 --- a/packages/async-minecraft-ping/src/server.rs +++ b/packages/async-minecraft-ping/src/server.rs @@ -204,9 +204,9 @@ impl ConnectionConfig { #[cfg(feature = "srv")] async fn lookup_srv(&self) -> Option<(String, u16)> { - use hickory_resolver::{TokioResolver, proto::rr::RData}; + use hickory_resolver::{proto::rr::RData, TokioResolver}; - let resolver = TokioResolver::builder_tokio().ok()?.build().ok()?; + let resolver = TokioResolver::builder_tokio().ok()?.build().ok()?; let srv_name = format!("_minecraft._tcp.{}", self.address); let lookup = tokio::time::timeout(self.timeout, resolver.srv_lookup(&srv_name)) @@ -214,14 +214,17 @@ impl ConnectionConfig { .ok()? .ok()?; - let record = lookup.answers().iter().find_map(|record| match &record.data { - RData::SRV(srv) => Some(srv), - _ => None, - })?; - let target = record.target.to_string(); + let record = lookup + .answers() + .iter() + .find_map(|record| match &record.data { + RData::SRV(srv) => Some(srv), + _ => None, + })?; + let target = record.target.to_string(); // Remove trailing dot from DNS name let host = target.trim_end_matches('.').to_string(); - let port = record.port; + let port = record.port; Some((host, port)) } diff --git a/packages/modrinth-maxmind/examples/maxmind.rs b/packages/modrinth-maxmind/examples/maxmind.rs index 3642e956758..28e9cbf4035 100644 --- a/packages/modrinth-maxmind/examples/maxmind.rs +++ b/packages/modrinth-maxmind/examples/maxmind.rs @@ -26,10 +26,10 @@ async fn main() -> Result<()> { let ip = args.ip; let country = maxmind - .lookup(ip) - .wrap_err("failed to lookup country")? - .decode::() - .wrap_err("failed to decode country")?; + .lookup(ip) + .wrap_err("failed to lookup country")? + .decode::() + .wrap_err("failed to decode country")?; info!("Country details for {ip:?}:\n{country:#?}"); diff --git a/packages/modrinth-maxmind/src/lib.rs b/packages/modrinth-maxmind/src/lib.rs index 1f81f08899f..6995984f75d 100644 --- a/packages/modrinth-maxmind/src/lib.rs +++ b/packages/modrinth-maxmind/src/lib.rs @@ -57,12 +57,12 @@ impl MaxMind { /// [`None`]. pub async fn query_country(&self, ip: impl Into) -> Option { let reader = self.reader.as_ref()?; - reader - .lookup(ip.into()) - .ok()? - .decode::() - .ok()? - .and_then(|c| c.country.iso_code.map(|s| s.to_string())) + reader + .lookup(ip.into()) + .ok()? + .decode::() + .ok()? + .and_then(|c| c.country.iso_code.map(|s| s.to_string())) } } diff --git a/packages/muralpay/src/payout.rs b/packages/muralpay/src/payout.rs index acbeff2ab15..6ae8d4249b5 100644 --- a/packages/muralpay/src/payout.rs +++ b/packages/muralpay/src/payout.rs @@ -1,4 +1,3 @@ - use { crate::{ AccountId, Blockchain, CounterpartyId, CurrencyCode, FiatAccountType, diff --git a/packages/serde-binhum/src/lib.rs b/packages/serde-binhum/src/lib.rs index 390531d5c43..a9882448b79 100644 --- a/packages/serde-binhum/src/lib.rs +++ b/packages/serde-binhum/src/lib.rs @@ -30,10 +30,10 @@ impl FromMeta for SerdeOptions { let options = items .iter() .map(|item| match item { - NestedMeta::Meta(option) => Ok(option.clone()), - NestedMeta::NameValueInvalidExpr(option) => { - Err(option.error.clone()) - } + NestedMeta::Meta(option) => Ok(option.clone()), + NestedMeta::NameValueInvalidExpr(option) => { + Err(option.error.clone()) + } NestedMeta::Lit(literal) => { Err(darling::Error::custom("expected a Serde option") .with_span(literal)) diff --git a/packages/sqlx-tracing/Cargo.toml b/packages/sqlx-tracing/Cargo.toml index 413c95b0ea3..d395e90f025 100644 --- a/packages/sqlx-tracing/Cargo.toml +++ b/packages/sqlx-tracing/Cargo.toml @@ -15,13 +15,13 @@ categories = ["asynchronous", "database", "development-tools::debugging", "devel [dependencies] derive_more = { workspace = true, features = ["deref", "deref_mut"] } futures = { version = "0.3" } -sqlx = { version = "0.8", default-features = false, features = ["derive"] } +sqlx = { workspace = true, features = ["macros"] } tracing = { version = "0.1" } [dev-dependencies] opentelemetry = "0.33" opentelemetry-testing = "0.1" -sqlx = { version = "0.8", features = ["runtime-tokio"] } +sqlx = { workspace = true, features = ["runtime-tokio"] } testcontainers = "0.25.2" tokio = { version = "1", features = ["macros", "rt-multi-thread"] } diff --git a/packages/sqlx-tracing/README.md b/packages/sqlx-tracing/README.md index fda11ad92b7..524371cde79 100644 --- a/packages/sqlx-tracing/README.md +++ b/packages/sqlx-tracing/README.md @@ -19,13 +19,14 @@ ## Usage -Add `sqlx-tracing` to your `Cargo.toml`: +This vendored crate targets SQLx 0.9 and requires Rust 1.94 or newer. +Add it to a workspace member's `Cargo.toml`: ```toml [dependencies] -sqlx-tracing = "0.1" -sqlx = { version = "0.8", default-features = false, features = ["derive"] } -tracing = "0.1" +sqlx-tracing = { workspace = true } +sqlx = { workspace = true, features = ["macros"] } +tracing = { workspace = true } ``` Enable the desired database feature: diff --git a/packages/sqlx-tracing/src/any_connection.rs b/packages/sqlx-tracing/src/any_connection.rs index d7cf3aa228c..5d7b6f598c6 100644 --- a/packages/sqlx-tracing/src/any_connection.rs +++ b/packages/sqlx-tracing/src/any_connection.rs @@ -61,13 +61,13 @@ where } } - fn prepare_with<'e, 'q: 'e>( + fn prepare_with<'e>( self, - sql: &'q str, + sql: sqlx::SqlStr, parameters: &'e [::TypeInfo], ) -> futures::future::BoxFuture< 'e, - Result<::Statement<'q>, sqlx::Error>, + Result<::Statement, sqlx::Error>, > where 's: 'e, @@ -81,9 +81,9 @@ where } } - fn describe<'e, 'q: 'e>( + fn describe<'e>( self, - sql: &'q str, + sql: sqlx::SqlStr, ) -> futures::future::BoxFuture< 'e, Result, sqlx::Error>, diff --git a/packages/sqlx-tracing/src/connection.rs b/packages/sqlx-tracing/src/connection.rs index bab36bcd8b1..f0a1313bbec 100644 --- a/packages/sqlx-tracing/src/connection.rs +++ b/packages/sqlx-tracing/src/connection.rs @@ -19,9 +19,9 @@ where type Database = DB; #[doc(hidden)] - fn describe<'e, 'q: 'e>( + fn describe<'e>( self, - sql: &'q str, + sql: sqlx::SqlStr, ) -> futures::future::BoxFuture< 'e, Result, sqlx::Error>, @@ -30,7 +30,7 @@ where 'c: 'e, { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.describe", attrs, sql); + let span = crate::instrument!("sqlx.describe", attrs, sql.as_str()); let fut = self.inner.as_mut().describe(sql); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } @@ -49,7 +49,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.execute", attrs, sql); let fut = self.inner.execute(query); @@ -70,7 +71,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.execute_many", attrs, sql); let stream = self.inner.execute_many(query); @@ -95,7 +97,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch", attrs, sql); let stream = self.inner.fetch(query); @@ -120,7 +123,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_all", attrs, sql); let fut = self.inner.fetch_all(query); @@ -154,7 +158,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_all", attrs, sql); let stream = self.inner.fetch_many(query); @@ -178,7 +183,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_one", attrs, sql); let fut = self.inner.fetch_one(query); @@ -206,7 +212,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_optional", attrs, sql); let fut = self.inner.fetch_optional(query); @@ -225,18 +232,18 @@ where ) } - fn prepare<'e, 'q: 'e>( + fn prepare<'e>( self, - query: &'q str, + query: sqlx::SqlStr, ) -> futures::future::BoxFuture< 'e, - Result<::Statement<'q>, sqlx::Error>, + Result<::Statement, sqlx::Error>, > where 'c: 'e, { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.prepare", attrs, query); + let span = crate::instrument!("sqlx.prepare", attrs, query.as_str()); let fut = self.inner.prepare(query); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } @@ -244,19 +251,19 @@ where ) } - fn prepare_with<'e, 'q: 'e>( + fn prepare_with<'e>( self, - sql: &'q str, + sql: sqlx::SqlStr, parameters: &'e [::TypeInfo], ) -> futures::future::BoxFuture< 'e, - Result<::Statement<'q>, sqlx::Error>, + Result<::Statement, sqlx::Error>, > where 'c: 'e, { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.prepare_with", attrs, sql); + let span = crate::instrument!("sqlx.prepare_with", attrs, sql.as_str()); let fut = self.inner.prepare_with(sql, parameters); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } @@ -273,9 +280,9 @@ where type Database = DB; #[doc(hidden)] - fn describe<'e, 'q: 'e>( + fn describe<'e>( self, - sql: &'q str, + sql: sqlx::SqlStr, ) -> futures::future::BoxFuture< 'e, Result, sqlx::Error>, @@ -284,7 +291,7 @@ where 'c: 'e, { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.describe", attrs, sql); + let span = crate::instrument!("sqlx.describe", attrs, sql.as_str()); let fut = self.inner.describe(sql); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } @@ -303,7 +310,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.execute", attrs, sql); let fut = self.inner.execute(query); @@ -324,7 +332,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.execute_many", attrs, sql); let stream = self.inner.execute_many(query); @@ -349,7 +358,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch", attrs, sql); let stream = self.inner.fetch(query); @@ -374,7 +384,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_all", attrs, sql); let fut = self.inner.fetch_all(query); @@ -408,7 +419,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_all", attrs, sql); let stream = self.inner.fetch_many(query); @@ -432,7 +444,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_one", attrs, sql); let fut = self.inner.fetch_one(query); @@ -457,7 +470,8 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 'c: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_optional", attrs, sql); let fut = self.inner.fetch_optional(query); @@ -471,18 +485,18 @@ where ) } - fn prepare<'e, 'q: 'e>( + fn prepare<'e>( self, - query: &'q str, + query: sqlx::SqlStr, ) -> futures::future::BoxFuture< 'e, - Result<::Statement<'q>, sqlx::Error>, + Result<::Statement, sqlx::Error>, > where 'c: 'e, { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.prepare", attrs, query); + let span = crate::instrument!("sqlx.prepare", attrs, query.as_str()); let fut = self.inner.prepare(query); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } @@ -490,19 +504,19 @@ where ) } - fn prepare_with<'e, 'q: 'e>( + fn prepare_with<'e>( self, - sql: &'q str, + sql: sqlx::SqlStr, parameters: &'e [::TypeInfo], ) -> futures::future::BoxFuture< 'e, - Result<::Statement<'q>, sqlx::Error>, + Result<::Statement, sqlx::Error>, > where 'c: 'e, { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.prepare_with", attrs, sql); + let span = crate::instrument!("sqlx.prepare_with", attrs, sql.as_str()); let fut = self.inner.prepare_with(sql, parameters); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } diff --git a/packages/sqlx-tracing/src/lib.rs b/packages/sqlx-tracing/src/lib.rs index a9935249cda..0f2fe8e6b84 100644 --- a/packages/sqlx-tracing/src/lib.rs +++ b/packages/sqlx-tracing/src/lib.rs @@ -8,6 +8,7 @@ use futures::future::BoxFuture; mod any_connection; mod connection; mod pool; +mod query; pub(crate) mod span; mod transaction; diff --git a/packages/sqlx-tracing/src/pool.rs b/packages/sqlx-tracing/src/pool.rs index c903f28f1ba..a84570a3df4 100644 --- a/packages/sqlx-tracing/src/pool.rs +++ b/packages/sqlx-tracing/src/pool.rs @@ -87,15 +87,15 @@ where type Database = DB; #[doc(hidden)] - fn describe<'e, 'q: 'e>( + fn describe<'e>( self, - sql: &'q str, + sql: sqlx::SqlStr, ) -> futures::future::BoxFuture< 'e, Result, sqlx::Error>, > { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.describe", attrs, sql); + let span = crate::instrument!("sqlx.describe", attrs, sql.as_str()); let fut = self.inner.describe(sql); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } @@ -113,7 +113,8 @@ where where E: 'q + sqlx::Execute<'q, Self::Database>, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.execute", attrs, sql); let fut = self.inner.execute(query); @@ -133,7 +134,8 @@ where where E: 'q + sqlx::Execute<'q, Self::Database>, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.execute_many", attrs, sql); let stream = self.inner.execute_many(query); @@ -157,7 +159,8 @@ where where E: 'q + sqlx::Execute<'q, Self::Database>, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch", attrs, sql); let stream = self.inner.fetch(query); @@ -181,7 +184,8 @@ where where E: 'q + sqlx::Execute<'q, Self::Database>, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_all", attrs, sql); let fut = self.inner.fetch_all(query); @@ -214,7 +218,8 @@ where where E: 'q + sqlx::Execute<'q, Self::Database>, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_all", attrs, sql); let stream = self.inner.fetch_many(query); @@ -237,7 +242,8 @@ where where E: 'q + sqlx::Execute<'q, Self::Database>, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_one", attrs, sql); let fut = self.inner.fetch_one(query); @@ -261,7 +267,8 @@ where where E: 'q + sqlx::Execute<'q, Self::Database>, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_optional", attrs, sql); let fut = self.inner.fetch_optional(query); @@ -275,15 +282,18 @@ where ) } - fn prepare<'e, 'q: 'e>( + fn prepare<'e>( self, - query: &'q str, + query: sqlx::SqlStr, ) -> futures::future::BoxFuture< 'e, - Result<::Statement<'q>, sqlx::Error>, - > { + Result<::Statement, sqlx::Error>, + > + where + 'p: 'e, + { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.prepare", attrs, query); + let span = crate::instrument!("sqlx.prepare", attrs, query.as_str()); let fut = self.inner.prepare(query); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } @@ -291,16 +301,19 @@ where ) } - fn prepare_with<'e, 'q: 'e>( + fn prepare_with<'e>( self, - sql: &'q str, + sql: sqlx::SqlStr, parameters: &'e [::TypeInfo], ) -> futures::future::BoxFuture< 'e, - Result<::Statement<'q>, sqlx::Error>, - > { + Result<::Statement, sqlx::Error>, + > + where + 'p: 'e, + { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.prepare_with", attrs, sql); + let span = crate::instrument!("sqlx.prepare_with", attrs, sql.as_str()); let fut = self.inner.prepare_with(sql, parameters); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } diff --git a/packages/sqlx-tracing/src/query.rs b/packages/sqlx-tracing/src/query.rs new file mode 100644 index 00000000000..1ca1d94dab3 --- /dev/null +++ b/packages/sqlx-tracing/src/query.rs @@ -0,0 +1,43 @@ +use sqlx::{Database, Execute, SqlStr}; + +/// Retains query metadata before SQLx consumes the query to obtain its SQL text. +pub(crate) struct TracedQuery { + pub(crate) sql: SqlStr, + statement: Option, + arguments: Result, sqlx::error::BoxDynError>, + persistent: bool, +} + +impl TracedQuery { + pub(crate) fn new<'q>(mut query: impl Execute<'q, DB>) -> Self { + let statement = query.statement().cloned(); + let persistent = query.persistent(); + let arguments = query.take_arguments(); + Self { + sql: query.sql(), + statement, + arguments, + persistent, + } + } +} + +impl<'q, DB: Database> Execute<'q, DB> for TracedQuery { + fn sql(self) -> SqlStr { + self.sql + } + + fn statement(&self) -> Option<&DB::Statement> { + self.statement.as_ref() + } + + fn take_arguments( + &mut self, + ) -> Result, sqlx::error::BoxDynError> { + std::mem::replace(&mut self.arguments, Ok(None)) + } + + fn persistent(&self) -> bool { + self.persistent + } +} diff --git a/packages/sqlx-tracing/src/transaction.rs b/packages/sqlx-tracing/src/transaction.rs index 3eb7b88cb76..864258c962c 100644 --- a/packages/sqlx-tracing/src/transaction.rs +++ b/packages/sqlx-tracing/src/transaction.rs @@ -93,9 +93,9 @@ where type Database = DB; #[doc(hidden)] - fn describe<'e, 'q: 'e>( + fn describe<'e>( self, - sql: &'q str, + sql: sqlx::SqlStr, ) -> futures::future::BoxFuture< 'e, Result, sqlx::Error>, @@ -104,10 +104,10 @@ where 't: 'e, { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.describe", attrs, sql); + let span = crate::instrument!("sqlx.describe", attrs, sql.as_str()); Box::pin( async move { - let fut = (&mut self.inner).describe(sql); + let fut = (&mut *self.inner).describe(sql); fut.await.inspect_err(crate::span::record_error) } .instrument(span), @@ -125,10 +125,11 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 't: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.execute", attrs, sql); - let fut = (&mut self.inner).execute(query); + let fut = (&mut *self.inner).execute(query); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } .instrument(span), @@ -146,10 +147,11 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 't: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.execute_many", attrs, sql); - let stream = (&mut self.inner).execute_many(query); + let stream = (&mut *self.inner).execute_many(query); use futures::StreamExt; Box::pin( stream @@ -171,10 +173,11 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 't: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch", attrs, sql); - let stream = (&mut self.inner).fetch(query); + let stream = (&mut *self.inner).fetch(query); use futures::StreamExt; Box::pin( stream @@ -196,10 +199,11 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 't: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_all", attrs, sql); - let fut = (&mut self.inner).fetch_all(query); + let fut = (&mut *self.inner).fetch_all(query); Box::pin( async move { fut.await @@ -230,10 +234,11 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 't: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_all", attrs, sql); - let stream = (&mut self.inner).fetch_many(query); + let stream = (&mut *self.inner).fetch_many(query); Box::pin( stream .inspect(move |_| { @@ -254,10 +259,11 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 't: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_one", attrs, sql); - let fut = (&mut self.inner).fetch_one(query); + let fut = (&mut *self.inner).fetch_one(query); Box::pin( async move { fut.await @@ -279,10 +285,11 @@ where E: 'q + sqlx::Execute<'q, Self::Database>, 't: 'e, { - let sql = query.sql(); + let query = crate::query::TracedQuery::::new(query); + let sql = query.sql.as_str(); let attrs = &self.attributes; let span = crate::instrument!("sqlx.fetch_optional", attrs, sql); - let fut = (&mut self.inner).fetch_optional(query); + let fut = (&mut *self.inner).fetch_optional(query); Box::pin( async move { fut.await @@ -293,39 +300,39 @@ where ) } - fn prepare<'e, 'q: 'e>( + fn prepare<'e>( self, - query: &'q str, + query: sqlx::SqlStr, ) -> futures::future::BoxFuture< 'e, - Result<::Statement<'q>, sqlx::Error>, + Result<::Statement, sqlx::Error>, > where 't: 'e, { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.prepare", attrs, query); - let fut = (&mut self.inner).prepare(query); + let span = crate::instrument!("sqlx.prepare", attrs, query.as_str()); + let fut = (&mut *self.inner).prepare(query); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } .instrument(span), ) } - fn prepare_with<'e, 'q: 'e>( + fn prepare_with<'e>( self, - sql: &'q str, + sql: sqlx::SqlStr, parameters: &'e [::TypeInfo], ) -> futures::future::BoxFuture< 'e, - Result<::Statement<'q>, sqlx::Error>, + Result<::Statement, sqlx::Error>, > where 't: 'e, { let attrs = &self.attributes; - let span = crate::instrument!("sqlx.prepare_with", attrs, sql); - let fut = (&mut self.inner).prepare_with(sql, parameters); + let span = crate::instrument!("sqlx.prepare_with", attrs, sql.as_str()); + let fut = (&mut *self.inner).prepare_with(sql, parameters); Box::pin( async move { fut.await.inspect_err(crate::span::record_error) } .instrument(span), diff --git a/packages/sqlx-tracing/tests/common.rs b/packages/sqlx-tracing/tests/common.rs index a7d101f37da..672684df678 100644 --- a/packages/sqlx-tracing/tests/common.rs +++ b/packages/sqlx-tracing/tests/common.rs @@ -11,7 +11,7 @@ pub async fn should_trace<'c, DB, E>( ) where DB: sqlx::Database, E: sqlx::Executor<'c, Database = DB>, - for<'q> DB::Arguments<'q>: 'q + sqlx::IntoArguments<'q, DB>, + DB::Arguments: sqlx::IntoArguments, (i32,): Send + Unpin + for<'r> sqlx::FromRow<'r, DB::Row>, { let scope = format!("should_{name}_{system}"); diff --git a/packages/sqlx-tracing/tests/sqlite.rs b/packages/sqlx-tracing/tests/sqlite.rs index 0ee2a5feecc..07b0a8d91c5 100644 --- a/packages/sqlx-tracing/tests/sqlite.rs +++ b/packages/sqlx-tracing/tests/sqlite.rs @@ -1,9 +1,61 @@ #![cfg(feature = "sqlite")] -use sqlx::Sqlite; +use sqlx::{Executor, Sqlite, Statement}; mod common; +#[tokio::test] +async fn preserves_owned_queries_prepared_statements_and_transactions() { + let pool = sqlx::sqlite::SqlitePoolOptions::new() + .max_connections(1) + .connect(":memory:") + .await + .unwrap(); + let pool = sqlx_tracing::Pool::from(pool); + sqlx::query("create table entries (value integer not null)") + .execute(&pool) + .await + .unwrap(); + + let mut transaction = pool.begin().await.unwrap(); + let sql = String::from("insert into entries (value) values ($1)"); + sqlx::query(sqlx::AssertSqlSafe(sql)) + .bind(42_i32) + .persistent(false) + .execute(&mut transaction) + .await + .unwrap(); + + let statement = (&mut transaction) + .prepare(sqlx::SqlStr::from_static("select value from entries")) + .await + .unwrap(); + let value: i32 = statement + .query_scalar() + .fetch_one(&mut transaction) + .await + .unwrap(); + assert_eq!(value, 42); + + let mut nested = sqlx_tracing::Acquire::begin(&mut transaction) + .await + .unwrap(); + sqlx::query("insert into entries (value) values ($1)") + .bind(99_i32) + .execute(&mut nested) + .await + .unwrap(); + nested.rollback().await.unwrap(); + transaction.commit().await.unwrap(); + + let mut connection = pool.acquire().await.unwrap(); + let count: i64 = sqlx::query_scalar("select count(*) from entries") + .fetch_one(&mut connection) + .await + .unwrap(); + assert_eq!(count, 1); +} + #[tokio::test] async fn execute() { let observability = From 70ea6ed34a93b0b96e9f7c3dfeecc4bfda656e92 Mon Sep 17 00:00:00 2001 From: aecsocket <43144841+aecsocket@users.noreply.github.com> Date: Tue, 20 Oct 2026 17:52:22 +0100 Subject: [PATCH 4/4] fix --- Cargo.toml | 2 +- apps/labrinth/src/search/filter/parse.rs | 2 +- packages/app-lib/Cargo.toml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 29ff55b10b0..e6e8a455aaa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -169,7 +169,7 @@ rand_chacha = "=0.10.0" rdkafka = { version = "0.39.0", features = ["cmake-build"] } redis = "1.7.1" regex = "1.13.1" -reqwest = { version = "0.13.5", default-features = false, features = ["query", "form"] } +reqwest = { version = "0.13.5", default-features = false, features = ["form", "query"] } rgb = "0.8.53" rust_decimal = { version = "1.43.0", features = ["serde-with-float", "serde-with-str"] } rust_iso3166 = "0.2.0" diff --git a/apps/labrinth/src/search/filter/parse.rs b/apps/labrinth/src/search/filter/parse.rs index bf8a5f72a54..6e2ffd5c387 100644 --- a/apps/labrinth/src/search/filter/parse.rs +++ b/apps/labrinth/src/search/filter/parse.rs @@ -291,7 +291,7 @@ mod tests { #[test] fn preserves_list_values_and_trailing_comma() { let FilterExpr::Predicate(predicate) = - parse_expression("categories nOt iN [fabric, forge,]").unwrap() + parse_expression("categories nOt iN [fabric, forge,]").unwrap() // typos:ignore else { panic!("expected a predicate"); }; diff --git a/packages/app-lib/Cargo.toml b/packages/app-lib/Cargo.toml index 56de2afdb89..827e5bb8a54 100644 --- a/packages/app-lib/Cargo.toml +++ b/packages/app-lib/Cargo.toml @@ -75,10 +75,10 @@ reqwest = { workspace = true, features = [ "gzip", "http2", "json", - "system-proxy", "multipart", - "rustls", + "rustls", "stream", + "system-proxy", ] } rgb = { workspace = true } same-file = { workspace = true }