diff --git a/.github/assets/api_cover.png b/.github/assets/api_cover.png new file mode 100644 index 000000000..5ad8f8b41 Binary files /dev/null and b/.github/assets/api_cover.png differ diff --git a/Cargo.lock b/Cargo.lock index 31745c14f..180c47497 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9,12 +9,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ "bitflags 2.9.0", - "bytes 1.10.1", + "bytes", "futures-core", "futures-sink", "memchr", "pin-project-lite", - "tokio 1.44.1", + "tokio", "tokio-util", "tracing", ] @@ -31,7 +31,7 @@ dependencies = [ "futures-util", "log", "once_cell", - "smallvec 1.14.0", + "smallvec", ] [[package]] @@ -45,7 +45,7 @@ dependencies = [ "actix-utils", "actix-web", "bitflags 2.9.0", - "bytes 1.10.1", + "bytes", "derive_more 0.99.19", "futures-core", "http-range", @@ -70,7 +70,7 @@ dependencies = [ "base64 0.22.1", "bitflags 2.9.0", "brotli", - "bytes 1.10.1", + "bytes", "bytestring", "derive_more 2.0.1", "encoding_rs", @@ -87,10 +87,10 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rand 0.9.0", + "rand 0.9.1", "sha1 0.10.6", - "smallvec 1.14.0", - "tokio 1.44.1", + "smallvec", + "tokio", "tokio-util", "tracing", "zstd 0.13.3", @@ -115,7 +115,7 @@ dependencies = [ "actix-multipart-derive", "actix-utils", "actix-web", - "bytes 1.10.1", + "bytes", "derive_more 0.99.19", "futures-core", "futures-util", @@ -129,7 +129,7 @@ dependencies = [ "serde_json", "serde_plain", "tempfile", - "tokio 1.44.1", + "tokio", ] [[package]] @@ -152,7 +152,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8" dependencies = [ "bytestring", - "cfg-if 1.0.0", + "cfg-if", "http 0.2.12", "regex", "regex-lite", @@ -168,7 +168,7 @@ checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" dependencies = [ "actix-macros", "futures-core", - "tokio 1.44.1", + "tokio", ] [[package]] @@ -184,7 +184,7 @@ dependencies = [ "futures-util", "mio 1.0.3", "socket2", - "tokio 1.44.1", + "tokio", "tracing", ] @@ -223,9 +223,9 @@ dependencies = [ "actix-service", "actix-utils", "actix-web-codegen", - "bytes 1.10.1", + "bytes", "bytestring", - "cfg-if 1.0.0", + "cfg-if", "cookie 0.16.2", "derive_more 2.0.1", "encoding_rs", @@ -244,7 +244,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "smallvec 1.14.0", + "smallvec", "socket2", "time", "tracing", @@ -289,7 +289,7 @@ dependencies = [ "actix-web", "bytestring", "futures-core", - "tokio 1.44.1", + "tokio", ] [[package]] @@ -313,7 +313,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cipher", "cpufeatures", ] @@ -335,7 +335,7 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "getrandom 0.2.15", "once_cell", "version_check", @@ -439,9 +439,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arbitrary" @@ -506,11 +506,11 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.0", + "rand 0.9.1", "raw-window-handle 0.6.2", "serde", "serde_repr", - "tokio 1.44.1", + "tokio", "url", "zbus", ] @@ -565,7 +565,7 @@ dependencies = [ "liblzma", "memchr", "pin-project-lite", - "tokio 1.44.1", + "tokio", "zstd 0.13.3", "zstd-safe 7.2.4", ] @@ -601,7 +601,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ "async-lock", - "cfg-if 1.0.0", + "cfg-if", "concurrent-queue", "futures-io", "futures-lite 2.6.0", @@ -636,7 +636,7 @@ dependencies = [ "async-signal", "async-task", "blocking", - "cfg-if 1.0.0", + "cfg-if", "event-listener 5.4.0", "futures-lite 2.6.0", "rustix 0.38.44", @@ -663,7 +663,7 @@ dependencies = [ "async-io", "async-lock", "atomic-waker", - "cfg-if 1.0.0", + "cfg-if", "futures-core", "futures-io", "rustix 0.38.44", @@ -715,7 +715,7 @@ dependencies = [ "smart-default", "smol_str", "thiserror 1.0.69", - "tokio 1.44.1", + "tokio", "uuid 0.8.2", ] @@ -747,7 +747,7 @@ dependencies = [ "log", "pin-project-lite", "rustls-pki-types", - "tokio 1.44.1", + "tokio", "tokio-rustls 0.26.2", "tungstenite", "webpki-roots 0.26.8", @@ -765,7 +765,7 @@ dependencies = [ "futures-lite 2.6.0", "pin-project", "thiserror 1.0.69", - "tokio 1.44.1", + "tokio", "tokio-util", ] @@ -864,7 +864,7 @@ checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", - "bytes 1.10.1", + "bytes", "futures-util", "http 1.3.1", "http-body 1.0.1", @@ -890,7 +890,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", - "bytes 1.10.1", + "bytes", "futures-util", "http 1.3.1", "http-body 1.0.1", @@ -910,7 +910,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cfg-if 1.0.0", + "cfg-if", "libc", "miniz_oxide", "object", @@ -926,9 +926,9 @@ checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base32" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" +checksum = "022dfe9eb35f19ebbcb51e0b40a5ab759f46ad60cadf7297e0bd085afb50e076" [[package]] name = "base64" @@ -1111,9 +1111,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.2" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" +checksum = "a334ef7c9e23abf0ce748e8cd309037da93e606ad52eb372e4ce327a0dcfbdfd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1121,9 +1121,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.11.3" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", "regex-automata 0.4.9", @@ -1176,16 +1176,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - [[package]] name = "bytes" version = "1.10.1" @@ -1201,7 +1191,7 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f" dependencies = [ - "bytes 1.10.1", + "bytes", ] [[package]] @@ -1284,7 +1274,7 @@ checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", "cargo-platform", - "semver 1.0.26", + "semver", "serde", "serde_json", "thiserror 2.0.12", @@ -1302,9 +1292,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.17" +version = "1.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" dependencies = [ "jobserver", "libc", @@ -1343,16 +1333,10 @@ version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ - "smallvec 1.14.0", + "smallvec", "target-lexicon", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -1402,9 +1386,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.34" +version = "4.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e958897981290da2a852763fe9cdb89cd36977a5d729023127095fa94d95e2ff" +checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" dependencies = [ "clap_builder", "clap_derive", @@ -1412,9 +1396,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.34" +version = "4.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b0f35019843db2160b5bb19ae09b4e6411ac33fc6a712003c33e03090e2489" +checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" dependencies = [ "anstream", "anstyle", @@ -1447,10 +1431,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0875e527e299fc5f4faba42870bf199a39ab0bb2dbba1b8aef0a2151451130f" dependencies = [ "bstr", - "bytes 1.10.1", + "bytes", "clickhouse-derive", "clickhouse-rs-cityhash-sys", - "futures 0.3.31", + "futures", "hyper 0.14.32", "hyper-tls 0.5.0", "lz4", @@ -1459,7 +1443,7 @@ dependencies = [ "static_assertions", "thiserror 1.0.69", "time", - "tokio 1.44.1", + "tokio", "url", "uuid 1.16.0", ] @@ -1485,15 +1469,6 @@ dependencies = [ "cc", ] -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "cocoa" version = "0.25.0" @@ -1551,11 +1526,11 @@ version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ - "bytes 1.10.1", + "bytes", "futures-core", "memchr", "pin-project-lite", - "tokio 1.44.1", + "tokio", "tokio-util", ] @@ -1565,7 +1540,7 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ - "crossbeam-utils 0.8.21", + "crossbeam-utils", ] [[package]] @@ -1602,7 +1577,7 @@ checksum = "6539aa9c6a4cd31f4b1c040f860a1eac9aa80e7df6b05d506a6e7179936d6a01" dependencies = [ "console-api", "crossbeam-channel", - "crossbeam-utils 0.8.21", + "crossbeam-utils", "futures-task", "hdrhistogram", "humantime", @@ -1612,7 +1587,7 @@ dependencies = [ "serde", "serde_json", "thread_local", - "tokio 1.44.1", + "tokio", "tokio-stream", "tonic", "tracing", @@ -1654,9 +1629,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.2.6" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -1798,27 +1773,16 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ - "crossbeam-utils 0.8.21", -] - -[[package]] -name = "crossbeam-deque" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" -dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", - "maybe-uninit", + "crossbeam-utils", ] [[package]] @@ -1827,23 +1791,8 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ - "crossbeam-epoch 0.9.18", - "crossbeam-utils 0.8.21", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "lazy_static", - "maybe-uninit", - "memoffset 0.5.6", - "scopeguard", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] @@ -1852,18 +1801,7 @@ version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "crossbeam-utils 0.8.21", -] - -[[package]] -name = "crossbeam-queue" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" -dependencies = [ - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "maybe-uninit", + "crossbeam-utils", ] [[package]] @@ -1872,18 +1810,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ - "crossbeam-utils 0.8.21", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "lazy_static", + "crossbeam-utils", ] [[package]] @@ -1943,7 +1870,7 @@ dependencies = [ "phf 0.8.0", "proc-macro2", "quote", - "smallvec 1.14.0", + "smallvec", "syn 1.0.109", ] @@ -1992,7 +1919,6 @@ dependencies = [ name = "daedalus" version = "0.2.3" dependencies = [ - "bytes 1.10.1", "chrono", "serde", "serde_json", @@ -2004,27 +1930,25 @@ name = "daedalus_client" version = "0.2.2" dependencies = [ "async_zip", - "bytes 1.10.1", + "bytes", "chrono", "daedalus", "dashmap 5.5.3", "dotenvy", - "futures 0.3.31", - "indexmap 2.8.0", + "futures", + "indexmap 2.9.0", "itertools 0.13.0", "lazy_static", "reqwest 0.12.15", "rust-s3", - "semver 1.0.26", "serde", "serde-xml-rs", "serde_json", "sha1_smol", "thiserror 1.0.69", - "tokio 1.44.1", + "tokio", "tracing", "tracing-error", - "tracing-futures", "tracing-subscriber", ] @@ -2104,11 +2028,11 @@ version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "hashbrown 0.14.5", - "lock_api 0.4.12", + "lock_api", "once_cell", - "parking_lot_core 0.9.10", + "parking_lot_core", ] [[package]] @@ -2117,20 +2041,20 @@ version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.21", + "cfg-if", + "crossbeam-utils", "hashbrown 0.14.5", - "lock_api 0.4.12", + "lock_api", "once_cell", - "parking_lot_core 0.9.10", + "parking_lot_core", "serde", ] [[package]] name = "data-encoding" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "dbus" @@ -2140,7 +2064,7 @@ checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" dependencies = [ "libc", "libdbus-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2151,7 +2075,7 @@ checksum = "5ed5957ff93768adf7a65ab167a17835c3d2c3c50d084fe305174c112f468e2f" dependencies = [ "deadpool-runtime", "num_cpus", - "tokio 1.44.1", + "tokio", ] [[package]] @@ -2170,7 +2094,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b" dependencies = [ - "tokio 1.44.1", + "tokio", ] [[package]] @@ -2191,9 +2115,9 @@ checksum = "da692b8d1080ea3045efaab14434d40468c3d8657e42abddfffca87b428f4c1b" [[package]] name = "der" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", "pem-rfc7468", @@ -2202,9 +2126,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", "serde", @@ -2272,7 +2196,7 @@ dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", - "rustc_version 0.4.1", + "rustc_version", "syn 2.0.100", ] @@ -2351,7 +2275,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "dirs-sys-next", ] @@ -2363,7 +2287,7 @@ checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", "redox_users 0.4.6", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2398,7 +2322,7 @@ checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", "redox_users 0.4.6", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2452,7 +2376,7 @@ dependencies = [ "dlopen2_derive", "libc", "once_cell", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2574,9 +2498,9 @@ dependencies = [ [[package]] name = "email-encoding" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b9cde6a71f9f758440470f3de16db6c09a02c443ce66850d87f5410548fb8e" +checksum = "9298e6504d9b9e780ed3f7dfd43a61be8cd0e09eb07f7706a945b0072b6670b6" dependencies = [ "base64 0.22.1", "memchr", @@ -2596,7 +2520,7 @@ checksum = "7fbc6e0d8e0c03a655b53ca813f0463d2c956bc4db8138dbc89f120b066551e3" dependencies = [ "cc", "memchr", - "rustc_version 0.4.1", + "rustc_version", "toml", "vswhom", "winreg 0.52.0", @@ -2620,7 +2544,7 @@ version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -2661,9 +2585,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.7" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3716d7a920fb4fac5d84e9d4bce8ceb321e9414b4409da61b07b75c1e3d0697" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" dependencies = [ "env_filter", "log", @@ -2687,9 +2611,9 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" dependencies = [ "libc", "windows-sys 0.59.0", @@ -2701,7 +2625,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "home", "windows-sys 0.48.0", ] @@ -2740,11 +2664,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" dependencies = [ "bit_field", - "half 2.5.0", + "half 2.6.0", "lebe", "miniz_oxide", "rayon-core", - "smallvec 1.14.0", + "smallvec", "zune-inflate", ] @@ -2798,8 +2722,8 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "memoffset 0.9.1", - "rustc_version 0.4.1", + "memoffset", + "rustc_version", ] [[package]] @@ -2808,7 +2732,7 @@ version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "libredox", "windows-sys 0.59.0", @@ -2823,14 +2747,14 @@ dependencies = [ "cc", "lazy_static", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] name = "flate2" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" dependencies = [ "crc32fast", "miniz_oxide", @@ -2919,22 +2843,6 @@ dependencies = [ "libc", ] -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags 1.3.2", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - [[package]] name = "funty" version = "2.0.0" @@ -2951,12 +2859,6 @@ dependencies = [ "new_debug_unreachable", ] -[[package]] -name = "futures" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" - [[package]] name = "futures" version = "0.3.31" @@ -3006,8 +2908,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", - "lock_api 0.4.12", - "parking_lot 0.12.3", + "lock_api", + "parking_lot", ] [[package]] @@ -3067,12 +2969,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" - [[package]] name = "futures-util" version = "0.3.31" @@ -3216,7 +3112,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed7131e57abbde63513e0e6636f76668a1ca9798dcae2df4e283cae9ee83859e" dependencies = [ - "rustix 1.0.3", + "rustix 1.0.5", "windows-targets 0.52.6", ] @@ -3226,7 +3122,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] @@ -3237,7 +3133,7 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -3250,7 +3146,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "libc", "r-efi", @@ -3289,7 +3185,7 @@ dependencies = [ "libc", "once_cell", "pin-project-lite", - "smallvec 1.14.0", + "smallvec", "thiserror 1.0.69", ] @@ -3303,7 +3199,7 @@ dependencies = [ "gobject-sys", "libc", "system-deps", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3325,7 +3221,7 @@ dependencies = [ "libc", "memchr", "once_cell", - "smallvec 1.14.0", + "smallvec", "thiserror 1.0.69", ] @@ -3439,34 +3335,34 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "bytes 1.10.1", + "bytes", "fnv", "futures-core", "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.8.0", + "indexmap 2.9.0", "slab", - "tokio 1.44.1", + "tokio", "tokio-util", "tracing", ] [[package]] name = "h2" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" +checksum = "75249d144030531f8dee69fe9cea04d3edf809a017ae445e2abdff6629e86633" dependencies = [ "atomic-waker", - "bytes 1.10.1", + "bytes", "fnv", "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.8.0", + "indexmap 2.9.0", "slab", - "tokio 1.44.1", + "tokio", "tokio-util", "tracing", ] @@ -3479,11 +3375,11 @@ checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" [[package]] name = "half" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db2ff139bba50379da6aa0766b52fdcb62cb5b263009b09ed58ba604e14bbd1" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crunchy", ] @@ -3623,13 +3519,13 @@ dependencies = [ [[package]] name = "hostname" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" +checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", - "windows 0.52.0", + "windows-link", ] [[package]] @@ -3652,7 +3548,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes 1.10.1", + "bytes", "fnv", "itoa 1.0.15", ] @@ -3663,7 +3559,7 @@ version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ - "bytes 1.10.1", + "bytes", "fnv", "itoa 1.0.15", ] @@ -3674,7 +3570,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.10.1", + "bytes", "http 0.2.12", "pin-project-lite", ] @@ -3685,7 +3581,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes 1.10.1", + "bytes", "http 1.3.1", ] @@ -3695,7 +3591,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ - "bytes 1.10.1", + "bytes", "futures-core", "http 1.3.1", "http-body 1.0.1", @@ -3753,7 +3649,7 @@ version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ - "bytes 1.10.1", + "bytes", "futures-channel", "futures-core", "futures-util", @@ -3765,7 +3661,7 @@ dependencies = [ "itoa 1.0.15", "pin-project-lite", "socket2", - "tokio 1.44.1", + "tokio", "tower-service", "tracing", "want", @@ -3777,18 +3673,18 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ - "bytes 1.10.1", + "bytes", "futures-channel", "futures-util", - "h2 0.4.8", + "h2 0.4.9", "http 1.3.1", "http-body 1.0.1", "httparse", "httpdate", "itoa 1.0.15", "pin-project-lite", - "smallvec 1.14.0", - "tokio 1.44.1", + "smallvec", + "tokio", "want", ] @@ -3804,7 +3700,7 @@ dependencies = [ "log", "rustls 0.21.12", "rustls-native-certs 0.6.3", - "tokio 1.44.1", + "tokio", "tokio-rustls 0.24.1", ] @@ -3818,10 +3714,10 @@ dependencies = [ "http 1.3.1", "hyper 1.6.0", "hyper-util", - "rustls 0.23.25", + "rustls 0.23.26", "rustls-native-certs 0.8.1", "rustls-pki-types", - "tokio 1.44.1", + "tokio", "tokio-rustls 0.26.2", "tower-service", "webpki-roots 0.26.8", @@ -3836,7 +3732,7 @@ dependencies = [ "hyper 1.6.0", "hyper-util", "pin-project-lite", - "tokio 1.44.1", + "tokio", "tower-service", ] @@ -3846,10 +3742,10 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.10.1", + "bytes", "hyper 0.14.32", "native-tls", - "tokio 1.44.1", + "tokio", "tokio-native-tls", ] @@ -3859,40 +3755,41 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "bytes 1.10.1", + "bytes", "http-body-util", "hyper 1.6.0", "hyper-util", "native-tls", - "tokio 1.44.1", + "tokio", "tokio-native-tls", "tower-service", ] [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" dependencies = [ - "bytes 1.10.1", + "bytes", "futures-channel", "futures-util", "http 1.3.1", "http-body 1.0.1", "hyper 1.6.0", + "libc", "pin-project-lite", "socket2", - "tokio 1.44.1", + "tokio", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.62" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2fd658b06e56721792c5df4475705b6cda790e9298d19d2f8af083457bcd127" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3900,7 +3797,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core 0.61.0", ] [[package]] @@ -3978,7 +3875,7 @@ dependencies = [ "icu_normalizer_data", "icu_properties", "icu_provider", - "smallvec 1.14.0", + "smallvec", "utf16_iter", "utf8_iter", "write16", @@ -4063,7 +3960,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ "idna_adapter", - "smallvec 1.14.0", + "smallvec", "utf8_iter", ] @@ -4131,9 +4028,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -4177,15 +4074,15 @@ dependencies = [ "ahash 0.8.11", "clap", "crossbeam-channel", - "crossbeam-utils 0.8.21", + "crossbeam-utils", "dashmap 6.1.0", "env_logger", - "indexmap 2.8.0", + "indexmap 2.9.0", "itoa 1.0.15", "log", "num-format", "once_cell", - "quick-xml 0.37.3", + "quick-xml 0.37.4", "rgb", "str_stack", ] @@ -4225,16 +4122,7 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", + "cfg-if", ] [[package]] @@ -4390,7 +4278,7 @@ dependencies = [ "pprof_util", "tempfile", "tikv-jemalloc-ctl", - "tokio 1.44.1", + "tokio", "tracing", ] @@ -4401,7 +4289,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", - "cfg-if 1.0.0", + "cfg-if", "combine", "jni-sys", "log", @@ -4418,10 +4306,11 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.2", "libc", ] @@ -4501,16 +4390,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "keyboard-types" version = "0.7.0" @@ -4573,7 +4452,7 @@ dependencies = [ "async-trait", "base64 0.21.7", "bitflags 2.9.0", - "bytes 1.10.1", + "bytes", "censor", "chrono", "clap", @@ -4587,8 +4466,7 @@ dependencies = [ "dotenvy", "either", "flate2", - "futures 0.3.31", - "futures-timer", + "futures", "futures-util", "hex", "hmac 0.11.0", @@ -4617,8 +4495,6 @@ dependencies = [ "sentry", "sentry-actix", "serde", - "serde_bytes", - "serde_cbor", "serde_json", "serde_with", "sha1 0.6.1", @@ -4629,19 +4505,17 @@ dependencies = [ "thiserror 1.0.69", "tikv-jemalloc-ctl", "tikv-jemallocator", - "tokio 1.44.1", + "tokio", "tokio-stream", "totp-rs", "tracing", "tracing-actix-web", - "tracing-subscriber", "url", "urlencoding", "uuid 1.16.0", "validator", "webp", "woothee", - "xml-rs", "yaserde", "yaserde_derive", "zip 0.6.6", @@ -4690,7 +4564,7 @@ dependencies = [ "percent-encoding", "quoted_printable", "socket2", - "tokio 1.44.1", + "tokio", "url", ] @@ -4720,9 +4594,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.171" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libdbus-sys" @@ -4740,8 +4614,8 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ - "cfg-if 1.0.0", - "winapi 0.3.9", + "cfg-if", + "winapi", ] [[package]] @@ -4778,7 +4652,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.9.0", "libc", - "redox_syscall 0.5.10", + "redox_syscall", ] [[package]] @@ -4816,9 +4690,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" @@ -4843,15 +4717,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487" -[[package]] -name = "lock_api" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -dependencies = [ - "scopeguard", -] - [[package]] name = "lock_api" version = "0.4.12" @@ -4982,19 +4847,13 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "md-5" version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "digest 0.10.7", ] @@ -5024,9 +4883,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66958255878d712b4f2dece377a8661b41dc976ff15f564b91bfce8b4a619304" dependencies = [ "async-trait", - "bytes 1.10.1", + "bytes", "either", - "futures 0.3.31", + "futures", "futures-io", "iso8601", "jsonwebtoken", @@ -5050,15 +4909,6 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memoffset" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.9.1" @@ -5107,33 +4957,14 @@ checksum = "6367d84fb54d4242af283086402907277715b8fe46976963af5ebf173f8efba3" [[package]] name = "miniz_oxide" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ "adler2", "simd-adler32", ] -[[package]] -name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow", - "net2", - "slab", - "winapi 0.2.8", -] - [[package]] name = "mio" version = "0.8.11" @@ -5158,29 +4989,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "mio-uds" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" -dependencies = [ - "iovec", - "libc", - "mio 0.6.23", -] - -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - [[package]] name = "muda" version = "0.16.1" @@ -5234,7 +5042,7 @@ dependencies = [ "versions", "wfd", "which", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5284,17 +5092,6 @@ dependencies = [ "jni-sys", ] -[[package]] -name = "net2" -version = "0.2.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi 0.3.9", -] - [[package]] name = "new_debug_unreachable" version = "1.0.6" @@ -5308,10 +5105,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ "bitflags 2.9.0", - "cfg-if 1.0.0", + "cfg-if", "cfg_aliases", "libc", - "memoffset 0.9.1", + "memoffset", ] [[package]] @@ -5383,7 +5180,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5393,7 +5190,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5433,7 +5230,7 @@ dependencies = [ "num-iter", "num-traits", "rand 0.8.5", - "smallvec 1.14.0", + "smallvec", "zeroize", ] @@ -5847,12 +5644,12 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.71" +version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ "bitflags 2.9.0", - "cfg-if 1.0.0", + "cfg-if", "foreign-types 0.3.2", "libc", "once_cell", @@ -5879,18 +5676,18 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-src" -version = "300.4.2+3.4.1" +version = "300.5.0+3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168ce4e058f975fe43e89d9ccf78ca668601887ae736090aacc23ae353c298e2" +checksum = "e8ce546f549326b0e6052b649198487d91320875da901e7bd11a06d1ee3f9c2f" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.106" +version = "0.9.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" dependencies = [ "cc", "libc", @@ -6009,40 +5806,14 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" -[[package]] -name = "parking_lot" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" -dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.6.3", - "rustc_version 0.2.3", -] - [[package]] name = "parking_lot" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ - "lock_api 0.4.12", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "parking_lot_core" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66b810a62be75176a80873726630147a5ca780cd33921e0b5709033e66b0a" -dependencies = [ - "cfg-if 0.1.10", - "cloudabi", - "libc", - "redox_syscall 0.1.57", - "rustc_version 0.2.3", - "smallvec 0.6.14", - "winapi 0.3.9", + "lock_api", + "parking_lot_core", ] [[package]] @@ -6051,10 +5822,10 @@ version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", - "redox_syscall 0.5.10", - "smallvec 1.14.0", + "redox_syscall", + "smallvec", "windows-targets 0.52.6", ] @@ -6270,7 +6041,7 @@ dependencies = [ "fnv", "nom 7.1.3", "once_cell", - "quick-xml 0.37.3", + "quick-xml 0.37.4", "regex", "regex-cache", "serde", @@ -6356,7 +6127,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eac26e981c03a6e53e0aee43c113e3202f5581d5360dae7bd2c70e800dd0451d" dependencies = [ "base64 0.22.1", - "indexmap 2.8.0", + "indexmap 2.9.0", "quick-xml 0.32.0", "serde", "time", @@ -6381,7 +6152,7 @@ version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", @@ -6515,9 +6286,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -6551,12 +6322,12 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "fnv", "lazy_static", "libc", "memchr", - "parking_lot 0.12.3", + "parking_lot", "procfs", "protobuf", "thiserror 1.0.69", @@ -6568,7 +6339,7 @@ version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" dependencies = [ - "bytes 1.10.1", + "bytes", "prost-derive", ] @@ -6665,9 +6436,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.37.3" +version = "0.37.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf763ab1c7a3aa408be466efc86efe35ed1bd3dd74173ed39d6b0d0a6f0ba148" +checksum = "a4ce8c88de324ff838700f36fb6ab86c96df0e3c4ab6ef3a9b2044465cce1369" dependencies = [ "memchr", ] @@ -6678,16 +6449,16 @@ version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" dependencies = [ - "bytes 1.10.1", + "bytes", "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.25", + "rustls 0.23.26", "socket2", "thiserror 2.0.12", - "tokio 1.44.1", + "tokio", "tracing", "web-time", ] @@ -6698,12 +6469,12 @@ version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" dependencies = [ - "bytes 1.10.1", + "bytes", "getrandom 0.3.2", - "rand 0.9.0", + "rand 0.9.1", "ring 0.17.14", "rustc-hash", - "rustls 0.23.25", + "rustls 0.23.26", "rustls-pki-types", "slab", "thiserror 2.0.12", @@ -6754,7 +6525,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" dependencies = [ "log", - "parking_lot 0.12.3", + "parking_lot", "scheduled-thread-pool", ] @@ -6791,13 +6562,12 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", - "zerocopy 0.8.24", ] [[package]] @@ -6903,8 +6673,8 @@ version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "crossbeam-deque 0.8.6", - "crossbeam-utils 0.8.21", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] @@ -6916,7 +6686,7 @@ dependencies = [ "ahash 0.8.11", "arc-swap", "async-trait", - "bytes 1.10.1", + "bytes", "combine", "futures-util", "itertools 0.13.0", @@ -6928,22 +6698,16 @@ dependencies = [ "ryu", "sha1_smol", "socket2", - "tokio 1.44.1", + "tokio", "tokio-util", "url", ] [[package]] name = "redox_syscall" -version = "0.1.57" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "redox_syscall" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" dependencies = [ "bitflags 2.9.0", ] @@ -7048,7 +6812,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", - "bytes 1.10.1", + "bytes", "encoding_rs", "futures-core", "futures-util", @@ -7074,7 +6838,7 @@ dependencies = [ "serde_urlencoded", "sync_wrapper 0.1.2", "system-configuration 0.5.1", - "tokio 1.44.1", + "tokio", "tokio-native-tls", "tokio-rustls 0.24.1", "tokio-util", @@ -7096,12 +6860,12 @@ checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" dependencies = [ "async-compression", "base64 0.22.1", - "bytes 1.10.1", + "bytes", "encoding_rs", "futures-channel", "futures-core", "futures-util", - "h2 0.4.8", + "h2 0.4.9", "http 1.3.1", "http-body 1.0.1", "http-body-util", @@ -7118,7 +6882,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.25", + "rustls 0.23.26", "rustls-native-certs 0.8.1", "rustls-pemfile 2.2.0", "rustls-pki-types", @@ -7127,7 +6891,7 @@ dependencies = [ "serde_urlencoded", "sync_wrapper 1.0.2", "system-configuration 0.6.1", - "tokio 1.44.1", + "tokio", "tokio-native-tls", "tokio-rustls 0.26.2", "tokio-util", @@ -7204,7 +6968,7 @@ dependencies = [ "spin 0.5.2", "untrusted 0.7.1", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -7214,7 +6978,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", - "cfg-if 1.0.0", + "cfg-if", "getrandom 0.2.15", "libc", "untrusted 0.9.0", @@ -7229,7 +6993,7 @@ checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" dependencies = [ "bitvec", "bytecheck", - "bytes 1.10.1", + "bytes", "hashbrown 0.12.3", "ptr_meta", "rend", @@ -7276,7 +7040,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "ordered-multimap 0.4.3", ] @@ -7286,7 +7050,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e310ef0e1b6eeb79169a1171daf9abcb87a2e17c03bee2c4bb100b55c75409f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "ordered-multimap 0.7.3", "trim-in-place", ] @@ -7301,9 +7065,9 @@ dependencies = [ "aws-creds", "aws-region", "base64 0.13.1", - "bytes 1.10.1", - "cfg-if 1.0.0", - "futures 0.3.31", + "bytes", + "cfg-if", + "futures", "hex", "hmac 0.12.1", "http 0.2.12", @@ -7319,7 +7083,7 @@ dependencies = [ "sha2 0.10.8", "thiserror 1.0.69", "time", - "tokio 1.44.1", + "tokio", "tokio-stream", "url", ] @@ -7332,7 +7096,7 @@ checksum = "faa7de2ba56ac291bd90c6b9bece784a52ae1411f9506544b3eae36dd2356d50" dependencies = [ "arrayvec", "borsh", - "bytes 1.10.1", + "bytes", "num-traits", "rand 0.8.5", "rkyv", @@ -7374,22 +7138,13 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - [[package]] name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.26", + "semver", ] [[package]] @@ -7407,14 +7162,14 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.9.3", + "linux-raw-sys 0.9.4", "windows-sys 0.59.0", ] @@ -7458,9 +7213,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.25" +version = "0.23.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" dependencies = [ "log", "once_cell", @@ -7576,7 +7331,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a98f186c7a2f3abbffb802984b7f1dfd65dac8be1aafdaabbca4137f53f0dff7" dependencies = [ - "bytes 1.10.1", + "bytes", "rxml_validation", "smartstring", ] @@ -7617,7 +7372,7 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" dependencies = [ - "parking_lot 0.12.3", + "parking_lot", ] [[package]] @@ -7747,19 +7502,10 @@ dependencies = [ "phf_codegen 0.8.0", "precomputed-hash", "servo_arc", - "smallvec 1.14.0", + "smallvec", "thin-slice", ] -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - [[package]] name = "semver" version = "1.0.26" @@ -7769,12 +7515,6 @@ dependencies = [ "serde", ] -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - [[package]] name = "sentry" version = "0.34.0" @@ -7790,7 +7530,7 @@ dependencies = [ "sentry-debug-images", "sentry-panic", "sentry-tracing", - "tokio 1.44.1", + "tokio", "ureq", "webpki-roots 0.26.8", ] @@ -7827,7 +7567,7 @@ dependencies = [ "hostname", "libc", "os_info", - "rustc_version 0.4.1", + "rustc_version", "sentry-core", "uname", ] @@ -8097,7 +7837,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.8.0", + "indexmap 2.9.0", "serde", "serde_derive", "serde_json", @@ -8164,7 +7904,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.10.7", ] @@ -8182,7 +7922,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.9.0", "opaque-debug", @@ -8194,7 +7934,7 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.10.7", ] @@ -8268,18 +8008,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "0.6.14" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" -dependencies = [ - "maybe-uninit", -] - -[[package]] -name = "smallvec" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" dependencies = [ "serde", ] @@ -8317,9 +8048,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", "windows-sys 0.52.0", @@ -8341,7 +8072,7 @@ dependencies = [ "objc2-foundation 0.2.2", "objc2-quartz-core 0.2.2", "raw-window-handle 0.6.2", - "redox_syscall 0.5.10", + "redox_syscall", "wasm-bindgen", "web-sys", "windows-sys 0.59.0", @@ -8379,7 +8110,7 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58b69356da67e2fc1f542c71ea7e654a361a79c938e4424392ecf4fa065d2193" dependencies = [ - "smallvec 1.14.0", + "smallvec", ] [[package]] @@ -8394,7 +8125,7 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" dependencies = [ - "lock_api 0.4.12", + "lock_api", ] [[package]] @@ -8409,9 +8140,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" +checksum = "f3c3a85280daca669cfd3bcb68a337882a8bc57ec882f72c5d13a430613a738e" dependencies = [ "sqlx-core", "sqlx-macros", @@ -8422,14 +8153,15 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" +checksum = "f743f2a3cea30a58cd479013f75550e879009e3a02f616f18ca699335aa248c3" dependencies = [ - "bytes 1.10.1", + "base64 0.22.1", + "bytes", "chrono", "crc", - "crossbeam-queue 0.3.12", + "crossbeam-queue", "either", "event-listener 5.4.0", "futures-core", @@ -8438,20 +8170,19 @@ dependencies = [ "futures-util", "hashbrown 0.15.2", "hashlink", - "indexmap 2.8.0", + "indexmap 2.9.0", "log", "memchr", "once_cell", "percent-encoding", "rust_decimal", - "rustls 0.23.25", - "rustls-pemfile 2.2.0", + "rustls 0.23.26", "serde", "serde_json", "sha2 0.10.8", - "smallvec 1.14.0", + "smallvec", "thiserror 2.0.12", - "tokio 1.44.1", + "tokio", "tokio-stream", "tracing", "url", @@ -8460,9 +8191,9 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" +checksum = "7f4200e0fde19834956d4252347c12a083bdcb237d7a1a1446bffd8768417dce" dependencies = [ "proc-macro2", "quote", @@ -8473,9 +8204,9 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" +checksum = "882ceaa29cade31beca7129b6beeb05737f44f82dbe2a9806ecea5a7093d00b7" dependencies = [ "dotenvy", "either", @@ -8493,21 +8224,21 @@ dependencies = [ "sqlx-sqlite", "syn 2.0.100", "tempfile", - "tokio 1.44.1", + "tokio", "url", ] [[package]] name = "sqlx-mysql" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" +checksum = "0afdd3aa7a629683c2d750c2df343025545087081ab5942593a5288855b1b7a7" dependencies = [ "atoi", "base64 0.22.1", "bitflags 2.9.0", "byteorder", - "bytes 1.10.1", + "bytes", "chrono", "crc", "digest 0.10.7", @@ -8533,7 +8264,7 @@ dependencies = [ "serde", "sha1 0.10.6", "sha2 0.10.8", - "smallvec 1.14.0", + "smallvec", "sqlx-core", "stringprep", "thiserror 2.0.12", @@ -8543,9 +8274,9 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" +checksum = "a0bedbe1bbb5e2615ef347a5e9d8cd7680fb63e77d9dafc0f29be15e53f1ebe6" dependencies = [ "atoi", "base64 0.22.1", @@ -8572,7 +8303,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", - "smallvec 1.14.0", + "smallvec", "sqlx-core", "stringprep", "thiserror 2.0.12", @@ -8582,9 +8313,9 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" +checksum = "c26083e9a520e8eb87a06b12347679b142dc2ea29e6e409f805644a7a979a5bc" dependencies = [ "atoi", "chrono", @@ -8600,6 +8331,7 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", + "thiserror 2.0.12", "tracing", "url", ] @@ -8617,7 +8349,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601f9201feb9b09c00266478bf459952b9ef9a6b94edb2f21eba14ab681a60a9" dependencies = [ "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", "psm", "windows-sys 0.59.0", @@ -8648,7 +8380,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" dependencies = [ "new_debug_unreachable", - "parking_lot 0.12.3", + "parking_lot", "phf_shared 0.11.3", "precomputed-hash", "serde", @@ -8824,7 +8556,7 @@ version = "0.30.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "core-foundation-sys", "libc", "ntapi", @@ -8890,9 +8622,9 @@ dependencies = [ [[package]] name = "tao" -version = "0.32.8" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63c8b1020610b9138dd7b1e06cf259ae91aa05c30f3bd0d6b42a03997b92dec1" +checksum = "1e59c1f38e657351a2e822eadf40d6a2ad4627b9c25557bc1180ec1b3295ef82" dependencies = [ "bitflags 2.9.0", "core-foundation 0.10.0", @@ -8915,14 +8647,14 @@ dependencies = [ "objc2-app-kit", "objc2-foundation 0.3.0", "once_cell", - "parking_lot 0.12.3", + "parking_lot", "raw-window-handle 0.6.2", "scopeguard", "tao-macros", "unicode-segmentation", "url", - "windows 0.60.0", - "windows-core 0.60.1", + "windows 0.61.1", + "windows-core 0.61.0", "windows-version", "x11-dl", ] @@ -8963,12 +8695,12 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511dd38065a5d3b36c33cdba4362b99a40a5103bebcd4aebb930717e7c8ba292" +checksum = "be03adf68fba02f87c4653da7bd73f40b0ecf9c6b7c2c39830f6981d0651912f" dependencies = [ "anyhow", - "bytes 1.10.1", + "bytes", "dirs 6.0.0", "dunce", "embed_plist", @@ -8987,6 +8719,7 @@ dependencies = [ "objc2 0.6.0", "objc2-app-kit", "objc2-foundation 0.3.0", + "objc2-ui-kit", "percent-encoding", "plist", "raw-window-handle 0.6.2", @@ -9002,21 +8735,21 @@ dependencies = [ "tauri-runtime-wry", "tauri-utils", "thiserror 2.0.12", - "tokio 1.44.1", + "tokio", "tray-icon", "url", "urlpattern", "webkit2gtk", "webview2-com", "window-vibrancy", - "windows 0.60.0", + "windows 0.61.1", ] [[package]] name = "tauri-build" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffa8732a66f90903f5a585215f3cf1e87988d0359bc88c18a502efe7572c1de" +checksum = "d7a0350f0df1db385ca5c02888a83e0e66655c245b7443db8b78a70da7d7f8fc" dependencies = [ "anyhow", "cargo_toml", @@ -9026,7 +8759,7 @@ dependencies = [ "json-patch 3.0.1", "quote", "schemars", - "semver 1.0.26", + "semver", "serde", "serde_json", "tauri-codegen", @@ -9038,9 +8771,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c266a247f14d63f40c6282c2653a8bac5cc3d482ca562a003a88513653ea817a" +checksum = "f93f035551bf7b11b3f51ad9bc231ebbe5e085565527991c16cf326aa38cdf47" dependencies = [ "base64 0.22.1", "brotli", @@ -9050,7 +8783,7 @@ dependencies = [ "png", "proc-macro2", "quote", - "semver 1.0.26", + "semver", "serde", "serde_json", "sha2 0.10.8", @@ -9065,9 +8798,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f47a1cf94b3bd6c4dc37dce1a43fc96120ff29a91757f0ab3cf713c7ad846e7c" +checksum = "8db4df25e2d9d45de0c4c910da61cd5500190da14ae4830749fee3466dddd112" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -9079,9 +8812,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9972871fcbddf16618f70412d965d4d845cd4b76d03fff168709961ef71e5cdf" +checksum = "37a5ebe6a610d1b78a94650896e6f7c9796323f408800cef436e0fa0539de601" dependencies = [ "anyhow", "glob", @@ -9096,9 +8829,9 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35d51ffd286073414d26353bcfc9e83e3cd63f96fa7f7a912f92f2118e5de5a6" +checksum = "dba4412f30eaff6f5d210e20383c2d6835593977402092e95b72497a4f8632fa" dependencies = [ "dunce", "rust-ini 0.21.1", @@ -9110,15 +8843,15 @@ dependencies = [ "thiserror 2.0.12", "tracing", "url", - "windows-registry 0.3.0", - "windows-result 0.2.0", + "windows-registry 0.5.1", + "windows-result", ] [[package]] name = "tauri-plugin-dialog" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b59fd750551b1066744ab956a1cd6b1ea3e1b3763b0b9153ac27a044d596426" +checksum = "bcaf6e5d6062423a0f711a23c2a573ccba222b6a16a9322d8499928f27e41376" dependencies = [ "log", "raw-window-handle 0.6.2", @@ -9134,9 +8867,9 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a1edf18000f02903a7c2e5997fb89aca455ecbc0acc15c6535afbb883be223" +checksum = "88371e340ad2f07409a3b68294abe73f20bc9c1bc1b631a31dc37a3d0161f682" dependencies = [ "anyhow", "dunce", @@ -9197,9 +8930,9 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25bbc73eed15bba8ad290a52614f2711280df4bf575b36ce78f64367074b90b7" +checksum = "1320af4d866a7fb5f5721d299d14d0dd9e4e6bc0359ff3e263124a2bf6814efa" dependencies = [ "serde", "serde_json", @@ -9212,9 +8945,9 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" -version = "2.6.1" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31bfcfb4a8318008d2108ccfba439d8263cf48867baabf372cb0e9f24771896" +checksum = "73f05c38afd77a4b8fd98e8fb6f1cdbb5fbb8a46ba181eb2758b05321e3c6209" dependencies = [ "base64 0.22.1", "dirs 6.0.0", @@ -9227,7 +8960,7 @@ dependencies = [ "osakit", "percent-encoding", "reqwest 0.12.15", - "semver 1.0.26", + "semver", "serde", "serde_json", "tar", @@ -9236,17 +8969,17 @@ dependencies = [ "tempfile", "thiserror 2.0.12", "time", - "tokio 1.44.1", + "tokio", "url", "windows-sys 0.59.0", - "zip 2.5.0", + "zip 2.6.1", ] [[package]] name = "tauri-plugin-window-state" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e344b512b0d99d9d06225f235d87d6c66d89496a3bf323d9b578d940596e6c" +checksum = "a27a3fe49de72adbe0d84aee33c89a0b059722cd0b42aaeab29eaaee7f7535cd" dependencies = [ "bitflags 2.9.0", "log", @@ -9259,29 +8992,31 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e9c7bce5153f1ca7bc45eba37349b31ba50e975e28edc8b5766c5ec02b0b63a" +checksum = "00f004905d549854069e6774533d742b03cacfd6f03deb08940a8677586cbe39" dependencies = [ "cookie 0.18.1", "dpi", "gtk", "http 1.3.1", "jni", + "objc2 0.6.0", + "objc2-ui-kit", "raw-window-handle 0.6.2", "serde", "serde_json", "tauri-utils", "thiserror 2.0.12", "url", - "windows 0.60.0", + "windows 0.61.1", ] [[package]] name = "tauri-runtime-wry" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "087188020fd6facb8578fe9b38e81fa0fe5fb85744c73da51a299f94a530a1e3" +checksum = "f85d056f4d4b014fe874814034f3416d57114b617a493a4fe552580851a3f3a2" dependencies = [ "gtk", "http 1.3.1", @@ -9300,15 +9035,15 @@ dependencies = [ "url", "webkit2gtk", "webview2-com", - "windows 0.60.0", + "windows 0.61.1", "wry", ] [[package]] name = "tauri-utils" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82dcced4014e59af9790cc22f5d271df3be09ecd6728ec68861642553c8d01b7" +checksum = "b2900399c239a471bcff7f15c4399eb1a8c4fe511ba2853e07c996d771a5e0a4" dependencies = [ "anyhow", "brotli", @@ -9328,7 +9063,7 @@ dependencies = [ "quote", "regex", "schemars", - "semver 1.0.26", + "semver", "serde", "serde-untagged", "serde_json", @@ -9361,7 +9096,7 @@ dependencies = [ "fastrand 2.3.0", "getrandom 0.3.2", "once_cell", - "rustix 1.0.3", + "rustix 1.0.5", "windows-sys 0.59.0", ] @@ -9384,7 +9119,7 @@ checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" dependencies = [ "dirs-next", "rustversion", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -9397,7 +9132,7 @@ dependencies = [ "async_zip", "base64 0.22.1", "byteorder", - "bytes 1.10.1", + "bytes", "chrono", "daedalus", "dashmap 6.1.0", @@ -9406,7 +9141,7 @@ dependencies = [ "dunce", "either", "flate2", - "futures 0.3.31", + "futures", "indicatif", "lazy_static", "notify", @@ -9427,13 +9162,11 @@ dependencies = [ "tauri", "tempfile", "thiserror 1.0.69", - "tokio 1.44.1", - "toml", + "tokio", "tracing", "tracing-error", "tracing-subscriber", "url", - "urlencoding", "uuid 1.16.0", "whoami", "winreg 0.52.0", @@ -9448,12 +9181,8 @@ dependencies = [ "cocoa", "daedalus", "dashmap 6.1.0", - "dirs 5.0.1", - "futures 0.3.31", - "lazy_static", "native-dialog", "objc", - "once_cell", "opener", "os_info", "paste", @@ -9472,7 +9201,7 @@ dependencies = [ "tauri-plugin-window-state", "theseus", "thiserror 1.0.69", - "tokio 1.44.1", + "tokio", "tracing", "tracing-error", "url", @@ -9484,18 +9213,9 @@ dependencies = [ name = "theseus_playground" version = "0.0.0" dependencies = [ - "dunce", - "futures 0.3.31", - "serde", - "serde_json", "theseus", - "thiserror 1.0.69", - "tokio 1.44.1", + "tokio", "tracing", - "tracing-error", - "tracing-subscriber", - "url", - "uuid 1.16.0", "webbrowser", ] @@ -9551,7 +9271,7 @@ version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "once_cell", ] @@ -9664,39 +9384,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "0.1.22" +version = "1.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "mio 0.6.23", - "num_cpus", - "tokio-codec", - "tokio-current-thread", - "tokio-executor", - "tokio-fs", - "tokio-io", - "tokio-reactor", - "tokio-sync", - "tokio-tcp", - "tokio-threadpool", - "tokio-timer", - "tokio-udp", - "tokio-uds", -] - -[[package]] -name = "tokio" -version = "1.44.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" dependencies = [ "backtrace", - "bytes 1.10.1", + "bytes", "libc", "mio 1.0.3", - "parking_lot 0.12.3", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -9705,59 +9401,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "tokio-codec" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "tokio-io", -] - -[[package]] -name = "tokio-current-thread" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" -dependencies = [ - "futures 0.1.31", - "tokio-executor", -] - -[[package]] -name = "tokio-executor" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", -] - -[[package]] -name = "tokio-fs" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" -dependencies = [ - "futures 0.1.31", - "tokio-io", - "tokio-threadpool", -] - -[[package]] -name = "tokio-io" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", -] - [[package]] name = "tokio-macros" version = "2.5.0" @@ -9776,26 +9419,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ "native-tls", - "tokio 1.44.1", -] - -[[package]] -name = "tokio-reactor" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "lazy_static", - "log", - "mio 0.6.23", - "num_cpus", - "parking_lot 0.9.0", - "slab", - "tokio-executor", - "tokio-io", - "tokio-sync", + "tokio", ] [[package]] @@ -9805,7 +9429,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls 0.21.12", - "tokio 1.44.1", + "tokio", ] [[package]] @@ -9814,8 +9438,8 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.25", - "tokio 1.44.1", + "rustls 0.23.26", + "tokio", ] [[package]] @@ -9826,93 +9450,7 @@ checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", - "tokio 1.44.1", -] - -[[package]] -name = "tokio-sync" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" -dependencies = [ - "fnv", - "futures 0.1.31", -] - -[[package]] -name = "tokio-tcp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "iovec", - "mio 0.6.23", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-threadpool" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" -dependencies = [ - "crossbeam-deque 0.7.4", - "crossbeam-queue 0.2.3", - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "lazy_static", - "log", - "num_cpus", - "slab", - "tokio-executor", -] - -[[package]] -name = "tokio-timer" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "slab", - "tokio-executor", -] - -[[package]] -name = "tokio-udp" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", - "mio 0.6.23", - "tokio-codec", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-uds" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "iovec", - "libc", - "log", - "mio 0.6.23", - "mio-uds", - "tokio-codec", - "tokio-io", - "tokio-reactor", + "tokio", ] [[package]] @@ -9921,12 +9459,12 @@ version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ - "bytes 1.10.1", + "bytes", "futures-core", "futures-io", "futures-sink", "pin-project-lite", - "tokio 1.44.1", + "tokio", ] [[package]] @@ -9956,7 +9494,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.9.0", "toml_datetime", "winnow 0.5.40", ] @@ -9967,7 +9505,7 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.9.0", "toml_datetime", "winnow 0.5.40", ] @@ -9978,11 +9516,11 @@ version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.7.4", + "winnow 0.7.6", ] [[package]] @@ -9995,8 +9533,8 @@ dependencies = [ "async-trait", "axum", "base64 0.22.1", - "bytes 1.10.1", - "h2 0.4.8", + "bytes", + "h2 0.4.9", "http 1.3.1", "http-body 1.0.1", "http-body-util", @@ -10007,7 +9545,7 @@ dependencies = [ "pin-project", "prost", "socket2", - "tokio 1.44.1", + "tokio", "tokio-stream", "tower 0.4.13", "tower-layer", @@ -10017,14 +9555,14 @@ dependencies = [ [[package]] name = "totp-rs" -version = "5.6.0" +version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b2f27dad992486c26b4e7455f38aa487e838d6d61b57e72906ee2b8c287a90" +checksum = "f124352108f58ef88299e909f6e9470f1cdc8d2a1397963901b4a6366206bf72" dependencies = [ "base32", - "constant_time_eq 0.2.6", + "constant_time_eq 0.3.1", "hmac 0.12.1", - "rand 0.8.5", + "rand 0.9.1", "sha1 0.10.6", "sha2 0.10.8", ] @@ -10042,7 +9580,7 @@ dependencies = [ "pin-project-lite", "rand 0.8.5", "slab", - "tokio 1.44.1", + "tokio", "tokio-util", "tower-layer", "tower-service", @@ -10059,7 +9597,7 @@ dependencies = [ "futures-util", "pin-project-lite", "sync_wrapper 1.0.2", - "tokio 1.44.1", + "tokio", "tower-layer", "tower-service", ] @@ -10090,9 +9628,9 @@ dependencies = [ [[package]] name = "tracing-actix-web" -version = "0.7.16" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332bbdf3bd208d1fe6446f8ffb4e8c2ae66e25da0fb38e0b69545e640ecee6a6" +checksum = "2340b7722695166c7fc9b3e3cd1166e7c74fedb9075b8f0c74d3822d2e41caf5" dependencies = [ "actix-web", "mutually_exclusive_features", @@ -10132,18 +9670,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "futures 0.3.31", - "pin-project", - "tokio 0.1.22", - "tracing", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -10167,7 +9693,7 @@ dependencies = [ "once_cell", "regex", "sharded-slab", - "smallvec 1.14.0", + "smallvec", "thread_local", "tracing", "tracing-core", @@ -10176,9 +9702,9 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.20.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d433764348e7084bad2c5ea22c96c71b61b17afe3a11645710f533bd72b6a2b5" +checksum = "9f7eee98ec5c90daf179d55c20a49d8c0d043054ce7c26336c09a24d31f14fa0" dependencies = [ "crossbeam-channel", "dirs 6.0.0", @@ -10215,13 +9741,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" dependencies = [ "byteorder", - "bytes 1.10.1", + "bytes", "data-encoding", "http 1.3.1", "httparse", "log", "rand 0.8.5", - "rustls 0.23.25", + "rustls 0.23.26", "rustls-pki-types", "sha1 0.10.6", "thiserror 1.0.69", @@ -10246,9 +9772,9 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset 0.9.1", + "memoffset", "tempfile", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -10379,7 +9905,7 @@ dependencies = [ "base64 0.22.1", "log", "once_cell", - "rustls 0.23.25", + "rustls 0.23.26", "rustls-pki-types", "url", "webpki-roots 0.26.8", @@ -10456,7 +9982,7 @@ checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ "getrandom 0.3.2", "js-sys", - "rand 0.9.0", + "rand 0.9.1", "serde", "wasm-bindgen", ] @@ -10628,7 +10154,7 @@ version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", @@ -10654,7 +10180,7 @@ version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "once_cell", "wasm-bindgen", @@ -10833,15 +10359,15 @@ dependencies = [ [[package]] name = "webview2-com" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d606f600e5272b514dbb66539dd068211cc20155be8d3958201b4b5bd79ed3" +checksum = "b542b5cfbd9618c46c2784e4d41ba218c336ac70d44c55e47b251033e7d85601" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows 0.60.0", - "windows-core 0.60.1", - "windows-implement", + "windows 0.61.1", + "windows-core 0.61.0", + "windows-implement 0.60.0", "windows-interface", ] @@ -10858,13 +10384,13 @@ dependencies = [ [[package]] name = "webview2-com-sys" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb27fccd3c27f68e9a6af1bcf48c2d82534b8675b83608a4d81446d095a17ac" +checksum = "8ae2d11c4a686e4409659d7891791254cf9286d3cfe0eef54df1523533d22295" dependencies = [ "thiserror 2.0.12", - "windows 0.60.0", - "windows-core 0.60.1", + "windows 0.61.1", + "windows-core 0.61.0", ] [[package]] @@ -10880,7 +10406,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e713040b67aae5bf1a0ae3e1ebba8cc29ab2b90da9aa1bff6e09031a8a41d7a8" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -10901,17 +10427,11 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6994d13118ab492c3c80c1f81928718159254c53c472bf9ce36f8dae4add02a7" dependencies = [ - "redox_syscall 0.5.10", + "redox_syscall", "wasite", "web-sys", ] -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" - [[package]] name = "winapi" version = "0.3.9" @@ -10922,12 +10442,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -10992,11 +10506,24 @@ version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddf874e74c7a99773e62b1c671427abf01a425e77c3d3fb9fb1e4883ea934529" dependencies = [ - "windows-collections", + "windows-collections 0.1.1", "windows-core 0.60.1", - "windows-future", + "windows-future 0.1.1", "windows-link", - "windows-numerics", + "windows-numerics 0.1.1", +] + +[[package]] +name = "windows" +version = "0.61.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" +dependencies = [ + "windows-collections 0.2.0", + "windows-core 0.61.0", + "windows-future 0.2.0", + "windows-link", + "windows-numerics 0.2.0", ] [[package]] @@ -11008,6 +10535,15 @@ dependencies = [ "windows-core 0.60.1", ] +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.0", +] + [[package]] name = "windows-core" version = "0.52.0" @@ -11023,13 +10559,26 @@ version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca21a92a9cae9bf4ccae5cf8368dce0837100ddf6e6d57936749e85f152f6247" dependencies = [ - "windows-implement", + "windows-implement 0.59.0", "windows-interface", "windows-link", - "windows-result 0.3.2", + "windows-result", "windows-strings 0.3.1", ] +[[package]] +name = "windows-core" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +dependencies = [ + "windows-implement 0.60.0", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings 0.4.0", +] + [[package]] name = "windows-future" version = "0.1.1" @@ -11040,6 +10589,16 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-future" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a1d6bbefcb7b60acd19828e1bc965da6fcf18a7e39490c5f8be71e54a19ba32" +dependencies = [ + "windows-core 0.61.0", + "windows-link", +] + [[package]] name = "windows-implement" version = "0.59.0" @@ -11051,6 +10610,17 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "windows-interface" version = "0.59.1" @@ -11079,14 +10649,13 @@ dependencies = [ ] [[package]] -name = "windows-registry" -version = "0.3.0" +name = "windows-numerics" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bafa604f2104cf5ae2cc2db1dee84b7e6a5d11b05f737b60def0ffdc398cbc0a" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-result 0.2.0", - "windows-strings 0.2.0", - "windows-targets 0.52.6", + "windows-core 0.61.0", + "windows-link", ] [[package]] @@ -11095,18 +10664,20 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" dependencies = [ - "windows-result 0.3.2", + "windows-result", "windows-strings 0.3.1", "windows-targets 0.53.0", ] [[package]] -name = "windows-result" -version = "0.2.0" +name = "windows-registry" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +checksum = "ad1da3e436dc7653dfdf3da67332e22bff09bb0e28b0239e1624499c7830842e" dependencies = [ - "windows-targets 0.52.6", + "windows-link", + "windows-result", + "windows-strings 0.4.0", ] [[package]] @@ -11120,18 +10691,18 @@ dependencies = [ [[package]] name = "windows-strings" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978d65aedf914c664c510d9de43c8fd85ca745eaff1ed53edf409b479e441663" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" dependencies = [ - "windows-targets 0.52.6", + "windows-link", ] [[package]] name = "windows-strings" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" dependencies = [ "windows-link", ] @@ -11434,9 +11005,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" dependencies = [ "memchr", ] @@ -11447,7 +11018,7 @@ version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "windows-sys 0.48.0", ] @@ -11457,7 +11028,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "windows-sys 0.48.0", ] @@ -11494,9 +11065,9 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wry" -version = "0.50.5" +version = "0.51.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b19b78efae8b853c6c817e8752fc1dbf9cab8a8ffe9c30f399bd750ccf0f0730" +checksum = "c886a0a9d2a94fd90cfa1d929629b79cfefb1546e2c7430c63a47f0664c0e4e2" dependencies = [ "base64 0.22.1", "block2 0.6.0", @@ -11530,22 +11101,12 @@ dependencies = [ "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows 0.60.0", - "windows-core 0.60.1", + "windows 0.61.1", + "windows-core 0.61.0", "windows-version", "x11-dl", ] -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "wyz" version = "0.5.1" @@ -11583,7 +11144,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" dependencies = [ "libc", - "rustix 1.0.3", + "rustix 1.0.5", ] [[package]] @@ -11598,9 +11159,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" +checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" [[package]] name = "yaserde" @@ -11689,11 +11250,11 @@ dependencies = [ "serde", "serde_repr", "static_assertions", - "tokio 1.44.1", + "tokio", "tracing", "uds_windows", "windows-sys 0.59.0", - "winnow 0.7.4", + "winnow 0.7.6", "xdg-home", "zbus_macros", "zbus_names", @@ -11723,7 +11284,7 @@ checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" dependencies = [ "serde", "static_assertions", - "winnow 0.7.4", + "winnow 0.7.6", "zvariant", ] @@ -11827,7 +11388,7 @@ dependencies = [ "bzip2 0.4.4", "constant_time_eq 0.1.5", "crc32fast", - "crossbeam-utils 0.8.21", + "crossbeam-utils", "flate2", "hmac 0.12.1", "pbkdf2", @@ -11838,14 +11399,14 @@ dependencies = [ [[package]] name = "zip" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c03817464f64e23f6f37574b4fdc8cf65925b5bfd2b0f2aedf959791941f88" +checksum = "1dcb24d0152526ae49b9b96c1dcf71850ca1e0b882e4e28ed898a93c41334744" dependencies = [ "arbitrary", "crc32fast", - "crossbeam-utils 0.8.21", - "indexmap 2.8.0", + "crossbeam-utils", + "indexmap 2.9.0", "memchr", ] @@ -11916,7 +11477,7 @@ dependencies = [ "serde", "static_assertions", "url", - "winnow 0.7.4", + "winnow 0.7.6", "zvariant_derive", "zvariant_utils", ] @@ -11945,7 +11506,7 @@ dependencies = [ "serde", "static_assertions", "syn 2.0.100", - "winnow 0.7.4", + "winnow 0.7.6", ] [[package]] diff --git a/apps/app-frontend/src/pages/instance/Mods.vue b/apps/app-frontend/src/pages/instance/Mods.vue index e49f2d9c7..b70f01398 100644 --- a/apps/app-frontend/src/pages/instance/Mods.vue +++ b/apps/app-frontend/src/pages/instance/Mods.vue @@ -66,10 +66,10 @@ if (x.author) { item.creator = { - name: x.author, - type: 'user', - id: x.author, - link: 'https://modrinth.com/user/' + x.author, + name: x.author.name, + type: x.author.type, + id: x.author.slug, + link: `https://modrinth.com/${x.author.type}/${x.author.slug}`, linkProps: { target: '_blank' }, } } @@ -329,6 +329,28 @@ const props = defineProps({ }, }) +type ProjectListEntryAuthor = { + name: string + slug: string + type: 'user' | 'organization' +} + +type ProjectListEntry = { + path: string + name: string + slug?: string + author: ProjectListEntryAuthor | null + version: string | null + file_name: string + icon: string | null + disabled: boolean + updateVersion?: string + outdated: boolean + updated: dayjs.Dayjs + project_type: string + id?: string +} + const isPackLocked = computed(() => { return props.instance.linked_data && props.instance.linked_data.locked }) @@ -338,7 +360,7 @@ const canUpdatePack = computed(() => { }) const exportModal = ref(null) -const projects = ref([]) +const projects = ref([]) const selectedFiles = ref([]) const selectedProjects = computed(() => projects.value.filter((x) => selectedFiles.value.includes(x.file_name)), @@ -347,7 +369,7 @@ const selectedProjects = computed(() => const selectionMap = ref(new Map()) const initProjects = async (cacheBehaviour?) => { - const newProjects = [] + const newProjects: ProjectListEntry[] = [] const profileProjects = await get_projects(props.instance.path, cacheBehaviour) const fetchProjects = [] @@ -384,21 +406,29 @@ const initProjects = async (cacheBehaviour?) => { const team = modrinthTeams.find((x) => x[0].team_id === project.team) - let owner - + let author: ProjectListEntryAuthor | null if (org) { - owner = org.name + author = { + name: org.name, + slug: org.slug, + type: 'organization', + } } else if (team) { - owner = team.find((x) => x.is_owner).user.username + const teamMember = team.find((x) => x.is_owner) + author = { + name: teamMember.user.username, + slug: teamMember.user.username, + type: 'user', + } } else { - owner = null + author = null } newProjects.push({ path, name: project.title, slug: project.slug, - author: owner, + author, version: version.version_number, file_name: file.file_name, icon: project.icon_url, @@ -417,7 +447,7 @@ const initProjects = async (cacheBehaviour?) => { newProjects.push({ path, name: file.file_name.replace('.disabled', ''), - author: '', + author: null, version: null, file_name: file.file_name, icon: null, diff --git a/apps/app-playground/Cargo.toml b/apps/app-playground/Cargo.toml index a37251612..a90c40e74 100644 --- a/apps/app-playground/Cargo.toml +++ b/apps/app-playground/Cargo.toml @@ -7,18 +7,7 @@ edition = "2021" [dependencies] theseus = { path = "../../packages/app-lib", features = ["cli"] } - -serde_json = "1.0" -serde = { version = "1.0", features = ["derive"] } tokio = { version = "1", features = ["full"] } -thiserror = "1.0" -url = "2.2" webbrowser = "0.8.13" -dunce = "1.0.3" - -futures = "0.3" -uuid = { version = "1.1", features = ["serde", "v4"] } tracing = "0.1.37" -tracing-subscriber = "0.3.18" -tracing-error = "0.2.0" diff --git a/apps/app/Cargo.toml b/apps/app/Cargo.toml index 0e3bc20b3..06f38432d 100644 --- a/apps/app/Cargo.toml +++ b/apps/app/Cargo.toml @@ -28,12 +28,9 @@ tauri-plugin-single-instance = { version = "2.2.0" } tokio = { version = "1", features = ["full"] } thiserror = "1.0" -futures = "0.3" daedalus = { path = "../../packages/daedalus" } chrono = "0.4.26" -dirs = "5.0.1" - url = "2.2" uuid = { version = "1.1", features = ["serde", "v4"] } os_info = "3.7.0" @@ -41,9 +38,6 @@ os_info = "3.7.0" tracing = "0.1.37" tracing-error = "0.2.0" -lazy_static = "1" -once_cell = "1" - dashmap = "6.0.1" paste = "1.0.15" diff --git a/apps/daedalus_client/Cargo.toml b/apps/daedalus_client/Cargo.toml index 30b0f9db5..6ddb4c5ba 100644 --- a/apps/daedalus_client/Cargo.toml +++ b/apps/daedalus_client/Cargo.toml @@ -22,7 +22,6 @@ reqwest = { version = "0.12.5", default-features = false, features = [ "rustls-tls-native-roots", ] } async_zip = { version = "0.0.17", features = ["full"] } -semver = "1.0" chrono = { version = "0.4", features = ["serde"] } bytes = "1.6.0" rust-s3 = { version = "0.33.0", default-features = false, features = [ @@ -39,4 +38,3 @@ tracing-error = "0.2.0" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } -tracing-futures = { version = "0.2.5", features = ["futures", "tokio"] } diff --git a/apps/daedalus_client/src/forge.rs b/apps/daedalus_client/src/forge.rs index 5591f3211..a4f7a33a9 100644 --- a/apps/daedalus_client/src/forge.rs +++ b/apps/daedalus_client/src/forge.rs @@ -598,7 +598,7 @@ async fn fetch( )) })?; - let file_name = value.split('/').last() + let file_name = value.split('/').next_back() .ok_or_else(|| { crate::ErrorKind::InvalidInput(format!( "Unable reading filename for data key {key} at path {value}", diff --git a/apps/docs/astro.config.mjs b/apps/docs/astro.config.mjs index 4fcf82fa6..3baeb6f4f 100644 --- a/apps/docs/astro.config.mjs +++ b/apps/docs/astro.config.mjs @@ -44,6 +44,10 @@ export default defineConfig({ label: 'Contributing to Modrinth', autogenerate: { directory: 'contributing' }, }, + { + label: 'Guides', + autogenerate: { directory: 'guide' }, + }, // Add the generated sidebar group to the sidebar. ...openAPISidebarGroups, ], diff --git a/apps/docs/public/openapi.yaml b/apps/docs/public/openapi.yaml index da9504ae5..73b2b05b7 100644 --- a/apps/docs/public/openapi.yaml +++ b/apps/docs/public/openapi.yaml @@ -1,7 +1,7 @@ openapi: '3.0.0' info: - version: v2.7.0/15cf3fc + version: v2.7.0/366f528 title: Labrinth termsOfService: https://modrinth.com/legal/terms contact: @@ -51,35 +51,7 @@ info: Please note that certain scopes and requests cannot be completed with a personal access token or using OAuth. For example, deleting a user account can only be done through Modrinth's frontend. - ### OAuth2 - Applications interacting with an authenticated API should create an OAuth2 application. - You can do this in [the developer settings](https://modrinth.com/settings/applications). - - Make sure to save your application secret, as you will not be able to access it after you leave the page. - - Once you have created a client, use the following URL to have a user authorize your client: - ``` - https://modrinth.com/auth/authorize?client_id=&redirect_uri=&scope=++ - ``` - > You can get a list of all scope names [here](https://github.com/modrinth/code/tree/main/apps/labrinth/src/models/v3/pats.rs). - - Then, send a `POST` request to the following URL to get the token: - - ``` - https://api.modrinth.com/_internal/oauth/token - ``` - - > Note that you will need to provide your application's secret under the Authorization header. - - In the body of your request, make sure to include the following: - - `code`: The code generated when authorizing your client - - `client_id`: Your client ID (found in developer settings) - - `redirect_uri`: A valid redirect URI provided in your application's settings - - `grant_type`: This will need to be `authorization_code`. - - If your token request fails for any reason, you will need to get another code from the authorization process. - - This route will be changed in the future to move the `_internal` part to `v3`. + A detailed guide on OAuth has been published in [Modrinth's technical documentation](https://docs.modrinth.com/guide/oauth). ### Personal access tokens Personal access tokens (PATs) can be generated in from [the user settings](https://modrinth.com/settings/account). @@ -3018,6 +2990,24 @@ paths: $ref: '#/components/schemas/InvalidInputError' '404': description: The requested item(s) were not found or no authorization to access the requested item(s) + delete: + summary: Remove user's avatar + operationId: deleteUserIcon + tags: + - users + security: + - TokenAuth: ['USER_WRITE'] + responses: + '204': + description: Expected response to a valid request + '400': + description: Request was invalid, see given error + content: + application/json: + schema: + $ref: '#/components/schemas/InvalidInputError' + '404': + description: The requested item(s) were not found or no authorization to access the requested item(s) /user/{id|username}/projects: parameters: - $ref: '#/components/parameters/UserIdentifier' diff --git a/apps/docs/src/content/docs/guide/oauth.md b/apps/docs/src/content/docs/guide/oauth.md new file mode 100644 index 000000000..a7833b103 --- /dev/null +++ b/apps/docs/src/content/docs/guide/oauth.md @@ -0,0 +1,95 @@ +--- +title: The hitchhiker's guide to OAuth +description: Guide for using Modrinth OAuth to interact with the API on users' behalf. +--- + +Modrinth allows developers to create applications which, once authorized by a Modrinth user, let the developer interact with the API on their behalf. The flow used to get an API token is based on the OAuth 2 protocol. It is recommended that most people use an existing OAuth library to handle the authentication. If you want to implement it from scratch, you will need to look into [RFC 6749]. If the only user of the application is yourself, a personal access token (PAT) may be a better fit. + +If you're familiar with OAuth 2, these are the URLs you will need: + +| Name | URL | +|--------------------|--------------------------------------------------| +| Authorization page | `https://modrinth.com/auth/authorize` | +| Token exchange | `https://api.modrinth.com/_internal/oauth/token` | + +The flow will generally look like this: + +1. User is redirected to Modrinth to authorize your application +2. User is redirected back to your site after authorizing, with an authorization code +3. Your backend exchanges this code for an access token + +## Register your application + +To start off, you need to [register an application] in Modrinth's systems. The settings chosen here can always be changed later. You need to select what permissions you need, called scopes. For security reasons you will want to select only the scopes you need. See the [principle of least privilege]. + +In addition to name and scopes, you will also need to add one or more redirect URIs. These are the URIs that the user can be redirected to after they authorize your application. + +After you've registered your application, it is important that you take note of the client secret somewhere safe. If the client secret is to ever leak, it is important that you regenerate it to ensure the security of your authorized users. If your client secret or access tokens are found exposed in the wild, your application may be disabled without prior notice. + +## Getting authorization + +Once the user is ready to authorize your application, you need to construct a URL to redirect them to. The authorization URL for Modrinth is `https://api.modrinth.com/_internal/oauth/token`. Supply the following query parameters: + +| Query parameter | Description | +|-----------------|-------------------------------------------------------------------------------------------| +| `response_type` | In Modrinth this always needs to be `code`, since only code grants are supported | +| `client_id` | The application identifier found in the settings | +| `scope` | The permissions you need access to | +| `state` | A mechanism to prevent certain attacks. Explained further below. Recommended but optional | +| `redirect_uri` | The URI the user is redirect to after finishing authorization | + +You might have noticed the `state` parameter. [CSRF] (Cross-site request forgery), and [clickjacking] are security vulnerabilities that you're recommended to protect against. In OAuth2 this is usually done with the `state` parameter. When the user initiates a request to start authorization, you include a `state` which is unique to this request. This can, for example, be saved in localStorge or a cookie. When the redirect URI is called, you verify that the `state` parameter is the same. Using `state` is optional, but recommended. + +The scope identifiers are currently best found in the backend source code located at [`apps/labrinth/src/models/v3/pats.rs`]. The scope parameter is an array of scope identifiers, seperated by a plus sign (`+`). + +The redirect URI is the endpoint on your server that will receive the code which can eventually be used to act on the user's behalf. For security reasons the redirect URI used has to be allowlisted in your application settings. The redirect will contain the following query parameters: + +| Query parameter | Description | +|-----------------|----------------------------------------------------| +| `code` | The code that can be exchanged for an access token | +| `client_id` | Your client id | +| `redirect_uri` | The redirect URI which was used | +| `grant_type` | Always `authorization_code` in Modrinth | + +## Exchanging tokens + +If you've followed the previous section on getting authorization, you should now have an authorization code. Before you can access the API, you need to exchange this code for an access token. This is done by sending a POST request to the exchange token endpoint, `https://api.modrinth.com/_internal/oauth/token`. This request has to be of type urlencoded form. Make sure the `Content-Type` header is set to `application/x-www-form-urlencoded`. To authenticate this request you need to place your client secret in the `Authorization` header. + +In the body use these fields: + +| Field | Description | +|----------------|--------------------------------------------------------------| +| `code` | The authorization code | +| `client_id` | Your client id, the same as in the authorization request | +| `redirect_uri` | The redirect URI which was redirected to after authorization | +| `grant_type` | Always `authorization_code` in Modrinth | + +If the request succeeds, you should receive a JSON payload with these fields: + +| Field | Description | +|----------------|------------------------------------------------------| +| `access_token` | The access token you can use to access the API | +| `token_type` | Currently only `Bearer` | +| `expires_in` | The amount of seconds until the access token expires | + +To use this access token, you attach it to API requests in the `Authorization` header. To get basic information about the authorizer, you can use the [`/user` endpoint], which automatically gets the user from the header. + +If you have any questions, you're welcome to ask in #api-development in the [Discord guild], or create a ticket on the [support portal]. + +[RFC 6749]: https://datatracker.ietf.org/doc/html/rfc6749 + +[register an application]: https://modrinth.com/settings/applications + +[principle of least privilege]: https://en.wikipedia.org/wiki/Principle_of_least_privilege + +[`apps/labrinth/src/models/v3/pats.rs`]: https://github.com/modrinth/code/blob/main/apps/labrinth/src/models/v3/pats.rs + +[CSRF]: https://en.wikipedia.org/wiki/Cross-site_request_forgery + +[Clickjacking]: https://en.wikipedia.org/wiki/Clickjacking + +[`/user` endpoint]: https://docs.modrinth.com/api/operations/getuserfromauth/ + +[Discord guild]: https://discord.modrinth.com + +[support portal]: https://support.modrinth.com/en/ diff --git a/apps/frontend/src/components/ui/ModalCreation.vue b/apps/frontend/src/components/ui/ModalCreation.vue index 1de76a95e..bfc5b140f 100644 --- a/apps/frontend/src/components/ui/ModalCreation.vue +++ b/apps/frontend/src/components/ui/ModalCreation.vue @@ -183,7 +183,7 @@ async function createProject() { app.$notify({ group: "main", title: "An error occurred", - text: err.data.description, + text: err.data ? err.data.description : err, type: "error", }); } diff --git a/apps/frontend/src/components/ui/NotificationItem.vue b/apps/frontend/src/components/ui/NotificationItem.vue index 329b85fab..1dabdc7b6 100644 --- a/apps/frontend/src/components/ui/NotificationItem.vue +++ b/apps/frontend/src/components/ui/NotificationItem.vue @@ -430,7 +430,7 @@ async function performAction(notification, actionIndex) { app.$notify({ group: "main", title: "An error occurred", - text: err.data.description, + text: err.data ? err.data.description : err, type: "error", }); } diff --git a/apps/frontend/src/components/ui/OrganizationCreateModal.vue b/apps/frontend/src/components/ui/OrganizationCreateModal.vue index 958c3fcd3..c9e966636 100644 --- a/apps/frontend/src/components/ui/OrganizationCreateModal.vue +++ b/apps/frontend/src/components/ui/OrganizationCreateModal.vue @@ -106,7 +106,7 @@ async function createOrganization() { addNotification({ group: "main", title: "An error occurred", - text: err.data.description, + text: err.data ? err.data.description : err, type: "error", }); } diff --git a/apps/frontend/src/components/ui/ProjectMemberHeader.vue b/apps/frontend/src/components/ui/ProjectMemberHeader.vue index 13d63a60c..0680eece7 100644 --- a/apps/frontend/src/components/ui/ProjectMemberHeader.vue +++ b/apps/frontend/src/components/ui/ProjectMemberHeader.vue @@ -108,7 +108,6 @@ diff --git a/apps/frontend/src/components/ui/servers/BackupDeleteModal.vue b/apps/frontend/src/components/ui/servers/BackupDeleteModal.vue index 44d0ac11e..632919c61 100644 --- a/apps/frontend/src/components/ui/servers/BackupDeleteModal.vue +++ b/apps/frontend/src/components/ui/servers/BackupDeleteModal.vue @@ -1,86 +1,45 @@ diff --git a/apps/frontend/src/components/ui/servers/BackupItem.vue b/apps/frontend/src/components/ui/servers/BackupItem.vue new file mode 100644 index 000000000..3b2ee84be --- /dev/null +++ b/apps/frontend/src/components/ui/servers/BackupItem.vue @@ -0,0 +1,340 @@ + + diff --git a/apps/frontend/src/components/ui/servers/BackupRenameModal.vue b/apps/frontend/src/components/ui/servers/BackupRenameModal.vue index f1ab41e2f..221576248 100644 --- a/apps/frontend/src/components/ui/servers/BackupRenameModal.vue +++ b/apps/frontend/src/components/ui/servers/BackupRenameModal.vue @@ -1,24 +1,41 @@ diff --git a/apps/frontend/src/components/ui/servers/BackupRestoreModal.vue b/apps/frontend/src/components/ui/servers/BackupRestoreModal.vue index 9439ecb2e..18bcd72d0 100644 --- a/apps/frontend/src/components/ui/servers/BackupRestoreModal.vue +++ b/apps/frontend/src/components/ui/servers/BackupRestoreModal.vue @@ -1,82 +1,58 @@ diff --git a/apps/frontend/src/components/ui/servers/PanelServerActionButton.vue b/apps/frontend/src/components/ui/servers/PanelServerActionButton.vue index 073909fd3..78ce7a275 100644 --- a/apps/frontend/src/components/ui/servers/PanelServerActionButton.vue +++ b/apps/frontend/src/components/ui/servers/PanelServerActionButton.vue @@ -42,6 +42,9 @@ :column="true" class="mb-6 flex flex-col gap-2" /> +
+
{{ serverData }}
+
@@ -89,6 +92,10 @@ Details + @@ -108,6 +115,7 @@ import { ServerIcon, InfoIcon, MoreVerticalIcon, + ClipboardCopyIcon, } from "@modrinth/assets"; import { ButtonStyled, NewModal } from "@modrinth/ui"; import { useRouter } from "vue-router"; @@ -116,6 +124,8 @@ import { useStorage } from "@vueuse/core"; type ServerAction = "start" | "stop" | "restart" | "kill"; type ServerState = "stopped" | "starting" | "running" | "stopping" | "restarting"; +const flags = useFeatureFlags(); + interface PowerAction { action: ServerAction; nextState: ServerState; @@ -198,8 +208,19 @@ const menuOptions = computed(() => [ icon: InfoIcon, action: () => detailsModal.value?.show(), }, + { + id: "copy-id", + label: "Copy ID", + icon: ClipboardCopyIcon, + action: () => copyId(), + shown: flags.value.developerMode, + }, ]); +async function copyId() { + await navigator.clipboard.writeText(serverId as string); +} + function initiateAction(action: ServerAction) { if (!canTakeAction.value) return; diff --git a/apps/frontend/src/components/ui/servers/PlatformMrpackModal.vue b/apps/frontend/src/components/ui/servers/PlatformMrpackModal.vue index e81117e8b..5c4ebc3d9 100644 --- a/apps/frontend/src/components/ui/servers/PlatformMrpackModal.vue +++ b/apps/frontend/src/components/ui/servers/PlatformMrpackModal.vue @@ -67,37 +67,27 @@ Removes all data on your server, including your worlds, mods, and configuration files, then reinstalls it with the selected version. +
This does not affect your backups, which are stored off-site.
-
-
- - -
-
Creates a backup of your server before proceeding.
-
+
- @@ -124,12 +114,14 @@ + + + + diff --git a/apps/frontend/src/components/ui/servers/notice/AssignNoticeModal.vue b/apps/frontend/src/components/ui/servers/notice/AssignNoticeModal.vue new file mode 100644 index 000000000..b7446c36f --- /dev/null +++ b/apps/frontend/src/components/ui/servers/notice/AssignNoticeModal.vue @@ -0,0 +1,202 @@ + + diff --git a/apps/frontend/src/components/ui/servers/notice/NoticeDashboardItem.vue b/apps/frontend/src/components/ui/servers/notice/NoticeDashboardItem.vue new file mode 100644 index 000000000..bae501e07 --- /dev/null +++ b/apps/frontend/src/components/ui/servers/notice/NoticeDashboardItem.vue @@ -0,0 +1,119 @@ + + diff --git a/apps/frontend/src/composables/featureFlags.ts b/apps/frontend/src/composables/featureFlags.ts index 3a0920196..42eba15eb 100644 --- a/apps/frontend/src/composables/featureFlags.ts +++ b/apps/frontend/src/composables/featureFlags.ts @@ -30,6 +30,7 @@ export const DEFAULT_FEATURE_FLAGS = validateValues({ newProjectCards: false, projectBackground: false, searchBackground: false, + advancedDebugInfo: false, // advancedRendering: true, // externalLinksNewTab: true, // notUsingBlockers: false, diff --git a/apps/frontend/src/composables/pyroFetch.ts b/apps/frontend/src/composables/pyroFetch.ts index 0d0da31b9..1c2e45a98 100644 --- a/apps/frontend/src/composables/pyroFetch.ts +++ b/apps/frontend/src/composables/pyroFetch.ts @@ -10,6 +10,7 @@ interface PyroFetchOptions { token?: string; }; retry?: boolean; + bypassAuth?: boolean; } export class PyroFetchError extends Error { @@ -28,7 +29,7 @@ export async function usePyroFetch(path: string, options: PyroFetchOptions = const auth = await useAuth(); const authToken = auth.value?.token; - if (!authToken) { + if (!authToken && !options.bypassAuth) { throw new PyroFetchError("Cannot pyrofetch without auth", 10000); } @@ -52,9 +53,15 @@ export async function usePyroFetch(path: string, options: PyroFetchOptions = type HeadersRecord = Record; + const authHeader: HeadersRecord = options.bypassAuth + ? {} + : { + Authorization: `Bearer ${override?.token ?? authToken}`, + "Access-Control-Allow-Headers": "Authorization", + }; + const headers: HeadersRecord = { - Authorization: `Bearer ${override?.token ?? authToken}`, - "Access-Control-Allow-Headers": "Authorization", + ...authHeader, "User-Agent": "Pyro/1.0 (https://pyro.host)", Vary: "Accept, Origin", "Content-Type": contentType, diff --git a/apps/frontend/src/composables/pyroServers.ts b/apps/frontend/src/composables/pyroServers.ts index 206063a25..609c1390f 100644 --- a/apps/frontend/src/composables/pyroServers.ts +++ b/apps/frontend/src/composables/pyroServers.ts @@ -1,5 +1,7 @@ // usePyroServer is a composable that interfaces with the REDACTED API to get data and control the users server import { $fetch, FetchError } from "ofetch"; +import type { ServerNotice } from "@modrinth/utils"; +import type { WSBackupState, WSBackupTask } from "~/types/servers.ts"; interface PyroFetchOptions { method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"; @@ -192,7 +194,7 @@ async function PyroFetch( throw lastError || new Error("Maximum retry attempts reached"); } -const internalServerRefrence = ref(null); +const internalServerReference = ref(null); interface License { id: string; @@ -289,6 +291,11 @@ interface General { sftp_password: string; sftp_host: string; datacenter?: string; + notices?: ServerNotice[]; + node: { + token: string; + instance: string; + }; } interface Allocation { @@ -315,12 +322,20 @@ export interface Mod { installing: boolean; } -interface Backup { +export interface Backup { id: string; name: string; created_at: string; - ongoing: boolean; locked: boolean; + automated: boolean; + interrupted: boolean; + ongoing: boolean; + task: { + [K in WSBackupTask]?: { + progress: number; + state: WSBackupState; + }; + }; } interface AutoBackupSettings { @@ -368,7 +383,7 @@ const constructServerProperties = (properties: any): string => { const processImage = async (iconUrl: string | undefined) => { const sharedImage = useState( - `server-icon-${internalServerRefrence.value.serverId}`, + `server-icon-${internalServerReference.value.serverId}`, ); if (sharedImage.value) { @@ -376,7 +391,7 @@ const processImage = async (iconUrl: string | undefined) => { } try { - const auth = await PyroFetch(`servers/${internalServerRefrence.value.serverId}/fs`); + const auth = await PyroFetch(`servers/${internalServerReference.value.serverId}/fs`); try { const fileData = await PyroFetch(`/download?path=/server-icon-original.png`, { override: auth, @@ -463,13 +478,13 @@ const processImage = async (iconUrl: string | undefined) => { const sendPowerAction = async (action: string) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/power`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/power`, { method: "POST", body: { action }, }); await new Promise((resolve) => setTimeout(resolve, 1000)); - await internalServerRefrence.value.refresh(); + await internalServerReference.value.refresh(); } catch (error) { console.error("Error changing power state:", error); throw error; @@ -478,7 +493,7 @@ const sendPowerAction = async (action: string) => { const updateName = async (newName: string) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/name`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/name`, { method: "POST", body: { name: newName }, }); @@ -522,7 +537,7 @@ const reinstallFromMrpack = async (mrpack: File, hardReset: boolean = false) => const hardResetParam = hardReset ? "true" : "false"; try { const auth = await PyroFetch( - `servers/${internalServerRefrence.value.serverId}/reinstallFromMrpack`, + `servers/${internalServerReference.value.serverId}/reinstallFromMrpack`, ); const formData = new FormData(); @@ -551,7 +566,7 @@ const reinstallFromMrpack = async (mrpack: File, hardReset: boolean = false) => const suspendServer = async (status: boolean) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/suspend`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/suspend`, { method: "POST", body: { suspended: status }, }); @@ -563,7 +578,7 @@ const suspendServer = async (status: boolean) => { const fetchConfigFile = async (fileName: string) => { try { - return await PyroFetch(`servers/${internalServerRefrence.value.serverId}/config/${fileName}`); + return await PyroFetch(`servers/${internalServerReference.value.serverId}/config/${fileName}`); } catch (error) { console.error("Error fetching config file:", error); throw error; @@ -594,7 +609,7 @@ const setMotd = async (motd: string) => { const newProps = constructServerProperties(props); const octetStream = new Blob([newProps], { type: "application/octet-stream" }); const auth = await await PyroFetch( - `servers/${internalServerRefrence.value.serverId}/fs`, + `servers/${internalServerReference.value.serverId}/fs`, ); return await PyroFetch(`/update?path=/server.properties`, { @@ -613,7 +628,7 @@ const setMotd = async (motd: string) => { const installContent = async (contentType: ContentType, projectId: string, versionId: string) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/mods`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/mods`, { method: "POST", body: { rinth_ids: { project_id: projectId, version_id: versionId }, @@ -628,7 +643,7 @@ const installContent = async (contentType: ContentType, projectId: string, versi const removeContent = async (path: string) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/deleteMod`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/deleteMod`, { method: "POST", body: { path, @@ -642,7 +657,7 @@ const removeContent = async (path: string) => { const reinstallContent = async (replace: string, projectId: string, versionId: string) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/mods/update`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/mods/update`, { method: "POST", body: { replace, project_id: projectId, version_id: versionId }, }); @@ -657,13 +672,13 @@ const reinstallContent = async (replace: string, projectId: string, versionId: s const createBackup = async (backupName: string) => { try { const response = await PyroFetch<{ id: string }>( - `servers/${internalServerRefrence.value.serverId}/backups`, + `servers/${internalServerReference.value.serverId}/backups`, { method: "POST", body: { name: backupName }, }, ); - await internalServerRefrence.value.refresh(["backups"]); + await internalServerReference.value.refresh(["backups"]); return response.id; } catch (error) { console.error("Error creating backup:", error); @@ -673,11 +688,14 @@ const createBackup = async (backupName: string) => { const renameBackup = async (backupId: string, newName: string) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/backups/${backupId}/rename`, { - method: "POST", - body: { name: newName }, - }); - await internalServerRefrence.value.refresh(["backups"]); + await PyroFetch( + `servers/${internalServerReference.value.serverId}/backups/${backupId}/rename`, + { + method: "POST", + body: { name: newName }, + }, + ); + await internalServerReference.value.refresh(["backups"]); } catch (error) { console.error("Error renaming backup:", error); throw error; @@ -686,10 +704,10 @@ const renameBackup = async (backupId: string, newName: string) => { const deleteBackup = async (backupId: string) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/backups/${backupId}`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/backups/${backupId}`, { method: "DELETE", }); - await internalServerRefrence.value.refresh(["backups"]); + await internalServerReference.value.refresh(["backups"]); } catch (error) { console.error("Error deleting backup:", error); throw error; @@ -699,30 +717,35 @@ const deleteBackup = async (backupId: string) => { const restoreBackup = async (backupId: string) => { try { await PyroFetch( - `servers/${internalServerRefrence.value.serverId}/backups/${backupId}/restore`, + `servers/${internalServerReference.value.serverId}/backups/${backupId}/restore`, { method: "POST", }, ); - await internalServerRefrence.value.refresh(["backups"]); + await internalServerReference.value.refresh(["backups"]); } catch (error) { console.error("Error restoring backup:", error); throw error; } }; -const downloadBackup = async (backupId: string) => { +const prepareBackup = async (backupId: string) => { try { - return await PyroFetch(`servers/${internalServerRefrence.value.serverId}/backups/${backupId}`); + await PyroFetch( + `servers/${internalServerReference.value.serverId}/backups/${backupId}/prepare-download`, + { + method: "POST", + }, + ); } catch (error) { - console.error("Error downloading backup:", error); + console.error("Error preparing backup:", error); throw error; } }; const updateAutoBackup = async (autoBackup: "enable" | "disable", interval: number) => { try { - return await PyroFetch(`servers/${internalServerRefrence.value.serverId}/autobackup`, { + return await PyroFetch(`servers/${internalServerReference.value.serverId}/autobackup`, { method: "POST", body: { set: autoBackup, interval }, }); @@ -734,7 +757,7 @@ const updateAutoBackup = async (autoBackup: "enable" | "disable", interval: numb const getAutoBackup = async () => { try { - return await PyroFetch(`servers/${internalServerRefrence.value.serverId}/autobackup`); + return await PyroFetch(`servers/${internalServerReference.value.serverId}/autobackup`); } catch (error) { console.error("Error getting auto backup settings:", error); throw error; @@ -743,10 +766,10 @@ const getAutoBackup = async () => { const lockBackup = async (backupId: string) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/backups/${backupId}/lock`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/backups/${backupId}/lock`, { method: "POST", }); - await internalServerRefrence.value.refresh(["backups"]); + await internalServerReference.value.refresh(["backups"]); } catch (error) { console.error("Error locking backup:", error); throw error; @@ -755,22 +778,36 @@ const lockBackup = async (backupId: string) => { const unlockBackup = async (backupId: string) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/backups/${backupId}/unlock`, { - method: "POST", - }); - await internalServerRefrence.value.refresh(["backups"]); + await PyroFetch( + `servers/${internalServerReference.value.serverId}/backups/${backupId}/unlock`, + { + method: "POST", + }, + ); + await internalServerReference.value.refresh(["backups"]); } catch (error) { console.error("Error unlocking backup:", error); throw error; } }; +const retryBackup = async (backupId: string) => { + try { + await PyroFetch(`servers/${internalServerReference.value.serverId}/backups/${backupId}/retry`, { + method: "POST", + }); + } catch (error) { + console.error("Error retrying backup:", error); + throw error; + } +}; + // ------------------ NETWORK ------------------ // const reserveAllocation = async (name: string): Promise => { try { return await PyroFetch( - `servers/${internalServerRefrence.value.serverId}/allocations?name=${name}`, + `servers/${internalServerReference.value.serverId}/allocations?name=${name}`, { method: "POST", }, @@ -784,7 +821,7 @@ const reserveAllocation = async (name: string): Promise => { const updateAllocation = async (port: number, name: string) => { try { await PyroFetch( - `servers/${internalServerRefrence.value.serverId}/allocations/${port}?name=${name}`, + `servers/${internalServerReference.value.serverId}/allocations/${port}?name=${name}`, { method: "PUT", }, @@ -797,7 +834,7 @@ const updateAllocation = async (port: number, name: string) => { const deleteAllocation = async (port: number) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/allocations/${port}`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/allocations/${port}`, { method: "DELETE", }); } catch (error) { @@ -817,7 +854,7 @@ const checkSubdomainAvailability = async (subdomain: string): Promise<{ availabl const changeSubdomain = async (subdomain: string) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/subdomain`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/subdomain`, { method: "POST", body: { subdomain }, }); @@ -835,7 +872,7 @@ const updateStartupSettings = async ( jdkBuild: "corretto" | "temurin" | "graal", ) => { try { - await PyroFetch(`servers/${internalServerRefrence.value.serverId}/startup`, { + await PyroFetch(`servers/${internalServerReference.value.serverId}/startup`, { method: "POST", body: { invocation: invocation || null, @@ -856,7 +893,7 @@ const retryWithAuth = async (requestFn: () => Promise) => { return await requestFn(); } catch (error) { if (error instanceof PyroServersFetchError && error.statusCode === 401) { - await internalServerRefrence.value.refresh(["fs"]); + await internalServerReference.value.refresh(["fs"]); return await requestFn(); } @@ -868,7 +905,7 @@ const listDirContents = (path: string, page: number, pageSize: number) => { return retryWithAuth(async () => { const encodedPath = encodeURIComponent(path); return await PyroFetch(`/list?path=${encodedPath}&page=${page}&page_size=${pageSize}`, { - override: internalServerRefrence.value.fs.auth, + override: internalServerReference.value.fs.auth, retry: false, }); }); @@ -880,7 +917,7 @@ const createFileOrFolder = (path: string, type: "file" | "directory") => { return await PyroFetch(`/create?path=${encodedPath}&type=${type}`, { method: "POST", contentType: "application/octet-stream", - override: internalServerRefrence.value.fs.auth, + override: internalServerReference.value.fs.auth, }); }); }; @@ -923,9 +960,12 @@ const uploadFile = (path: string, file: File) => { xhr.open( "POST", - `https://${internalServerRefrence.value.fs.auth.url}/create?path=${encodedPath}&type=file`, + `https://${internalServerReference.value.fs.auth.url}/create?path=${encodedPath}&type=file`, + ); + xhr.setRequestHeader( + "Authorization", + `Bearer ${internalServerReference.value.fs.auth.token}`, ); - xhr.setRequestHeader("Authorization", `Bearer ${internalServerRefrence.value.fs.auth.token}`); xhr.setRequestHeader("Content-Type", "application/octet-stream"); xhr.send(file); @@ -955,7 +995,7 @@ const renameFileOrFolder = (path: string, name: string) => { return retryWithAuth(async () => { await PyroFetch(`/move`, { method: "POST", - override: internalServerRefrence.value.fs.auth, + override: internalServerReference.value.fs.auth, body: { source: path, destination: pathName, @@ -972,7 +1012,7 @@ const updateFile = (path: string, content: string) => { method: "PUT", contentType: "application/octet-stream", body: octetStream, - override: internalServerRefrence.value.fs.auth, + override: internalServerReference.value.fs.auth, }); }); }; @@ -1002,7 +1042,7 @@ const moveFileOrFolder = (path: string, newPath: string) => { return await PyroFetch(`/move`, { method: "POST", - override: internalServerRefrence.value.fs.auth, + override: internalServerReference.value.fs.auth, body: { source: path, destination: newPath, @@ -1016,7 +1056,7 @@ const deleteFileOrFolder = (path: string, recursive: boolean) => { return retryWithAuth(async () => { return await PyroFetch(`/delete?path=${encodedPath}&recursive=${recursive}`, { method: "DELETE", - override: internalServerRefrence.value.fs.auth, + override: internalServerReference.value.fs.auth, }); }); }; @@ -1025,7 +1065,7 @@ const downloadFile = (path: string, raw?: boolean) => { return retryWithAuth(async () => { const encodedPath = encodeURIComponent(path); const fileData = await PyroFetch(`/download?path=${encodedPath}`, { - override: internalServerRefrence.value.fs.auth, + override: internalServerReference.value.fs.auth, }); if (fileData instanceof Blob) { @@ -1137,11 +1177,12 @@ const modules: any = { rename: renameBackup, delete: deleteBackup, restore: restoreBackup, - download: downloadBackup, + prepare: prepareBackup, updateAutoBackup, getAutoBackup, lock: lockBackup, unlock: unlockBackup, + retry: retryBackup, }, network: { get: async (serverId: string) => { @@ -1382,6 +1423,12 @@ type BackupFunctions = { */ download: (backupId: string) => Promise; + /** + * Prepare a backup for the server. + * @param backupId - The ID of the backup. + */ + prepare: (backupId: string) => Promise; + /** * Updates the auto backup settings of the server. * @param autoBackup - Whether to enable auto backup. @@ -1405,6 +1452,12 @@ type BackupFunctions = { * @param backupId - The ID of the backup. */ unlock: (backupId: string) => Promise; + + /** + * Retries a failed backup for the server. + * @param backupId - The ID of the backup. + */ + retry: (backupId: string) => Promise; }; type NetworkFunctions = { @@ -1702,7 +1755,7 @@ export const usePyroServer = async (serverId: string, includedModules: avaliable server[module] = modules[module]; }); - internalServerRefrence.value = server; + internalServerReference.value = server; await server.refresh(initialModules); if (deferredModules.length > 0) { diff --git a/apps/frontend/src/layouts/default.vue b/apps/frontend/src/layouts/default.vue index 118074246..a387f4932 100644 --- a/apps/frontend/src/layouts/default.vue +++ b/apps/frontend/src/layouts/default.vue @@ -298,6 +298,12 @@ link: '/admin/user_email', shown: isAdmin(auth.user), }, + { + id: 'servers-notices', + color: 'primary', + link: '/admin/servers/notices', + shown: isAdmin(auth.user), + }, ]" >
+
+

Modrinth Maven

+
+ +
+
@@ -1136,7 +1142,7 @@ export default defineNuxtComponent({ this.$notify({ group: "main", title: "An error occurred", - text: err.data.description, + text: err.data ? err.data.description : err, type: "error", }); window.scrollTo({ top: 0, behavior: "smooth" }); @@ -1545,6 +1551,12 @@ export default defineNuxtComponent({ margin: 1rem 0 0.25rem 0; } + .maven-section { + display: flex; + align-items: center; + gap: 0.5rem; + } + .team-member { align-items: center; padding: 0.25rem 0.5rem; diff --git a/apps/frontend/src/pages/[type]/[id]/versions.vue b/apps/frontend/src/pages/[type]/[id]/versions.vue index 1c4596bbd..1e85211d5 100644 --- a/apps/frontend/src/pages/[type]/[id]/versions.vue +++ b/apps/frontend/src/pages/[type]/[id]/versions.vue @@ -106,6 +106,13 @@ }, shown: currentMember || flags.developerMode, }, + { + id: 'copy-maven', + action: () => { + copyToClipboard(`maven.modrinth:${project.slug}:${version.id}`); + }, + shown: flags.developerMode, + }, { divider: true, shown: currentMember }, { id: 'edit', @@ -160,6 +167,10 @@