From 62de07e4e634c926f9c53e0b8fe7cdd486e78b0c Mon Sep 17 00:00:00 2001 From: Josiah Glosson Date: Fri, 9 May 2025 07:27:55 -0500 Subject: [PATCH] Version updates (#3626) * Update some Labrinth dependencies * Update some Labrinth dependencies * Update some Labrinth dependencies * Update zip in Labrinth * Update itertools in Labrinth * Update validator in labrinth * Update thiserror in labrinth * Update rust_decimal, redis, and deadpool-redis in labrinth * Update totp-rs and spdx in labrinth * Update maxminddb and tar in labrinth * Update sentry and sentry-actix in labrinth * Update image in labrinth * Update lettre in labrinth * Update derive-new and rust_iso3166 in labrinth * Update async-stripe and json-patch in labrinth * Update clap and iana-time-zone in labrinth * Update labrinth to Rust 2024 * Cargo fmt * Just do a full cargo update * Update daedelus to Rust 2024 * Update daedelus_client to Rust 2024 * Set the formatting edition to 2024 * Fix formatting IntelliJ messed up my formatting --- Cargo.lock | 3213 +++++++---------- apps/app/Cargo.toml | 2 +- apps/daedalus_client/Cargo.toml | 21 +- apps/daedalus_client/src/error.rs | 4 +- apps/daedalus_client/src/fabric.rs | 13 +- apps/daedalus_client/src/forge.rs | 27 +- apps/daedalus_client/src/main.rs | 6 +- apps/daedalus_client/src/minecraft.rs | 8 +- apps/daedalus_client/src/util.rs | 8 +- apps/labrinth/Cargo.toml | 74 +- apps/labrinth/src/auth/checks.rs | 4 +- apps/labrinth/src/auth/email/mod.rs | 2 +- apps/labrinth/src/auth/mod.rs | 2 +- apps/labrinth/src/auth/oauth/errors.rs | 14 +- apps/labrinth/src/auth/oauth/mod.rs | 9 +- apps/labrinth/src/auth/validate.rs | 2 +- apps/labrinth/src/clickhouse/mod.rs | 8 +- .../src/database/models/categories.rs | 2 +- .../labrinth/src/database/models/flow_item.rs | 6 +- .../database/models/legacy_loader_fields.rs | 2 +- .../src/database/models/loader_fields.rs | 6 +- .../src/database/models/organization_item.rs | 2 +- .../src/database/models/product_item.rs | 2 +- .../src/database/models/project_item.rs | 2 +- .../labrinth/src/database/models/team_item.rs | 2 +- .../src/database/models/version_item.rs | 2 +- apps/labrinth/src/database/redis.rs | 2 +- .../src/file_hosting/backblaze/upload.rs | 4 +- apps/labrinth/src/file_hosting/mock.rs | 3 +- apps/labrinth/src/file_hosting/s3_host.rs | 5 +- apps/labrinth/src/lib.rs | 13 +- apps/labrinth/src/main.rs | 6 +- apps/labrinth/src/models/v2/projects.rs | 2 +- apps/labrinth/src/models/v3/ids.rs | 2 +- apps/labrinth/src/models/v3/notifications.rs | 22 +- apps/labrinth/src/models/v3/pack.rs | 2 +- apps/labrinth/src/queue/maxmind.rs | 14 +- apps/labrinth/src/queue/moderation.rs | 4 +- apps/labrinth/src/queue/payouts.rs | 2 +- apps/labrinth/src/routes/analytics.rs | 2 +- apps/labrinth/src/routes/debug/mod.rs | 2 +- apps/labrinth/src/routes/index.rs | 2 +- apps/labrinth/src/routes/internal/admin.rs | 7 +- apps/labrinth/src/routes/internal/billing.rs | 17 +- apps/labrinth/src/routes/internal/flows.rs | 79 +- apps/labrinth/src/routes/internal/gdpr.rs | 2 +- apps/labrinth/src/routes/internal/mod.rs | 2 +- .../src/routes/internal/moderation.rs | 2 +- apps/labrinth/src/routes/internal/pats.rs | 6 +- apps/labrinth/src/routes/internal/session.rs | 8 +- apps/labrinth/src/routes/internal/statuses.rs | 8 +- apps/labrinth/src/routes/maven.rs | 2 +- apps/labrinth/src/routes/mod.rs | 10 +- apps/labrinth/src/routes/updates.rs | 2 +- apps/labrinth/src/routes/v2/moderation.rs | 2 +- apps/labrinth/src/routes/v2/notifications.rs | 4 +- .../src/routes/v2/project_creation.rs | 12 +- apps/labrinth/src/routes/v2/projects.rs | 16 +- apps/labrinth/src/routes/v2/reports.rs | 4 +- apps/labrinth/src/routes/v2/statistics.rs | 5 +- apps/labrinth/src/routes/v2/tags.rs | 2 +- apps/labrinth/src/routes/v2/teams.rs | 4 +- apps/labrinth/src/routes/v2/threads.rs | 4 +- apps/labrinth/src/routes/v2/users.rs | 8 +- .../src/routes/v2/version_creation.rs | 4 +- apps/labrinth/src/routes/v2/version_file.rs | 2 +- apps/labrinth/src/routes/v2/versions.rs | 4 +- apps/labrinth/src/routes/v2_reroute.rs | 14 +- apps/labrinth/src/routes/v3/analytics_get.rs | 4 +- apps/labrinth/src/routes/v3/collections.rs | 21 +- apps/labrinth/src/routes/v3/friends.rs | 4 +- apps/labrinth/src/routes/v3/images.rs | 2 +- apps/labrinth/src/routes/v3/mod.rs | 2 +- apps/labrinth/src/routes/v3/notifications.rs | 4 +- apps/labrinth/src/routes/v3/oauth_clients.rs | 9 +- apps/labrinth/src/routes/v3/organizations.rs | 8 +- apps/labrinth/src/routes/v3/payouts.rs | 12 +- .../src/routes/v3/project_creation.rs | 19 +- apps/labrinth/src/routes/v3/projects.rs | 8 +- apps/labrinth/src/routes/v3/reports.rs | 4 +- apps/labrinth/src/routes/v3/statistics.rs | 2 +- apps/labrinth/src/routes/v3/tags.rs | 4 +- apps/labrinth/src/routes/v3/teams.rs | 6 +- apps/labrinth/src/routes/v3/threads.rs | 2 +- apps/labrinth/src/routes/v3/users.rs | 6 +- .../src/routes/v3/version_creation.rs | 19 +- apps/labrinth/src/routes/v3/version_file.rs | 2 +- apps/labrinth/src/routes/v3/versions.rs | 10 +- apps/labrinth/src/search/mod.rs | 10 +- apps/labrinth/src/util/img.rs | 9 +- apps/labrinth/src/util/ratelimit.rs | 3 +- apps/labrinth/src/util/routes.rs | 2 +- apps/labrinth/src/util/validate.rs | 2 +- apps/labrinth/src/validate/fabric.rs | 2 +- apps/labrinth/src/validate/forge.rs | 2 +- apps/labrinth/src/validate/liteloader.rs | 2 +- apps/labrinth/src/validate/mod.rs | 2 +- apps/labrinth/src/validate/modpack.rs | 2 +- apps/labrinth/src/validate/neoforge.rs | 2 +- apps/labrinth/src/validate/quilt.rs | 2 +- apps/labrinth/src/validate/rift.rs | 2 +- apps/labrinth/tests/analytics.rs | 6 +- .../tests/common/api_common/generic.rs | 2 +- apps/labrinth/tests/common/api_common/mod.rs | 6 +- apps/labrinth/tests/common/api_v2/mod.rs | 2 +- apps/labrinth/tests/common/api_v2/project.rs | 4 +- apps/labrinth/tests/common/api_v2/tags.rs | 2 +- apps/labrinth/tests/common/api_v2/team.rs | 2 +- apps/labrinth/tests/common/api_v2/version.rs | 4 +- .../tests/common/api_v3/collections.rs | 2 +- apps/labrinth/tests/common/api_v3/mod.rs | 2 +- apps/labrinth/tests/common/api_v3/oauth.rs | 2 +- .../tests/common/api_v3/organization.rs | 2 +- apps/labrinth/tests/common/api_v3/project.rs | 4 +- apps/labrinth/tests/common/api_v3/tags.rs | 2 +- apps/labrinth/tests/common/api_v3/team.rs | 2 +- apps/labrinth/tests/common/api_v3/version.rs | 4 +- apps/labrinth/tests/common/database.rs | 6 +- apps/labrinth/tests/common/dummy_data.rs | 10 +- apps/labrinth/tests/common/environment.rs | 20 +- apps/labrinth/tests/common/mod.rs | 2 +- apps/labrinth/tests/common/permissions.rs | 2 +- apps/labrinth/tests/common/search.rs | 2 +- apps/labrinth/tests/error.rs | 2 +- apps/labrinth/tests/games.rs | 2 +- apps/labrinth/tests/loader_fields.rs | 26 +- apps/labrinth/tests/oauth.rs | 6 +- apps/labrinth/tests/oauth_clients.rs | 2 +- apps/labrinth/tests/organizations.rs | 32 +- apps/labrinth/tests/project.rs | 34 +- apps/labrinth/tests/scopes.rs | 30 +- apps/labrinth/tests/search.rs | 2 +- apps/labrinth/tests/tags.rs | 2 +- apps/labrinth/tests/teams.rs | 2 +- apps/labrinth/tests/user.rs | 16 +- apps/labrinth/tests/v2/error.rs | 2 +- apps/labrinth/tests/v2/notifications.rs | 2 +- apps/labrinth/tests/v2/project.rs | 17 +- apps/labrinth/tests/v2/scopes.rs | 4 +- apps/labrinth/tests/v2/search.rs | 4 +- apps/labrinth/tests/v2/tags.rs | 2 +- apps/labrinth/tests/v2/teams.rs | 2 +- apps/labrinth/tests/v2/version.rs | 10 +- packages/app-lib/Cargo.toml | 8 +- packages/daedalus/Cargo.toml | 4 +- rustfmt.toml | 2 +- 146 files changed, 1942 insertions(+), 2311 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4d8b3c8f0..dd8d81d50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,13 +21,13 @@ dependencies = [ [[package]] name = "actix-cors" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e772b3bcafe335042b5db010ab7c09013dad6eac4915c91d8d50902769f331" +checksum = "daa239b93927be1ff123eebada5a3ff23e89f0124ccb8609234e5103d5a5ae6d" dependencies = [ "actix-utils", "actix-web", - "derive_more", + "derive_more 2.0.1", "futures-util", "log", "once_cell", @@ -46,7 +46,7 @@ dependencies = [ "actix-web", "bitflags 2.9.0", "bytes", - "derive_more", + "derive_more 0.99.20", "futures-core", "http-range", "log", @@ -59,41 +59,41 @@ dependencies = [ [[package]] name = "actix-http" -version = "3.9.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d48f96fc3003717aeb9856ca3d02a8c7de502667ad76eeacd830b48d2e91fac4" +checksum = "0fa882656b67966045e4152c634051e70346939fced7117d5f0b52146a7c74c9" dependencies = [ "actix-codec", "actix-rt", "actix-service", "actix-utils", - "ahash 0.8.11", "base64 0.22.1", "bitflags 2.9.0", - "brotli 6.0.0", + "brotli", "bytes", "bytestring", - "derive_more", + "derive_more 2.0.1", "encoding_rs", "flate2", + "foldhash", "futures-core", "h2 0.3.26", "http 0.2.12", "httparse", "httpdate", - "itoa 1.0.11", + "itoa 1.0.15", "language-tags", "local-channel", "mime", "percent-encoding", "pin-project-lite", - "rand 0.8.5", - "sha1 0.10.6", + "rand 0.9.1", + "sha1", "smallvec", "tokio", "tokio-util", "tracing", - "zstd 0.13.2", + "zstd", ] [[package]] @@ -103,20 +103,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] name = "actix-multipart" -version = "0.6.2" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d974dd6c4f78d102d057c672dcf6faa618fafa9df91d44f9c466688fc1275a3a" +checksum = "d5118a26dee7e34e894f7e85aa0ee5080ae4c18bf03c0e30d49a80e418f00a53" dependencies = [ "actix-multipart-derive", "actix-utils", "actix-web", - "bytes", - "derive_more", + "derive_more 0.99.20", "futures-core", "futures-util", "httparse", @@ -134,15 +133,15 @@ dependencies = [ [[package]] name = "actix-multipart-derive" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a0a77f836d869f700e5b47ac7c3c8b9c8bc82e4aec861954c6198abee3ebd4d" +checksum = "e11eb847f49a700678ea2fa73daeb3208061afa2b9d1a8527c03390f4c4a1c6b" dependencies = [ - "darling 0.20.10", + "darling", "parse-size", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -173,9 +172,9 @@ dependencies = [ [[package]] name = "actix-server" -version = "2.5.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca2549781d8dd6d75c40cf6b6051260a2cc2f3c62343d761a969a0640646894" +checksum = "6398974fd4284f4768af07965701efbbb5fdc0616bff20cade1bb14b77675e24" dependencies = [ "actix-rt", "actix-service", @@ -190,12 +189,11 @@ dependencies = [ [[package]] name = "actix-service" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a" +checksum = "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f" dependencies = [ "futures-core", - "paste", "pin-project-lite", ] @@ -211,9 +209,9 @@ dependencies = [ [[package]] name = "actix-web" -version = "4.9.0" +version = "4.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9180d76e5cc7ccbc4d60a506f2c727730b154010262df5b910eb17dbe4b8cb38" +checksum = "f2e3b15b3dc6c6ed996e4032389e9849d4ab002b1e92fbfe85b5f307d1479b4d" dependencies = [ "actix-codec", "actix-http", @@ -224,17 +222,17 @@ dependencies = [ "actix-service", "actix-utils", "actix-web-codegen", - "ahash 0.8.11", "bytes", "bytestring", "cfg-if", "cookie 0.16.2", - "derive_more", + "derive_more 2.0.1", "encoding_rs", + "foldhash", "futures-core", "futures-util", "impl-more", - "itoa 1.0.11", + "itoa 1.0.15", "language-tags", "log", "mime", @@ -248,6 +246,7 @@ dependencies = [ "smallvec", "socket2", "time", + "tracing", "url", ] @@ -260,7 +259,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -294,19 +293,13 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.0" @@ -330,7 +323,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "once_cell", "version_check", ] @@ -342,10 +335,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.2.15", + "getrandom 0.2.16", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -357,6 +350,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "aligned-vec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -374,9 +373,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android-tzdata" @@ -434,19 +433,20 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.6" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", + "once_cell", "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arbitrary" @@ -463,6 +463,17 @@ version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" +[[package]] +name = "arg_enum_proc_macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "argon2" version = "0.5.3" @@ -472,7 +483,7 @@ dependencies = [ "base64ct", "blake2", "cpufeatures", - "password-hash 0.5.0", + "password-hash", ] [[package]] @@ -505,32 +516,29 @@ checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" [[package]] name = "ashpd" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c39d707614dbcc6bed00015539f488d8e3fe3e66ed60961efc0c90f4b380b3" +checksum = "6cbdf310d77fd3aaee6ea2093db7011dc2d35d2eb3481e5607f1f8d942ed99df" dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.8.5", + "rand 0.9.1", "raw-window-handle", "serde", "serde_repr", "tokio", "url", - "wayland-backend", - "wayland-client", - "wayland-protocols", "zbus", ] [[package]] name = "async-broadcast" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -561,12 +569,12 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.12" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" +checksum = "06575e6a9673580f52661c92107baabffbf41e2141373441cbcdc47cb733003c" dependencies = [ - "brotli 6.0.0", - "bzip2 0.4.4", + "brotli", + "bzip2", "deflate64", "flate2", "futures-core", @@ -575,20 +583,21 @@ dependencies = [ "pin-project-lite", "tokio", "xz2", - "zstd 0.13.2", - "zstd-safe 7.2.1", + "zstd", + "zstd-safe", ] [[package]] name = "async-executor" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.1.1", - "futures-lite 2.3.0", + "fastrand 2.3.0", + "futures-lite 2.6.0", + "pin-project-lite", "slab", ] @@ -600,23 +609,23 @@ checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ "async-lock", "blocking", - "futures-lite 2.3.0", + "futures-lite 2.6.0", ] [[package]] name = "async-io" -version = "2.3.4" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ "async-lock", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.6.0", "parking", "polling", - "rustix 0.38.37", + "rustix 0.38.44", "slab", "tracing", "windows-sys 0.59.0", @@ -628,7 +637,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "event-listener-strategy", "pin-project-lite", ] @@ -646,9 +655,9 @@ dependencies = [ "async-task", "blocking", "cfg-if", - "event-listener 5.3.1", - "futures-lite 2.3.0", - "rustix 0.38.37", + "event-listener 5.4.0", + "futures-lite 2.6.0", + "rustix 0.38.44", "tracing", ] @@ -660,7 +669,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -675,7 +684,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.37", + "rustix 0.38.44", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -700,27 +709,27 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] name = "async-stripe" -version = "0.39.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58d670cf4d47a1b8ffef54286a5625382e360a34ee76902fd93ad8c7032a0c30" +checksum = "cecbddf002ad7a13d2041eadf1b234cb3f57653ffdd901a01bc3f1c65aa77440" dependencies = [ "chrono", "futures-util", "hex", - "hmac 0.12.1", + "hmac", "http-types", - "hyper 0.14.31", + "hyper 0.14.32", "hyper-rustls 0.24.2", "serde", "serde_json", "serde_path_to_error", "serde_qs 0.10.1", - "sha2 0.10.9", + "sha2", "smart-default", "smol_str", "thiserror 1.0.69", @@ -736,13 +745,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -760,9 +769,9 @@ dependencies = [ "pin-project-lite", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.2", "tungstenite", - "webpki-roots 0.26.6", + "webpki-roots 0.26.11", ] [[package]] @@ -772,7 +781,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37672978ae0febce7516ae0a85b53e6185159a9a28787391eb63fc44ec36037d" dependencies = [ "async-fs", - "futures-lite 2.3.0", + "futures-lite 2.6.0", "thiserror 2.0.12", ] @@ -785,7 +794,7 @@ dependencies = [ "async-compression", "chrono", "crc32fast", - "futures-lite 2.3.0", + "futures-lite 2.6.0", "pin-project", "thiserror 1.0.69", "tokio", @@ -794,9 +803,9 @@ dependencies = [ [[package]] name = "atk" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" dependencies = [ "atk-sys", "glib", @@ -805,9 +814,9 @@ dependencies = [ [[package]] name = "atk-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" dependencies = [ "glib-sys", "gobject-sys", @@ -832,19 +841,17 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "attohttpc" -version = "0.22.0" +version = "0.28.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcf00bc6d5abb29b5f97e3c61a90b6d3caa12f3faf897d4a3e3607c050a35a7" +checksum = "07a9b245ba0739fc90935094c29adbaee3f977218b5fb95e822e261cda7f56a3" dependencies = [ - "http 0.2.12", + "http 1.3.1", "log", - "native-tls", - "rustls 0.20.9", + "rustls 0.23.27", "serde", "serde_json", "url", - "webpki", - "webpki-roots 0.22.6", + "webpki-roots 0.26.11", ] [[package]] @@ -854,16 +861,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] -name = "aws-creds" -version = "0.34.1" +name = "av1-grain" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3776743bb68d4ad02ba30ba8f64373f1be4e082fe47651767171ce75bb2f6cf5" +checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" +dependencies = [ + "anyhow", + "arrayvec", + "log", + "nom 7.1.3", + "num-rational", + "v_frame", +] + +[[package]] +name = "avif-serialize" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98922d6a4cfbcb08820c69d8eeccc05bb1f29bfa06b4f5b1dbfe9a868bd7608e" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "aws-creds" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f84143206b9c72b3c5cb65415de60c7539c79cd1559290fddec657939131be0" dependencies = [ "attohttpc", - "dirs 4.0.0", + "home", "log", - "quick-xml 0.26.0", - "rust-ini 0.18.0", + "quick-xml 0.32.0", + "rust-ini", "serde", "thiserror 1.0.69", "time", @@ -889,10 +919,10 @@ dependencies = [ "axum-core", "bytes", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "itoa 1.0.11", + "itoa 1.0.15", "matchit", "memchr", "mime", @@ -900,7 +930,7 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper 1.0.1", + "sync_wrapper", "tower 0.5.2", "tower-layer", "tower-service", @@ -915,27 +945,27 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper", "tower-layer", "tower-service", ] [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", "cfg-if", "libc", - "miniz_oxide 0.8.8", + "miniz_oxide", "object", "rustc-demangle", "windows-targets 0.52.6", @@ -949,9 +979,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" @@ -973,18 +1003,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" [[package]] name = "bit-set" @@ -1022,6 +1043,12 @@ dependencies = [ "serde", ] +[[package]] +name = "bitstream-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" + [[package]] name = "bitvec" version = "1.0.1" @@ -1040,16 +1067,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", + "digest", ] [[package]] @@ -1061,25 +1079,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7" -dependencies = [ - "objc-sys", -] - -[[package]] -name = "block2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e58aa60e59d8dbfcc36138f5f18be5f24394d33b38b24f7fd0b1caa33095f22f" -dependencies = [ - "block-sys", - "objc2 0.5.2", -] - [[package]] name = "block2" version = "0.5.1" @@ -1107,15 +1106,15 @@ dependencies = [ "async-channel 2.3.1", "async-task", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.6.0", "piper", ] [[package]] name = "borsh" -version = "1.5.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1123,27 +1122,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ "once_cell", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.90", - "syn_derive", -] - -[[package]] -name = "brotli" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", + "syn 2.0.101", ] [[package]] @@ -1159,9 +1146,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.1" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +checksum = "a334ef7c9e23abf0ce748e8cd309037da93e606ad52eb372e4ce327a0dcfbdfd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1169,15 +1156,21 @@ dependencies = [ [[package]] name = "bstr" -version = "1.10.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "serde", ] +[[package]] +name = "built" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ed6191a7e78c36abdb16ab65341eefd73d64d303fffccdbb00d51e4205967b" + [[package]] name = "bumpalo" version = "3.17.0" @@ -1208,9 +1201,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.18.0" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" +checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" [[package]] name = "byteorder" @@ -1235,23 +1228,13 @@ dependencies = [ [[package]] name = "bytestring" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72" +checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f" dependencies = [ "bytes", ] -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - [[package]] name = "bzip2" version = "0.5.2" @@ -1307,9 +1290,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -1340,9 +1323,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.22" +version = "1.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9540e661f81799159abee814118cc139a2004b3a3aa3ea37724a1b66530b90e0" +checksum = "8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0" dependencies = [ "jobserver", "libc", @@ -1433,10 +1416,16 @@ dependencies = [ ] [[package]] -name = "clap" -version = "4.5.31" +name = "cityhash-rs" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" +checksum = "93a719913643003b84bd13022b4b7e703c09342cd03b679c4641c7d2e50dc34d" + +[[package]] +name = "clap" +version = "4.5.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" dependencies = [ "clap_builder", "clap_derive", @@ -1444,26 +1433,26 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.31" +version = "4.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" +checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.1", + "strsim", ] [[package]] name = "clap_derive" -version = "4.5.28" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -1474,18 +1463,21 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "clickhouse" -version = "0.11.6" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0875e527e299fc5f4faba42870bf199a39ab0bb2dbba1b8aef0a2151451130f" +checksum = "d9894248c4c5a4402f76a56c273836a0c32547ec8a68166aedee7e01b7b8d102" dependencies = [ "bstr", "bytes", + "cityhash-rs", "clickhouse-derive", - "clickhouse-rs-cityhash-sys", "futures", - "hyper 0.14.31", - "hyper-tls 0.5.0", - "lz4", + "futures-channel", + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "lz4_flex", + "replace_with", "sealed", "serde", "static_assertions", @@ -1498,23 +1490,14 @@ dependencies = [ [[package]] name = "clickhouse-derive" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18af5425854858c507eec70f7deb4d5d8cec4216fcb086283a78872387281ea5" +checksum = "d70f3e2893f7d3e017eeacdc9a708fbc29a10488e3ebca21f9df6a5d2b616dbb" dependencies = [ "proc-macro2", "quote", - "serde_derive_internals 0.26.0", - "syn 1.0.109", -] - -[[package]] -name = "clickhouse-rs-cityhash-sys" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4baf9d4700a28d6cb600e17ed6ae2b43298a5245f1f76b4eab63027ebfd592b9" -dependencies = [ - "cc", + "serde_derive_internals", + "syn 2.0.101", ] [[package]] @@ -1563,15 +1546,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.8" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ - "encode_unicode 0.3.6", - "lazy_static", + "encode_unicode", "libc", - "unicode-width 0.1.14", - "windows-sys 0.52.0", + "once_cell", + "unicode-width 0.2.0", + "windows-sys 0.59.0", ] [[package]] @@ -1634,23 +1617,11 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "once_cell", "tiny-keccak", ] -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "constant_time_eq" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" - [[package]] name = "constant_time_eq" version = "0.3.1" @@ -1745,18 +1716,18 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] [[package]] name = "crc" -version = "3.2.1" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" dependencies = [ "crc-catalog", ] @@ -1784,18 +1755,18 @@ checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -1812,9 +1783,9 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ "crossbeam-utils", ] @@ -1827,9 +1798,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-bigint" @@ -1853,16 +1824,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" -dependencies = [ - "generic-array", - "subtle", -] - [[package]] name = "cssparser" version = "0.27.2" @@ -1887,38 +1848,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] name = "csv" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" dependencies = [ "csv-core", - "itoa 1.0.11", + "itoa 1.0.15", "ryu", "serde", ] [[package]] name = "csv-core" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" dependencies = [ "memchr", ] [[package]] name = "ctor" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" +checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -1928,7 +1889,7 @@ dependencies = [ "chrono", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] @@ -1939,19 +1900,19 @@ dependencies = [ "bytes", "chrono", "daedalus", - "dashmap 5.5.3", + "dashmap", "dotenvy", "futures", - "indexmap 2.5.0", - "itertools 0.13.0", + "indexmap 2.9.0", + "itertools 0.14.0", "lazy_static", - "reqwest 0.12.15", + "reqwest", "rust-s3", "serde", "serde-xml-rs", "serde_json", "sha1_smol", - "thiserror 1.0.69", + "thiserror 2.0.12", "tokio", "tracing", "tracing-error", @@ -1960,85 +1921,37 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.4" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "darling_core 0.14.4", - "darling_macro 0.14.4", -] - -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core 0.20.10", - "darling_macro 0.20.10", + "darling_core", + "darling_macro", ] [[package]] name = "darling_core" -version = "0.14.4" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", - "syn 1.0.109", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.11.1", - "syn 2.0.90", + "strsim", + "syn 2.0.101", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core 0.14.4", + "darling_core", "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core 0.20.10", - "quote", - "syn 2.0.90", -] - -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", + "syn 2.0.101", ] [[package]] @@ -2058,9 +1971,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "dbus" @@ -2075,9 +1988,9 @@ dependencies = [ [[package]] name = "deadpool" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6541a3916932fe57768d4be0b1ffb5ec7cbf74ca8c903fdfd5c0fe8aa958f0ed" +checksum = "5ed5957ff93768adf7a65ab167a17835c3d2c3c50d084fe305174c112f468e2f" dependencies = [ "deadpool-runtime", "num_cpus", @@ -2086,9 +1999,9 @@ dependencies = [ [[package]] name = "deadpool-redis" -version = "0.18.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfae6799b68a735270e4344ee3e834365f707c72da09c9a8bb89b45cc3351395" +checksum = "c136f185b3ca9d1f4e4e19c11570e1002f4bfdd592d589053e225716d613851f" dependencies = [ "deadpool", "redis", @@ -2121,9 +2034,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", @@ -2142,13 +2055,13 @@ dependencies = [ [[package]] name = "derive-new" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" +checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -2159,60 +2072,72 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] name = "derive_builder" -version = "0.12.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" dependencies = [ "derive_builder_macro", ] [[package]] name = "derive_builder_core" -version = "0.12.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" dependencies = [ - "darling 0.14.4", + "darling", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] name = "derive_builder_macro" -version = "0.12.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] name = "derive_more" -version = "0.99.18" +version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", "rustc_version", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] -name = "digest" -version = "0.9.0" +name = "derive_more" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" dependencies = [ - "generic-array", + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", + "unicode-xid", ] [[package]] @@ -2221,28 +2146,19 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "const-oid", "crypto-common", "subtle", ] -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - [[package]] name = "dirs" version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" dependencies = [ - "dirs-sys 0.5.0", + "dirs-sys", ] [[package]] @@ -2255,17 +2171,6 @@ dependencies = [ "dirs-sys-next", ] -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users 0.4.6", - "winapi", -] - [[package]] name = "dirs-sys" version = "0.5.0" @@ -2308,6 +2213,18 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +[[package]] +name = "dispatch2" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0d569e003ff27784e0e14e4a594048698e0c0f0b66cabcb51511be55a7caa0" +dependencies = [ + "bitflags 2.9.0", + "block2 0.6.1", + "libc", + "objc2 0.6.1", +] + [[package]] name = "dispatch2" version = "0.3.0" @@ -2328,16 +2245,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", -] - -[[package]] -name = "dlib" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" -dependencies = [ - "libloading", + "syn 2.0.101", ] [[package]] @@ -2360,15 +2268,9 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] -[[package]] -name = "dlv-list" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" - [[package]] name = "dlv-list" version = "0.5.2" @@ -2390,26 +2292,20 @@ version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - [[package]] name = "dpi" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" dependencies = [ "serde", ] [[package]] name = "dtoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" [[package]] name = "dtoa-short" @@ -2428,9 +2324,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" [[package]] name = "ecdsa" @@ -2439,7 +2335,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ "der", - "digest 0.10.7", + "digest", "elliptic-curve", "rfc6979", "signature", @@ -2463,7 +2359,7 @@ checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ "base16ct", "crypto-bigint", - "digest 0.10.7", + "digest", "ff", "generic-array", "group", @@ -2477,9 +2373,9 @@ dependencies = [ [[package]] name = "email-encoding" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60d1d33cdaede7e24091f039632eb5d3c7469fe5b066a985281a34fc70fa317f" +checksum = "9298e6504d9b9e780ed3f7dfd43a61be8cd0e09eb07f7706a945b0072b6670b6" dependencies = [ "base64 0.22.1", "memchr", @@ -2511,12 +2407,6 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - [[package]] name = "encode_unicode" version = "1.0.0" @@ -2525,9 +2415,9 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -2547,14 +2437,14 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] name = "enumflags2" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ "enumflags2_derive", "serde", @@ -2562,20 +2452,20 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] name = "enumset" -version = "1.1.5" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a4b049558765cef5f0c1a273c3fc57084d768b44d2f98127aef4cceb17293" +checksum = "11a6b7c3d347de0a9f7bfd2f853be43fe32fa6fac30c70f6d6d67a1e936b87ee" dependencies = [ "enumset_derive", "serde", @@ -2583,14 +2473,14 @@ dependencies = [ [[package]] name = "enumset_derive" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242" +checksum = "6da3ea9e1d1a3b1593e15781f930120e72aa7501610b2f82e5b6739c72e8eac5" dependencies = [ - "darling 0.20.10", + "darling", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -2610,9 +2500,9 @@ checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" [[package]] name = "env_logger" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" dependencies = [ "env_filter", "log", @@ -2620,15 +2510,15 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" +checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" dependencies = [ "serde", "typeid", @@ -2663,9 +2553,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "5.3.1" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", @@ -2674,25 +2564,24 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "pin-project-lite", ] [[package]] name = "exr" -version = "1.72.0" +version = "1.73.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" +checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" dependencies = [ "bit_field", - "flume", - "half 2.4.1", + "half 2.6.0", "lebe", - "miniz_oxide 0.7.4", + "miniz_oxide", "rayon-core", "smallvec", "zune-inflate", @@ -2700,12 +2589,13 @@ dependencies = [ [[package]] name = "fancy-regex" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" +checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" dependencies = [ "bit-set", - "regex", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -2719,24 +2609,24 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fdeflate" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" dependencies = [ "simd-adler32", ] [[package]] name = "ff" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "rand_core 0.6.4", "subtle", @@ -2783,18 +2673,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" dependencies = [ "crc32fast", - "miniz_oxide 0.8.8", + "miniz_oxide", ] [[package]] name = "flume" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" dependencies = [ "futures-core", "futures-sink", - "spin 0.9.8", + "spin", ] [[package]] @@ -2836,7 +2726,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -2862,9 +2752,9 @@ dependencies = [ [[package]] name = "formatx" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa6f3b9014e23925937fbf4d05f27a6f4efe42545f98690b94f193bdb3f1959e" +checksum = "d8866fac38f53fc87fa3ae1b09ddd723e0482f8fa74323518b4c59df2c55a00a" [[package]] name = "fs4" @@ -2872,7 +2762,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4" dependencies = [ - "rustix 1.0.5", + "rustix 1.0.7", "tokio", "windows-sys 0.59.0", ] @@ -2978,11 +2868,11 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.3.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ - "fastrand 2.1.1", + "fastrand 2.3.0", "futures-core", "futures-io", "parking", @@ -2997,7 +2887,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -3041,9 +2931,9 @@ dependencies = [ [[package]] name = "gdk" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" dependencies = [ "cairo-rs", "gdk-pixbuf", @@ -3082,9 +2972,9 @@ dependencies = [ [[package]] name = "gdk-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -3099,9 +2989,9 @@ dependencies = [ [[package]] name = "gdkwayland-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90fbf5c033c65d93792192a49a8efb5bb1e640c419682a58bb96f5ae77f3d4a" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" dependencies = [ "gdk-sys", "glib-sys", @@ -3113,9 +3003,9 @@ dependencies = [ [[package]] name = "gdkx11-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" dependencies = [ "gdk-sys", "glib-sys", @@ -3150,11 +3040,11 @@ dependencies = [ [[package]] name = "gethostname" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7131e57abbde63513e0e6636f76668a1ca9798dcae2df4e283cae9ee83859e" +checksum = "fc257fdb4038301ce4b9cd1b3b51704509692bb3ff716a410cbd07925d9dae55" dependencies = [ - "rustix 1.0.5", + "rustix 1.0.7", "windows-targets 0.52.6", ] @@ -3171,9 +3061,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "js-sys", @@ -3208,9 +3098,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "gio" @@ -3278,7 +3168,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -3293,9 +3183,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "gobject-sys" @@ -3321,9 +3211,9 @@ dependencies = [ [[package]] name = "gtk" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" dependencies = [ "atk", "cairo-rs", @@ -3342,9 +3232,9 @@ dependencies = [ [[package]] name = "gtk-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" dependencies = [ "atk-sys", "cairo-sys-rs", @@ -3360,15 +3250,15 @@ dependencies = [ [[package]] name = "gtk3-macros" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -3383,7 +3273,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.5.0", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -3392,17 +3282,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.5.0", + "http 1.3.1", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -3417,9 +3307,9 @@ checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" [[package]] name = "half" -version = "2.4.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" dependencies = [ "cfg-if", "crunchy", @@ -3446,9 +3336,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" dependencies = [ "allocator-api2", "equivalent", @@ -3461,7 +3351,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.15.2", + "hashbrown 0.15.3", ] [[package]] @@ -3477,15 +3367,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "heck" version = "0.4.1" @@ -3510,6 +3391,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +[[package]] +name = "hermit-abi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" + [[package]] name = "hex" version = "0.4.3" @@ -3518,24 +3405,22 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hickory-proto" -version = "0.25.1" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d844af74f7b799e41c78221be863bade11c430d46042c3b49ca8ae0c6d27287" +checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" dependencies = [ - "async-recursion", "async-trait", "cfg-if", - "critical-section", "data-encoding", "enum-as-inner", "futures-channel", "futures-io", "futures-util", - "idna 1.0.3", + "idna", "ipnet", "once_cell", "rand 0.9.1", - "ring 0.17.8", + "ring", "thiserror 2.0.12", "tinyvec", "tokio", @@ -3545,9 +3430,9 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.25.1" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a128410b38d6f931fcc6ca5c107a3b02cabd6c05967841269a4ad65d23c44331" +checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" dependencies = [ "cfg-if", "futures-util", @@ -3570,17 +3455,7 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "hmac 0.12.1", -] - -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac", - "digest 0.9.0", + "hmac", ] [[package]] @@ -3589,27 +3464,27 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[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", "libc", - "windows 0.52.0", + "windows-link", ] [[package]] @@ -3634,18 +3509,18 @@ checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", - "itoa 1.0.11", + "itoa 1.0.15", ] [[package]] name = "http" -version = "1.1.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", - "itoa 1.0.11", + "itoa 1.0.15", ] [[package]] @@ -3666,18 +3541,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.3.1", ] [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", - "http 1.1.0", + "futures-core", + "http 1.3.1", "http-body 1.0.1", "pin-project-lite", ] @@ -3711,9 +3586,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.4" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -3723,15 +3598,15 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" [[package]] name = "hyper" -version = "0.14.31" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ "bytes", "futures-channel", @@ -3742,7 +3617,7 @@ dependencies = [ "http-body 0.4.6", "httparse", "httpdate", - "itoa 1.0.11", + "itoa 1.0.15", "pin-project-lite", "socket2", "tokio", @@ -3753,19 +3628,19 @@ dependencies = [ [[package]] name = "hyper" -version = "1.4.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.10", + "http 1.3.1", "http-body 1.0.1", "httparse", "httpdate", - "itoa 1.0.11", + "itoa 1.0.15", "pin-project-lite", "smallvec", "tokio", @@ -3780,7 +3655,7 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http 0.2.12", - "hyper 0.14.31", + "hyper 0.14.32", "log", "rustls 0.21.12", "rustls-native-certs 0.6.3", @@ -3790,21 +3665,21 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.4.1", + "http 1.3.1", + "hyper 1.6.0", "hyper-util", - "rustls 0.23.26", - "rustls-native-certs 0.8.0", + "rustls 0.23.27", + "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.2", "tower-service", - "webpki-roots 0.26.6", + "webpki-roots 0.26.11", ] [[package]] @@ -3813,26 +3688,13 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 1.4.1", + "hyper 1.6.0", "hyper-util", "pin-project-lite", "tokio", "tower-service", ] -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.31", - "native-tls", - "tokio", - "tokio-native-tls", -] - [[package]] name = "hyper-tls" version = "0.6.0" @@ -3841,7 +3703,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.4.1", + "hyper 1.6.0", "hyper-util", "native-tls", "tokio", @@ -3851,16 +3713,17 @@ dependencies = [ [[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", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", - "hyper 1.4.1", + "hyper 1.6.0", + "libc", "pin-project-lite", "socket2", "tokio", @@ -3870,16 +3733,17 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.61" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core 0.61.0", ] [[package]] @@ -3901,16 +3765,6 @@ dependencies = [ "png", ] -[[package]] -name = "icrate" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb69199826926eb864697bddd27f73d9fddcffc004f5733131e15b465e30642" -dependencies = [ - "block2 0.4.0", - "objc2 0.5.2", -] - [[package]] name = "icu_collections" version = "1.5.0" @@ -3952,9 +3806,9 @@ dependencies = [ [[package]] name = "icu_locid_transform_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" [[package]] name = "icu_normalizer" @@ -3976,9 +3830,9 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" [[package]] name = "icu_properties" @@ -3997,9 +3851,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" [[package]] name = "icu_provider" @@ -4026,7 +3880,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -4035,16 +3889,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - [[package]] name = "idna" version = "1.0.3" @@ -4066,46 +3910,50 @@ dependencies = [ "icu_properties", ] -[[package]] -name = "if_chain" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" - [[package]] name = "image" -version = "0.24.9" +version = "0.25.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "exr", - "gif", - "jpeg-decoder", - "num-traits", - "png", - "qoi", - "tiff", -] - -[[package]] -name = "image" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97eb9a8e0cd5b76afea91d7eecd5cf8338cd44ced04256cf1f800474b227c52" +checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" dependencies = [ "bytemuck", "byteorder-lite", + "color_quant", + "exr", + "gif", + "image-webp", "num-traits", + "png", + "qoi", + "ravif", + "rayon", + "rgb", + "tiff", + "zune-core", + "zune-jpeg", ] [[package]] -name = "impl-more" -version = "0.1.8" +name = "image-webp" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae21c3177a27788957044151cc2800043d127acaa460a47ebb9b84dfa2c6aa0" +checksum = "b77d01e822461baa8409e156015a1d91735549f0f2c17691bd2d996bef238f7f" +dependencies = [ + "byteorder-lite", + "quick-error", +] + +[[package]] +name = "imgref" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408" + +[[package]] +name = "impl-more" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" [[package]] name = "indexmap" @@ -4120,12 +3968,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.5.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.3", "serde", ] @@ -4159,18 +4007,18 @@ dependencies = [ [[package]] name = "inferno" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692eda1cc790750b9f5a5e3921ef9c117fd5498b97cfacbc910693e5b29002dc" +checksum = "2094aecddc672e902cd773bad7071542f63641e01e9187c3bba4b43005e837e9" dependencies = [ "ahash 0.8.11", "clap", "crossbeam-channel", "crossbeam-utils", - "dashmap 6.1.0", + "dashmap", "env_logger", - "indexmap 2.5.0", - "itoa 1.0.11", + "indexmap 2.9.0", + "itoa 1.0.15", "log", "num-format", "once_cell", @@ -4201,9 +4049,9 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "generic-array", ] @@ -4217,6 +4065,17 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "interpolate_name" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "ipconfig" version = "0.3.2" @@ -4231,18 +4090,15 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "ipnetwork" -version = "0.20.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" -dependencies = [ - "serde", -] +checksum = "cf370abdafd54d13e54a620e8c3e1145f28e46cc9d704bc6d94414559df41763" [[package]] name = "is-docker" @@ -4255,13 +4111,13 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.13" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ - "hermit-abi 0.4.0", + "hermit-abi 0.5.1", "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4282,20 +4138,11 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "iso8601" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924e5d73ea28f59011fec52a0d12185d496a9b075d360657aed2a5707f701153" +checksum = "c5c177cff824ab21a6f41079a4c401241c4e8be14f316c4c6b07d5fca351c98d" dependencies = [ - "nom 7.1.3", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", + "nom 8.0.0", ] [[package]] @@ -4333,9 +4180,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "javascriptcore-rs" @@ -4401,10 +4248,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", ] @@ -4413,9 +4261,6 @@ name = "jpeg-decoder" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" -dependencies = [ - "rayon", -] [[package]] name = "js-sys" @@ -4433,7 +4278,19 @@ version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" dependencies = [ - "jsonptr", + "jsonptr 0.6.3", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "json-patch" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "159294d661a039f7644cea7e4d844e6b25aaf71c1ffe9d73a96d768c24b0faf4" +dependencies = [ + "jsonptr 0.7.1", "serde", "serde_json", "thiserror 1.0.69", @@ -4450,14 +4307,24 @@ dependencies = [ ] [[package]] -name = "jsonwebtoken" -version = "9.3.0" +name = "jsonptr" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" +checksum = "a5a3cc660ba5d72bce0b3bb295bf20847ccbb40fd423f3f05b61273672e561fe" dependencies = [ - "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "jsonwebtoken" +version = "9.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" +dependencies = [ + "base64 0.22.1", "js-sys", - "ring 0.17.8", + "ring", "serde", "serde_json", ] @@ -4475,9 +4342,9 @@ dependencies = [ [[package]] name = "kqueue" -version = "1.0.8" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a" dependencies = [ "kqueue-sys", "libc", @@ -4522,7 +4389,7 @@ dependencies = [ "ariadne", "async-stripe", "async-trait", - "base64 0.21.7", + "base64 0.22.1", "bitflags 2.9.0", "bytes", "censor", @@ -4531,7 +4398,7 @@ dependencies = [ "clickhouse", "color-thief", "console-subscriber", - "dashmap 5.5.3", + "dashmap", "deadpool-redis", "derive-new", "dotenv-build", @@ -4541,14 +4408,15 @@ dependencies = [ "futures", "futures-util", "hex", - "hmac 0.11.0", - "hyper 0.14.31", - "hyper-tls 0.5.0", + "hmac", + "hyper 1.6.0", + "hyper-tls", + "hyper-util", "iana-time-zone", - "image 0.24.9", - "itertools 0.12.1", + "image", + "itertools 0.14.0", "jemalloc_pprof", - "json-patch", + "json-patch 4.0.0", "lazy_static", "lettre", "maxminddb", @@ -4559,7 +4427,7 @@ dependencies = [ "rand_chacha 0.3.1", "redis", "regex", - "reqwest 0.11.27", + "reqwest", "rust-s3", "rust_decimal", "rust_iso3166", @@ -4569,12 +4437,12 @@ dependencies = [ "serde", "serde_json", "serde_with", - "sha1 0.6.1", - "sha2 0.9.9", + "sha1", + "sha2", "spdx", "sqlx", "tar", - "thiserror 1.0.69", + "thiserror 2.0.12", "tikv-jemalloc-ctl", "tikv-jemallocator", "tokio", @@ -4590,7 +4458,7 @@ dependencies = [ "woothee", "yaserde", "yaserde_derive", - "zip 0.6.6", + "zip", "zxcvbn", ] @@ -4606,7 +4474,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.9.8", + "spin", ] [[package]] @@ -4617,22 +4485,22 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "lettre" -version = "0.11.10" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0161e452348e399deb685ba05e55ee116cae9410f4f51fe42d597361444521d9" +checksum = "759bc2b8eabb6a30b235d6f716f7f36479f4b38cbe65b8747aefee51f89e8437" dependencies = [ "base64 0.22.1", "chumsky", "email-encoding", "email_address", - "fastrand 2.1.1", + "fastrand 2.3.0", "futures-util", "hostname", "httpdate", - "idna 1.0.3", + "idna", "mime", "native-tls", - "nom 7.1.3", + "nom 8.0.0", "percent-encoding", "quoted_printable", "socket2", @@ -4680,6 +4548,16 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "libfuzzer-sys" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf78f52d400cf2d84a3a973a78a592b4adc535739e0a5597a0da6f0c357adc75" +dependencies = [ + "arbitrary", + "cc", +] + [[package]] name = "libloading" version = "0.7.4" @@ -4692,9 +4570,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" @@ -4728,17 +4606,11 @@ dependencies = [ "glob", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" @@ -4748,9 +4620,9 @@ checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "local-channel" @@ -4799,32 +4671,19 @@ dependencies = [ ] [[package]] -name = "lru-cache" -version = "0.1.2" +name = "loop9" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" dependencies = [ - "linked-hash-map", + "imgref", ] [[package]] -name = "lz4" -version = "1.28.0" +name = "lz4_flex" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d1febb2b4a79ddd1980eede06a8f7902197960aa0383ffcfdd62fe723036725" -dependencies = [ - "lz4-sys", -] - -[[package]] -name = "lz4-sys" -version = "1.11.1+lz4-1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" -dependencies = [ - "cc", - "libc", -] +checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5" [[package]] name = "lzma-rs" @@ -4903,14 +4762,15 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "maxminddb" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6087e5d8ea14861bb7c7f573afbc7be3798d3ef0fae87ec4fd9a4de9a127c3c" +checksum = "2a197e44322788858682406c74b0b59bf8d9b4954fe1f224d9a25147f1880bba" dependencies = [ "ipnetwork", "log", "memchr", "serde", + "thiserror 2.0.12", ] [[package]] @@ -4921,7 +4781,17 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", +] + +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", ] [[package]] @@ -4931,7 +4801,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ "cfg-if", - "digest 0.10.7", + "digest", ] [[package]] @@ -4942,22 +4812,22 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" [[package]] name = "meilisearch-index-setting-macro" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056e8c0652af81cc6525e0d9c0e1037ea7bcd77955dcd4aef1a1441be7ad7e55" +checksum = "420f67f5943a0236eea7f199720cc465e806c48978d9b0fdc1fb62eceaee7556" dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", "structmeta", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] name = "meilisearch-sdk" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66958255878d712b4f2dece377a8661b41dc976ff15f564b91bfce8b4a619304" +checksum = "2325355c73c96667178c09675389cfa7afc2382d5aa0e0d34d0cf29793d89090" dependencies = [ "async-trait", "bytes", @@ -4969,7 +4839,7 @@ dependencies = [ "log", "meilisearch-index-setting-macro", "pin-project-lite", - "reqwest 0.12.15", + "reqwest", "serde", "serde_json", "thiserror 1.0.69", @@ -5028,18 +4898,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "minisign-verify" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a05b5d0594e0cb1ad8cee3373018d2b84e25905dc75b2468114cc9a8e86cfc20" - -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] +checksum = "6367d84fb54d4242af283086402907277715b8fe46976963af5ebf173f8efba3" [[package]] name = "miniz_oxide" @@ -5053,11 +4914,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", @@ -5094,7 +4954,7 @@ dependencies = [ "gtk", "keyboard-types", "objc2 0.6.1", - "objc2-app-kit 0.3.1", + "objc2-app-kit", "objc2-core-foundation", "objc2-foundation 0.3.1", "once_cell", @@ -5124,11 +4984,11 @@ checksum = "8f006431cea71a83e6668378cb5abc2d52af299cbac6dca1780c6eeca90822df" dependencies = [ "ascii", "block2 0.6.1", - "dirs 6.0.0", - "dispatch2", + "dirs", + "dispatch2 0.3.0", "formatx", "objc2 0.6.1", - "objc2-app-kit 0.3.1", + "objc2-app-kit", "objc2-core-foundation", "objc2-core-graphics", "objc2-foundation 0.3.1", @@ -5142,9 +5002,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ "libc", "log", @@ -5152,7 +5012,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -5231,6 +5091,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "noop_proc_macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" + [[package]] name = "normpath" version = "1.3.0" @@ -5352,6 +5218,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "num-format" version = "0.4.4" @@ -5359,7 +5236,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ "arrayvec", - "itoa 1.0.11", + "itoa 1.0.15", ] [[package]] @@ -5428,10 +5305,10 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -5466,22 +5343,6 @@ dependencies = [ "objc2-exception-helper", ] -[[package]] -name = "objc2-app-kit" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" -dependencies = [ - "bitflags 2.9.0", - "block2 0.5.1", - "libc", - "objc2 0.5.2", - "objc2-core-data 0.2.2", - "objc2-core-image 0.2.2", - "objc2-foundation 0.2.2", - "objc2-quartz-core 0.2.2", -] - [[package]] name = "objc2-app-kit" version = "0.3.1" @@ -5493,10 +5354,10 @@ dependencies = [ "libc", "objc2 0.6.1", "objc2-cloud-kit", - "objc2-core-data 0.3.1", + "objc2-core-data", "objc2-core-foundation", "objc2-core-graphics", - "objc2-core-image 0.3.1", + "objc2-core-image", "objc2-foundation 0.3.1", "objc2-quartz-core 0.3.1", ] @@ -5512,18 +5373,6 @@ dependencies = [ "objc2-foundation 0.3.1", ] -[[package]] -name = "objc2-core-data" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" -dependencies = [ - "bitflags 2.9.0", - "block2 0.5.1", - "objc2 0.5.2", - "objc2-foundation 0.2.2", -] - [[package]] name = "objc2-core-data" version = "0.3.1" @@ -5543,7 +5392,7 @@ checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" dependencies = [ "bitflags 2.9.0", "block2 0.6.1", - "dispatch2", + "dispatch2 0.3.0", "libc", "objc2 0.6.1", ] @@ -5556,7 +5405,7 @@ checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4" dependencies = [ "bitflags 2.9.0", "block2 0.6.1", - "dispatch2", + "dispatch2 0.3.0", "libc", "objc2 0.6.1", "objc2-core-foundation", @@ -5564,18 +5413,6 @@ dependencies = [ "objc2-metal 0.3.1", ] -[[package]] -name = "objc2-core-image" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" -dependencies = [ - "block2 0.5.1", - "objc2 0.5.2", - "objc2-foundation 0.2.2", - "objc2-metal 0.2.2", -] - [[package]] name = "objc2-core-image" version = "0.3.1" @@ -5609,7 +5446,6 @@ checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ "bitflags 2.9.0", "block2 0.5.1", - "dispatch", "libc", "objc2 0.5.2", ] @@ -5673,14 +5509,14 @@ dependencies = [ [[package]] name = "objc2-osa-kit" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6788b04a18ea31e3dc3ab256b8546639e5bbae07c1a0dc4ea8615252bc6aee9a" +checksum = "26bb88504b5a050dbba515d2414607bf5e57dd56b107bc5f0351197a3e7bdc5d" dependencies = [ "bitflags 2.9.0", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-app-kit", + "objc2-foundation 0.3.1", ] [[package]] @@ -5728,48 +5564,37 @@ dependencies = [ "bitflags 2.9.0", "block2 0.6.1", "objc2 0.6.1", - "objc2-app-kit 0.3.1", + "objc2-app-kit", "objc2-core-foundation", "objc2-foundation 0.3.1", ] [[package]] name = "object" -version = "0.36.4" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.20.1" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" dependencies = [ "critical-section", "portable-atomic", ] -[[package]] -name = "oncemutex" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d11de466f4a3006fe8a5e7ec84e93b79c70cb992ae0aa0eb631ad2df8abfe2" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - [[package]] name = "open" -version = "5.3.0" +version = "5.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3" +checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" dependencies = [ + "dunce", "is-wsl", "libc", "pathdiff", @@ -5790,9 +5615,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ "bitflags 2.9.0", "cfg-if", @@ -5811,29 +5636,29 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-src" -version = "300.3.2+3.3.2" +version = "300.5.0+3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +checksum = "e8ce546f549326b0e6052b649198487d91320875da901e7bd11a06d1ee3f9c2f" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847" dependencies = [ "cc", "libc", @@ -5848,23 +5673,13 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "ordered-multimap" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a" -dependencies = [ - "dlv-list 0.3.0", - "hashbrown 0.12.3", -] - [[package]] name = "ordered-multimap" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" dependencies = [ - "dlv-list 0.5.2", + "dlv-list", "hashbrown 0.14.5", ] @@ -5891,16 +5706,16 @@ dependencies = [ [[package]] name = "osakit" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35366a452fce3f8947eb2f33226a133aaf0cacedef2af67ade348d58be7f85d0" +checksum = "732c71caeaa72c065bb69d7ea08717bd3f4863a4f451402fc9513e29dbd5261b" dependencies = [ - "icrate", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-foundation 0.3.1", "objc2-osa-kit", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] @@ -5918,7 +5733,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "primeorder", - "sha2 0.10.9", + "sha2", ] [[package]] @@ -5981,17 +5796,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "487f2ccd1e17ce8c1bfab3a65c89525af41cfad4c8659021a1e9a2aacd73b89b" -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "password-hash" version = "0.5.0" @@ -6011,21 +5815,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathdiff" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", - "password-hash 0.4.2", - "sha2 0.10.9", -] +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "pbkdf2" @@ -6033,8 +5825,8 @@ version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", + "digest", + "hmac", ] [[package]] @@ -6074,12 +5866,12 @@ dependencies = [ [[package]] name = "phf" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ - "phf_macros 0.11.2", - "phf_shared 0.11.2", + "phf_macros 0.11.3", + "phf_shared 0.11.3", ] [[package]] @@ -6124,11 +5916,11 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ - "phf_shared 0.11.2", + "phf_shared 0.11.3", "rand 0.8.5", ] @@ -6148,15 +5940,15 @@ dependencies = [ [[package]] name = "phf_macros" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ - "phf_generator 0.11.2", - "phf_shared 0.11.2", + "phf_generator 0.11.3", + "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -6165,7 +5957,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" dependencies = [ - "siphasher", + "siphasher 0.3.11", ] [[package]] @@ -6174,64 +5966,43 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ - "siphasher", + "siphasher 0.3.11", ] [[package]] name = "phf_shared" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ - "siphasher", -] - -[[package]] -name = "phonenumber" -version = "0.3.6+8.13.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11756237b57b8cc5e97dc8b1e70ea436324d30e7075de63b14fd15073a8f692a" -dependencies = [ - "bincode", - "either", - "fnv", - "itertools 0.12.1", - "lazy_static", - "nom 7.1.3", - "quick-xml 0.31.0", - "regex", - "regex-cache", - "serde", - "serde_derive", - "strum", - "thiserror 1.0.69", + "siphasher 1.0.1", ] [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -6246,7 +6017,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.1.1", + "fastrand 2.3.0", "futures-io", ] @@ -6273,18 +6044,18 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plist" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" +checksum = "eac26e981c03a6e53e0aee43c113e3202f5581d5360dae7bd2c70e800dd0451d" dependencies = [ "base64 0.22.1", - "indexmap 2.5.0", + "indexmap 2.9.0", "quick-xml 0.32.0", "serde", "time", @@ -6292,37 +6063,37 @@ dependencies = [ [[package]] name = "png" -version = "0.17.14" +version = "0.17.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" dependencies = [ "bitflags 1.3.2", "crc32fast", "fdeflate", "flate2", - "miniz_oxide 0.8.8", + "miniz_oxide", ] [[package]] name = "polling" -version = "3.7.3" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.37", + "rustix 0.38.44", "tracing", "windows-sys 0.59.0", ] [[package]] name = "portable-atomic" -version = "1.9.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "powerfmt" @@ -6347,11 +6118,11 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy", + "zerocopy 0.8.25", ] [[package]] @@ -6367,7 +6138,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a" dependencies = [ "csv", - "encode_unicode 1.0.0", + "encode_unicode", "is-terminal", "lazy_static", "term", @@ -6404,11 +6175,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "toml_edit 0.22.22", + "toml_edit 0.22.26", ] [[package]] @@ -6435,6 +6206,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "proc-macro-hack" version = "0.5.20+deprecated" @@ -6443,9 +6236,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -6460,7 +6253,7 @@ dependencies = [ "hex", "lazy_static", "procfs-core", - "rustix 0.38.37", + "rustix 0.38.44", ] [[package]] @@ -6473,6 +6266,25 @@ dependencies = [ "hex", ] +[[package]] +name = "profiling" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" +dependencies = [ + "profiling-procmacros", +] + +[[package]] +name = "profiling-procmacros" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" +dependencies = [ + "quote", + "syn 2.0.101", +] + [[package]] name = "prometheus" version = "0.13.4" @@ -6510,7 +6322,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -6530,9 +6342,9 @@ checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" [[package]] name = "psm" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" +checksum = "6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f" dependencies = [ "cc", ] @@ -6597,25 +6409,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" -[[package]] -name = "quick-xml" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "quick-xml" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" -dependencies = [ - "memchr", -] - [[package]] name = "quick-xml" version = "0.32.0" @@ -6623,15 +6416,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" dependencies = [ "memchr", -] - -[[package]] -name = "quick-xml" -version = "0.36.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" -dependencies = [ - "memchr", + "serde", ] [[package]] @@ -6646,45 +6431,51 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" dependencies = [ "bytes", + "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.26", + "rustls 0.23.27", "socket2", - "thiserror 1.0.69", + "thiserror 2.0.12", "tokio", "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b" dependencies = [ "bytes", - "rand 0.8.5", - "ring 0.17.8", + "getrandom 0.3.2", + "rand 0.9.1", + "ring", "rustc-hash", - "rustls 0.23.26", + "rustls 0.23.27", + "rustls-pki-types", "slab", - "thiserror 1.0.69", + "thiserror 2.0.12", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2", @@ -6694,9 +6485,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -6810,7 +6601,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", ] [[package]] @@ -6840,6 +6631,56 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rav1e" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" +dependencies = [ + "arbitrary", + "arg_enum_proc_macro", + "arrayvec", + "av1-grain", + "bitstream-io", + "built", + "cfg-if", + "interpolate_name", + "itertools 0.12.1", + "libc", + "libfuzzer-sys", + "log", + "maybe-rayon", + "new_debug_unreachable", + "noop_proc_macro", + "num-derive", + "num-traits", + "once_cell", + "paste", + "profiling", + "rand 0.8.5", + "rand_chacha 0.3.1", + "simd_helpers", + "system-deps", + "thiserror 1.0.69", + "v_frame", + "wasm-bindgen", +] + +[[package]] +name = "ravif" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6a5f31fcf7500f9401fea858ea4ab5525c99f2322cfcee732c0e6c74208c0c6" +dependencies = [ + "avif-serialize", + "imgref", + "loop9", + "quick-error", + "rav1e", + "rayon", + "rgb", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -6868,17 +6709,16 @@ dependencies = [ [[package]] name = "redis" -version = "0.27.5" +version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cccf17a692ce51b86564334614d72dcae1def0fd5ecebc9f02956da74352b5" +checksum = "1bc42f3a12fd4408ce64d8efef67048a924e543bd35c6591c0447fda9054695f" dependencies = [ "ahash 0.8.11", "arc-swap", - "async-trait", "bytes", "combine", "futures-util", - "itoa 1.0.11", + "itoa 1.0.15", "num-bigint", "percent-encoding", "pin-project-lite", @@ -6893,9 +6733,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.6" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355ae415ccd3a04315d3f8246e86d67689ea74d88d915576e1589a351062a13b" +checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ "bitflags 2.9.0", ] @@ -6906,7 +6746,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "libredox", "thiserror 1.0.69", ] @@ -6917,7 +6757,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "libredox", "thiserror 2.0.12", ] @@ -6930,7 +6770,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -6945,27 +6785,15 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", "regex-syntax 0.8.5", ] -[[package]] -name = "regex-cache" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f7b62d69743b8b94f353b6b7c3deb4c5582828328bcb8d5fedf214373808793" -dependencies = [ - "lru-cache", - "oncemutex", - "regex", - "regex-syntax 0.6.29", -] - [[package]] name = "regex-lite" version = "0.1.6" @@ -6994,51 +6822,10 @@ dependencies = [ ] [[package]] -name = "reqwest" -version = "0.11.27" +name = "replace_with" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.31", - "hyper-rustls 0.24.2", - "hyper-tls 0.5.0", - "ipnet", - "js-sys", - "log", - "mime", - "mime_guess", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-native-tls", - "tokio-rustls 0.24.1", - "tokio-util", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "webpki-roots 0.25.4", - "winreg 0.50.0", -] +checksum = "e3a8614ee435691de62bcffcf4a66d91b3594bf1428a5722e79103249a095690" [[package]] name = "reqwest" @@ -7053,35 +6840,36 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.10", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", - "hyper-rustls 0.27.3", - "hyper-tls 0.6.0", + "hyper 1.6.0", + "hyper-rustls 0.27.5", + "hyper-tls", "hyper-util", "ipnet", "js-sys", "log", "mime", + "mime_guess", "native-tls", "once_cell", "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.26", - "rustls-native-certs 0.8.0", - "rustls-pemfile 2.1.3", + "rustls 0.23.27", + "rustls-native-certs 0.8.1", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", - "system-configuration 0.6.1", + "sync_wrapper", + "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.2", "tokio-util", "tower 0.5.2", "tower-service", @@ -7090,18 +6878,15 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.6", + "webpki-roots 0.26.11", "windows-registry 0.4.0", ] [[package]] name = "resolv-conf" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48375394603e3dd4b2d64371f7148fd8c7baa2680e28741f2cb8d23b59e3d4c4" -dependencies = [ - "hostname", -] +checksum = "fc7c8f7f733062b66dc1c63f9db168ac0b97a9210e247fa90fdc9ad08f51b302" [[package]] name = "result" @@ -7115,31 +6900,33 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "hmac 0.12.1", + "hmac", "subtle", ] [[package]] name = "rfd" -version = "0.15.1" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f6f80a9b882647d9014673ca9925d30ffc9750f2eed2b4490e189eaebd01e8" +checksum = "80c844748fdc82aae252ee4594a89b6e7ebef1063de7951545564cbc4e57075d" dependencies = [ "ashpd", - "block2 0.5.1", + "block2 0.6.1", + "dispatch2 0.2.0", "glib-sys", "gobject-sys", "gtk-sys", "js-sys", "log", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation 0.3.1", "raw-window-handle", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -7153,31 +6940,15 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.20" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.15", + "getrandom 0.2.16", "libc", - "spin 0.9.8", - "untrusted 0.9.0", + "untrusted", "windows-sys 0.52.0", ] @@ -7212,12 +6983,12 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.6" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" dependencies = [ "const-oid", - "digest 0.10.7", + "digest", "num-bigint-dig", "num-integer", "num-traits", @@ -7230,16 +7001,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rust-ini" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df" -dependencies = [ - "cfg-if", - "ordered-multimap 0.4.3", -] - [[package]] name = "rust-ini" version = "0.21.1" @@ -7247,48 +7008,53 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e310ef0e1b6eeb79169a1171daf9abcb87a2e17c03bee2c4bb100b55c75409f" dependencies = [ "cfg-if", - "ordered-multimap 0.7.3", + "ordered-multimap", "trim-in-place", ] [[package]] name = "rust-s3" -version = "0.33.0" +version = "0.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2ac5ff6acfbe74226fa701b5ef793aaa054055c13ebb7060ad36942956e027" +checksum = "c3df3f353b1f4209dcf437d777cda90279c397ab15a0cd6fd06bd32c88591533" dependencies = [ "async-trait", "aws-creds", "aws-region", - "base64 0.13.1", + "base64 0.22.1", "bytes", "cfg-if", "futures", "hex", - "hmac 0.12.1", + "hmac", "http 0.2.12", + "hyper 0.14.32", + "hyper-rustls 0.24.2", "log", "maybe-async", "md5", "minidom", "percent-encoding", - "quick-xml 0.26.0", - "reqwest 0.11.27", + "quick-xml 0.32.0", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", "serde", "serde_derive", - "sha2 0.10.9", + "serde_json", + "sha2", "thiserror 1.0.69", "time", "tokio", + "tokio-rustls 0.24.1", "tokio-stream", "url", ] [[package]] name = "rust_decimal" -version = "1.36.0" +version = "1.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555" +checksum = "faa7de2ba56ac291bd90c6b9bece784a52ae1411f9506544b3eae36dd2356d50" dependencies = [ "arrayvec", "borsh", @@ -7302,22 +7068,22 @@ dependencies = [ [[package]] name = "rust_decimal_macros" -version = "1.36.0" +version = "1.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da991f231869f34268415a49724c6578e740ad697ba0999199d6f22b3949332c" +checksum = "f6268b74858287e1a062271b988a0c534bf85bbeb567fe09331bf40ed78113d5" dependencies = [ "quote", - "rust_decimal", + "syn 2.0.101", ] [[package]] name = "rust_iso3166" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd3126eab517ef8ca4761a366cb0d55e1bf5ab9c7b7f18301d712a57de000a90" +checksum = "df0d3a0089ee08071ea1baaba83f2265c97f7646c53c3f92b205eb2cdaab72b1" dependencies = [ "js-sys", - "phf 0.11.2", + "phf 0.11.3", "prettytable-rs", "wasm-bindgen", ] @@ -7330,9 +7096,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc_version" @@ -7345,22 +7111,22 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.4.14", - "windows-sys 0.52.0", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", ] [[package]] name = "rustix" -version = "1.0.5" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ "bitflags 2.9.0", "errno", @@ -7369,18 +7135,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "rustls" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" -dependencies = [ - "log", - "ring 0.16.20", - "sct", - "webpki", -] - [[package]] name = "rustls" version = "0.21.12" @@ -7388,36 +7142,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring 0.17.8", + "ring", "rustls-webpki 0.101.7", "sct", ] [[package]] name = "rustls" -version = "0.22.4" +version = "0.23.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-pki-types", - "rustls-webpki 0.102.8", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls" -version = "0.23.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" +checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" dependencies = [ "log", "once_cell", - "ring 0.17.8", + "ring", "rustls-pki-types", - "rustls-webpki 0.103.1", + "rustls-webpki 0.103.2", "subtle", "zeroize", ] @@ -7431,20 +7171,19 @@ dependencies = [ "openssl-probe", "rustls-pemfile 1.0.4", "schannel", - "security-framework", + "security-framework 2.11.1", ] [[package]] name = "rustls-native-certs" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.2.0", ] [[package]] @@ -7458,19 +7197,22 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "web-time", + "zeroize", +] [[package]] name = "rustls-webpki" @@ -7478,37 +7220,26 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", + "ring", + "untrusted", ] [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "7149975849f1abb3832b246010ef62ccc80d3a76169517ada7188252b9cfb437" dependencies = [ - "ring 0.17.8", + "ring", "rustls-pki-types", - "untrusted 0.9.0", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" -dependencies = [ - "ring 0.17.8", - "rustls-pki-types", - "untrusted 0.9.0", + "untrusted", ] [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "rusty-money" @@ -7539,9 +7270,9 @@ checksum = "22a197350ece202f19a166d1ad6d9d6de145e1d2a8ef47db299abe164dbd7530" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "same-file" @@ -7554,9 +7285,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -7572,9 +7303,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" dependencies = [ "dyn-clone", "indexmap 1.9.3", @@ -7587,14 +7318,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" dependencies = [ "proc-macro2", "quote", - "serde_derive_internals 0.29.1", - "syn 2.0.90", + "serde_derive_internals", + "syn 2.0.101", ] [[package]] @@ -7615,8 +7346,8 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", + "ring", + "untrusted", ] [[package]] @@ -7627,14 +7358,13 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] name = "sealed" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b5e421024b5e5edfbaa8e60ecf90bda9dbffc602dbb230e6028763f85f0c68c" +checksum = "22f968c5ea23d555e670b449c1c5e7b2fc399fdaec1d304a17cd48e288abc107" dependencies = [ - "heck 0.3.3", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -7665,10 +7395,23 @@ dependencies = [ ] [[package]] -name = "security-framework-sys" -version = "2.12.0" +name = "security-framework" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.10.0", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -7682,7 +7425,7 @@ checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" dependencies = [ "bitflags 1.3.2", "cssparser", - "derive_more", + "derive_more 0.99.20", "fxhash", "log", "matches", @@ -7696,22 +7439,22 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" dependencies = [ "serde", ] [[package]] name = "sentry" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5484316556650182f03b43d4c746ce0e3e48074a21e2f51244b648b6542e1066" +checksum = "255914a8e53822abd946e2ce8baa41d4cded6b8e938913b7f7b9da5b7ab44335" dependencies = [ "httpdate", - "reqwest 0.12.15", - "rustls 0.22.4", + "reqwest", + "rustls 0.23.27", "sentry-backtrace", "sentry-contexts", "sentry-core", @@ -7720,25 +7463,27 @@ dependencies = [ "sentry-tracing", "tokio", "ureq", - "webpki-roots 0.26.6", + "webpki-roots 0.26.11", ] [[package]] name = "sentry-actix" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e461c7d3a46d298b5ffc66127c1f16454dd11d3d89fcfb21023cd499d82b9a78" +checksum = "a927aed43cce0e9240f7477ac81cdfa2ffb048e0e2b17000eb5976e14f063993" dependencies = [ + "actix-http", "actix-web", + "bytes", "futures-util", "sentry-core", ] [[package]] name = "sentry-backtrace" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40aa225bb41e2ec9d7c90886834367f560efc1af028f1c5478a6cce6a59c463a" +checksum = "00293cd332a859961f24fd69258f7e92af736feaeb91020cff84dac4188a4302" dependencies = [ "backtrace", "once_cell", @@ -7748,9 +7493,9 @@ dependencies = [ [[package]] name = "sentry-contexts" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a8dd746da3d16cb8c39751619cefd4fcdbd6df9610f3310fd646b55f6e39910" +checksum = "961990f9caa76476c481de130ada05614cd7f5aa70fb57c2142f0e09ad3fb2aa" dependencies = [ "hostname", "libc", @@ -7762,9 +7507,9 @@ dependencies = [ [[package]] name = "sentry-core" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161283cfe8e99c8f6f236a402b9ccf726b201f365988b5bb637ebca0abbd4a30" +checksum = "1a6409d845707d82415c800290a5d63be5e3df3c2e417b0997c60531dfbd35ef" dependencies = [ "once_cell", "rand 0.8.5", @@ -7775,9 +7520,9 @@ dependencies = [ [[package]] name = "sentry-debug-images" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc6b25e945fcaa5e97c43faee0267eebda9f18d4b09a251775d8fef1086238a" +checksum = "71ab5df4f3b64760508edfe0ba4290feab5acbbda7566a79d72673065888e5cc" dependencies = [ "findshlibs", "once_cell", @@ -7786,9 +7531,9 @@ dependencies = [ [[package]] name = "sentry-panic" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc74f229c7186dd971a9491ffcbe7883544aa064d1589bd30b83fb856cd22d63" +checksum = "609b1a12340495ce17baeec9e08ff8ed423c337c1a84dffae36a178c783623f3" dependencies = [ "sentry-backtrace", "sentry-core", @@ -7796,9 +7541,9 @@ dependencies = [ [[package]] name = "sentry-tracing" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3c5faf2103cd01eeda779ea439b68c4ee15adcdb16600836e97feafab362ec" +checksum = "49f4e86402d5c50239dc7d8fd3f6d5e048221d5fcb4e026d8d50ab57fe4644cb" dependencies = [ "sentry-backtrace", "sentry-core", @@ -7808,9 +7553,9 @@ dependencies = [ [[package]] name = "sentry-types" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d68cdf6bc41b8ff3ae2a9c4671e97426dcdd154cc1d4b6b72813f285d6b163f" +checksum = "3d3f117b8755dbede8260952de2aeb029e20f432e72634e8969af34324591631" dependencies = [ "debugid", "hex", @@ -7834,9 +7579,9 @@ dependencies = [ [[package]] name = "serde-untagged" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" +checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" dependencies = [ "erased-serde", "serde", @@ -7882,18 +7627,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", -] - -[[package]] -name = "serde_derive_internals" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -7904,7 +7638,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -7924,7 +7658,7 @@ version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "itoa 1.0.11", + "itoa 1.0.15", "memchr", "ryu", "serde", @@ -7932,11 +7666,11 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" dependencies = [ - "itoa 1.0.11", + "itoa 1.0.15", "serde", ] @@ -7973,13 +7707,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -8000,7 +7734,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -8010,7 +7744,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.11", + "itoa 1.0.15", "ryu", "serde", ] @@ -8025,7 +7759,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.5.0", + "indexmap 2.9.0", "serde", "serde_derive", "serde_json", @@ -8039,10 +7773,10 @@ version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "darling 0.20.10", + "darling", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -8077,15 +7811,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "sha1" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" -dependencies = [ - "sha1_smol", -] - [[package]] name = "sha1" version = "0.10.6" @@ -8094,7 +7819,7 @@ checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -8103,19 +7828,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha2" version = "0.10.9" @@ -8124,7 +7836,7 @@ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -8144,9 +7856,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.2" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" dependencies = [ "libc", ] @@ -8157,7 +7869,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ - "digest 0.10.7", + "digest", "rand_core 0.6.4", ] @@ -8167,6 +7879,15 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "simd_helpers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" +dependencies = [ + "quote", +] + [[package]] name = "simdutf8" version = "0.1.5" @@ -8179,6 +7900,12 @@ version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + [[package]] name = "slab" version = "0.4.9" @@ -8190,9 +7917,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" dependencies = [ "serde", ] @@ -8230,9 +7957,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", "windows-sys 0.52.0", @@ -8288,19 +8015,13 @@ dependencies = [ [[package]] name = "spdx" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47317bbaf63785b53861e1ae2d11b80d6b624211d42cb20efcd210ee6f8a14bc" +checksum = "58b69356da67e2fc1f542c71ea7e654a361a79c938e4424392ecf4fa065d2193" dependencies = [ "smallvec", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -8345,30 +8066,30 @@ dependencies = [ "crc", "crossbeam-queue", "either", - "event-listener 5.3.1", + "event-listener 5.4.0", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.15.2", + "hashbrown 0.15.3", "hashlink", - "indexmap 2.5.0", + "indexmap 2.9.0", "log", "memchr", "once_cell", "percent-encoding", "rust_decimal", - "rustls 0.23.26", + "rustls 0.23.27", "serde", "serde_json", - "sha2 0.10.9", + "sha2", "smallvec", "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", "url", - "webpki-roots 0.26.6", + "webpki-roots 0.26.11", ] [[package]] @@ -8381,7 +8102,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -8399,12 +8120,12 @@ dependencies = [ "quote", "serde", "serde_json", - "sha2 0.10.9", + "sha2", "sqlx-core", "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.90", + "syn 2.0.101", "tempfile", "tokio", "url", @@ -8423,7 +8144,7 @@ dependencies = [ "bytes", "chrono", "crc", - "digest 0.10.7", + "digest", "dotenvy", "either", "futures-channel", @@ -8433,8 +8154,8 @@ dependencies = [ "generic-array", "hex", "hkdf", - "hmac 0.12.1", - "itoa 1.0.11", + "hmac", + "itoa 1.0.15", "log", "md-5", "memchr", @@ -8444,8 +8165,8 @@ dependencies = [ "rsa", "rust_decimal", "serde", - "sha1 0.10.6", - "sha2 0.10.9", + "sha1", + "sha2", "smallvec", "sqlx-core", "stringprep", @@ -8473,9 +8194,9 @@ dependencies = [ "futures-util", "hex", "hkdf", - "hmac 0.12.1", + "hmac", "home", - "itoa 1.0.11", + "itoa 1.0.15", "log", "md-5", "memchr", @@ -8484,7 +8205,7 @@ dependencies = [ "rust_decimal", "serde", "serde_json", - "sha2 0.10.9", + "sha2", "smallvec", "sqlx-core", "stringprep", @@ -8526,9 +8247,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stacker" -version = "0.1.17" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" +checksum = "cddb07e32ddb770749da91081d8d0ac3a16f1a569a18b20348cd371f5dead06b" dependencies = [ "cc", "cfg-if", @@ -8557,26 +8278,25 @@ checksum = "7a8348af2d9fc3258c8733b8d9d8db2e56f54b2363a4b5b81585c7875ed65e65" [[package]] name = "string_cache" -version = "0.8.7" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" dependencies = [ "new_debug_unreachable", - "once_cell", "parking_lot", - "phf_shared 0.10.0", + "phf_shared 0.11.3", "precomputed-hash", "serde", ] [[package]] name = "string_cache_codegen" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", + "phf_generator 0.11.3", + "phf_shared 0.11.3", "proc-macro2", "quote", ] @@ -8592,12 +8312,6 @@ dependencies = [ "unicode-properties", ] -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - [[package]] name = "strsim" version = "0.11.1" @@ -8613,7 +8327,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -8624,29 +8338,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", -] - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -8679,51 +8371,33 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.90" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "sync_wrapper" -version = "0.1.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -8738,9 +8412,9 @@ dependencies = [ [[package]] name = "sys-locale" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0" +checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" dependencies = [ "libc", ] @@ -8759,17 +8433,6 @@ dependencies = [ "windows 0.61.1", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "system-configuration-sys 0.5.0", -] - [[package]] name = "system-configuration" version = "0.6.1" @@ -8778,17 +8441,7 @@ checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.9.0", "core-foundation 0.9.4", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "system-configuration-sys", ] [[package]] @@ -8844,7 +8497,7 @@ dependencies = [ "ndk-context", "ndk-sys", "objc2 0.6.1", - "objc2-app-kit 0.3.1", + "objc2-app-kit", "objc2-foundation 0.3.1", "once_cell", "parking_lot", @@ -8867,7 +8520,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -8878,9 +8531,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.42" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" dependencies = [ "filetime", "libc", @@ -8901,15 +8554,15 @@ checksum = "e7b0bc1aec81bda6bc455ea98fcaed26b3c98c1648c627ad6ff1c704e8bf8cbc" dependencies = [ "anyhow", "bytes", - "dirs 6.0.0", + "dirs", "dunce", "embed_plist", "futures-util", - "getrandom 0.2.15", + "getrandom 0.2.16", "glob", "gtk", "heck 0.5.0", - "http 1.1.0", + "http 1.3.1", "http-range", "jni", "libc", @@ -8917,13 +8570,13 @@ dependencies = [ "mime", "muda", "objc2 0.6.1", - "objc2-app-kit 0.3.1", + "objc2-app-kit", "objc2-foundation 0.3.1", "objc2-ui-kit", "percent-encoding", "plist", "raw-window-handle", - "reqwest 0.12.15", + "reqwest", "serde", "serde_json", "serde_repr", @@ -8953,10 +8606,10 @@ checksum = "d7a0350f0df1db385ca5c02888a83e0e66655c245b7443db8b78a70da7d7f8fc" dependencies = [ "anyhow", "cargo_toml", - "dirs 6.0.0", + "dirs", "glob", "heck 0.5.0", - "json-patch", + "json-patch 3.0.1", "quote", "schemars", "semver", @@ -8976,9 +8629,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93f035551bf7b11b3f51ad9bc231ebbe5e085565527991c16cf326aa38cdf47" dependencies = [ "base64 0.22.1", - "brotli 7.0.0", + "brotli", "ico", - "json-patch", + "json-patch 3.0.1", "plist", "png", "proc-macro2", @@ -8986,8 +8639,8 @@ dependencies = [ "semver", "serde", "serde_json", - "sha2 0.10.9", - "syn 2.0.90", + "sha2", + "syn 2.0.101", "tauri-utils", "thiserror 2.0.12", "time", @@ -9005,7 +8658,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", "tauri-codegen", "tauri-utils", ] @@ -9034,7 +8687,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dba4412f30eaff6f5d210e20383c2d6835593977402092e95b72497a4f8632fa" dependencies = [ "dunce", - "rust-ini 0.21.1", + "rust-ini", "serde", "serde_json", "tauri", @@ -9096,7 +8749,7 @@ checksum = "2fdc6cb608e04b7d2b6d1f21e9444ad49245f6d03465ba53323d692d1ceb1a30" dependencies = [ "dunce", "glob", - "objc2-app-kit 0.3.1", + "objc2-app-kit", "objc2-foundation 0.3.1", "open", "schemars", @@ -9150,16 +8803,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73f05c38afd77a4b8fd98e8fb6f1cdbb5fbb8a46ba181eb2758b05321e3c6209" dependencies = [ "base64 0.22.1", - "dirs 6.0.0", + "dirs", "flate2", "futures-util", - "http 1.1.0", + "http 1.3.1", "infer 0.19.0", "log", "minisign-verify", "osakit", "percent-encoding", - "reqwest 0.12.15", + "reqwest", "semver", "serde", "serde_json", @@ -9172,7 +8825,7 @@ dependencies = [ "tokio", "url", "windows-sys 0.59.0", - "zip 2.6.1", + "zip", ] [[package]] @@ -9199,7 +8852,7 @@ dependencies = [ "cookie 0.18.1", "dpi", "gtk", - "http 1.1.0", + "http 1.3.1", "jni", "objc2 0.6.1", "objc2-ui-kit", @@ -9219,11 +8872,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f85d056f4d4b014fe874814034f3416d57114b617a493a4fe552580851a3f3a2" dependencies = [ "gtk", - "http 1.1.0", + "http 1.3.1", "jni", "log", "objc2 0.6.1", - "objc2-app-kit 0.3.1", + "objc2-app-kit", "objc2-foundation 0.3.1", "once_cell", "percent-encoding", @@ -9246,19 +8899,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2900399c239a471bcff7f15c4399eb1a8c4fe511ba2853e07c996d771a5e0a4" dependencies = [ "anyhow", - "brotli 7.0.0", + "brotli", "cargo_metadata", "ctor", "dunce", "glob", "html5ever", - "http 1.1.0", + "http 1.3.1", "infer 0.19.0", - "json-patch", + "json-patch 3.0.1", "kuchikiki", "log", "memchr", - "phf 0.11.2", + "phf 0.11.3", "proc-macro2", "quote", "regex", @@ -9284,7 +8937,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8d321dbc6f998d825ab3f0d62673e810c861aac2d0de2cc2c395328f1d113b4" dependencies = [ "embed-resource", - "indexmap 2.5.0", + "indexmap 2.9.0", "toml", ] @@ -9294,10 +8947,10 @@ version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" dependencies = [ - "fastrand 2.1.1", + "fastrand 2.3.0", "getrandom 0.3.2", "once_cell", - "rustix 1.0.5", + "rustix 1.0.7", "windows-sys 0.59.0", ] @@ -9338,8 +8991,8 @@ dependencies = [ "bytes", "chrono", "daedalus", - "dashmap 6.1.0", - "dirs 6.0.0", + "dashmap", + "dirs", "discord-rich-presence", "dunce", "either", @@ -9358,12 +9011,12 @@ dependencies = [ "quick-xml 0.37.5", "rand 0.8.5", "regex", - "reqwest 0.12.15", + "reqwest", "serde", "serde_ini", "serde_json", "sha1_smol", - "sha2 0.10.9", + "sha2", "sqlx", "sys-info", "sysinfo", @@ -9379,7 +9032,7 @@ dependencies = [ "uuid 1.16.0", "whoami", "winreg 0.55.0", - "zip 2.6.1", + "zip", ] [[package]] @@ -9388,7 +9041,7 @@ version = "0.9.5" dependencies = [ "chrono", "daedalus", - "dashmap 6.1.0", + "dashmap", "either", "enumset", "native-dialog", @@ -9459,7 +9112,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -9470,7 +9123,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -9532,7 +9185,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", - "itoa 1.0.11", + "itoa 1.0.15", "num-conv", "powerfmt", "serde", @@ -9577,9 +9230,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -9592,9 +9245,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.2" +version = "1.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" +checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" dependencies = [ "backtrace", "bytes", @@ -9617,7 +9270,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -9642,20 +9295,19 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.26", - "rustls-pki-types", + "rustls 0.23.27", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -9678,21 +9330,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.22", + "toml_edit 0.22.26", ] [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" dependencies = [ "serde", ] @@ -9703,7 +9355,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.9.0", "toml_datetime", "winnow 0.5.40", ] @@ -9714,24 +9366,31 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.9.0", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.22.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.20", + "toml_write", + "winnow 0.7.10", ] +[[package]] +name = "toml_write" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" + [[package]] name = "tonic" version = "0.12.3" @@ -9743,11 +9402,11 @@ dependencies = [ "axum", "base64 0.22.1", "bytes", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.10", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", + "hyper 1.6.0", "hyper-timeout", "hyper-util", "percent-encoding", @@ -9764,16 +9423,16 @@ 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", - "hmac 0.12.1", - "rand 0.8.5", - "sha1 0.10.6", - "sha2 0.10.9", + "constant_time_eq", + "hmac", + "rand 0.9.1", + "sha1", + "sha2", ] [[package]] @@ -9805,7 +9464,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.1", + "sync_wrapper", "tokio", "tower-layer", "tower-service", @@ -9837,9 +9496,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", @@ -9856,7 +9515,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -9916,11 +9575,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7eee98ec5c90daf179d55c20a49d8c0d043054ce7c26336c09a24d31f14fa0" dependencies = [ "crossbeam-channel", - "dirs 6.0.0", + "dirs", "libappindicator", "muda", "objc2 0.6.1", - "objc2-app-kit 0.3.1", + "objc2-app-kit", "objc2-core-foundation", "objc2-core-graphics", "objc2-foundation 0.3.1", @@ -9951,28 +9610,28 @@ checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ "bytes", "data-encoding", - "http 1.1.0", + "http 1.3.1", "httparse", "log", "rand 0.9.1", - "rustls 0.23.26", + "rustls 0.23.27", "rustls-pki-types", - "sha1 0.10.6", + "sha1", "thiserror 2.0.12", "utf-8", ] [[package]] name = "typeid" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "uds_windows" @@ -10037,24 +9696,21 @@ dependencies = [ [[package]] name = "unicase" -version = "2.7.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-normalization" @@ -10067,9 +9723,9 @@ dependencies = [ [[package]] name = "unicode-properties" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ea75f83c0137a9b98608359a5f1af8144876eb67bcb1ce837368e906a9f524" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" [[package]] name = "unicode-segmentation" @@ -10090,10 +9746,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] -name = "untrusted" -version = "0.7.1" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "untrusted" @@ -10103,17 +9759,17 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.10.1" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" +checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" dependencies = [ "base64 0.22.1", "log", "once_cell", - "rustls 0.23.26", + "rustls 0.23.27", "rustls-pki-types", "url", - "webpki-roots 0.26.6", + "webpki-roots 0.26.11", ] [[package]] @@ -10123,7 +9779,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna 1.0.3", + "idna", "percent-encoding", "serde", ] @@ -10176,7 +9832,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", ] [[package]] @@ -10192,6 +9848,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "v_frame" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b" +dependencies = [ + "aligned-vec", + "num-traits", + "wasm-bindgen", +] + [[package]] name = "v_htmlescape" version = "0.15.8" @@ -10200,13 +9867,12 @@ checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" [[package]] name = "validator" -version = "0.16.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b92f40481c04ff1f4f61f304d61793c7b56ff76ac1469f1beb199b1445b253bd" +checksum = "43fb22e1a008ece370ce08a3e9e4447a910e92621bb49b85d6e48a45397e7cfa" dependencies = [ - "idna 0.4.0", - "lazy_static", - "phonenumber", + "idna", + "once_cell", "regex", "serde", "serde_derive", @@ -10217,35 +9883,23 @@ dependencies = [ [[package]] name = "validator_derive" -version = "0.16.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc44ca3088bb3ba384d9aecf40c6a23a676ce23e09bdaca2073d99c207f864af" +checksum = "b7df16e474ef958526d1205f6dda359fdfab79d9aa6d54bafcb92dcd07673dca" dependencies = [ - "if_chain", - "lazy_static", - "proc-macro-error", + "darling", + "once_cell", + "proc-macro-error2", "proc-macro2", "quote", - "regex", - "syn 1.0.109", - "validator_types", -] - -[[package]] -name = "validator_types" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111abfe30072511849c5910134e8baf8dc05de4c0e5903d681cbd5c9c4d611e3" -dependencies = [ - "proc-macro2", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -10293,9 +9947,9 @@ dependencies = [ [[package]] name = "vswhom-sys" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" dependencies = [ "cc", "libc", @@ -10375,18 +10029,19 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] @@ -10409,7 +10064,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10425,9 +10080,9 @@ dependencies = [ [[package]] name = "wasm-streams" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -10436,71 +10091,11 @@ dependencies = [ "web-sys", ] -[[package]] -name = "wayland-backend" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" -dependencies = [ - "cc", - "downcast-rs", - "rustix 0.38.37", - "scoped-tls", - "smallvec", - "wayland-sys", -] - -[[package]] -name = "wayland-client" -version = "0.31.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" -dependencies = [ - "bitflags 2.9.0", - "rustix 0.38.37", - "wayland-backend", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols" -version = "0.32.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" -dependencies = [ - "bitflags 2.9.0", - "wayland-backend", - "wayland-client", - "wayland-scanner", -] - -[[package]] -name = "wayland-scanner" -version = "0.31.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" -dependencies = [ - "proc-macro2", - "quick-xml 0.36.2", - "quote", -] - -[[package]] -name = "wayland-sys" -version = "0.31.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" -dependencies = [ - "dlib", - "log", - "pkg-config", -] - [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -10583,40 +10178,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f53152f51fb5af0c08484c33d16cca96175881d1f3dec068c23b31a158c2d99" dependencies = [ - "image 0.25.3", + "image", "libwebp-sys", ] [[package]] -name = "webpki" -version = "0.22.4" +name = "webpki-roots" +version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", + "webpki-roots 1.0.0", ] [[package]] name = "webpki-roots" -version = "0.22.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki", -] - -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "0.26.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" dependencies = [ "rustls-pki-types", ] @@ -10643,7 +10222,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -10681,7 +10260,7 @@ checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762" dependencies = [ "either", "env_home", - "rustix 1.0.5", + "rustix 1.0.7", "winsafe", ] @@ -10740,7 +10319,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" dependencies = [ "objc2 0.6.1", - "objc2-app-kit 0.3.1", + "objc2-app-kit", "objc2-core-foundation", "objc2-foundation 0.3.1", "raw-window-handle", @@ -10748,16 +10327,6 @@ dependencies = [ "windows-version", ] -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.58.0" @@ -10812,15 +10381,6 @@ dependencies = [ "windows-core 0.61.0", ] -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-core" version = "0.58.0" @@ -10888,7 +10448,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -10899,7 +10459,7 @@ checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -10910,7 +10470,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -10921,7 +10481,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -10932,7 +10492,7 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -11129,11 +10689,11 @@ dependencies = [ [[package]] name = "windows-version" -version = "0.1.1" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" +checksum = "e04a5c6627e310a23ad2358483286c7df260c964eb2d003d8efd6d0f4e79265c" dependencies = [ - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -11327,9 +10887,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.20" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] @@ -11414,14 +10974,14 @@ dependencies = [ "dunce", "gtk", "html5ever", - "http 1.1.0", + "http 1.3.1", "javascriptcore-rs", "jni", "kuchikiki", "libc", "ndk", "objc2 0.6.1", - "objc2-app-kit 0.3.1", + "objc2-app-kit", "objc2-core-foundation", "objc2-foundation 0.3.1", "objc2-ui-kit", @@ -11429,7 +10989,7 @@ dependencies = [ "once_cell", "percent-encoding", "raw-window-handle", - "sha2 0.10.9", + "sha2", "soup3", "tao-macros", "thiserror 2.0.12", @@ -11474,30 +11034,19 @@ dependencies = [ [[package]] name = "xattr" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" dependencies = [ "libc", - "linux-raw-sys 0.4.14", - "rustix 0.38.37", -] - -[[package]] -name = "xdg-home" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" -dependencies = [ - "libc", - "windows-sys 0.59.0", + "rustix 1.0.7", ] [[package]] name = "xml-rs" -version = "0.8.22" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26" +checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" [[package]] name = "xz2" @@ -11530,7 +11079,7 @@ dependencies = [ "quote", "serde", "serde_tokenstream", - "syn 2.0.90", + "syn 2.0.101", "xml-rs", ] @@ -11547,9 +11096,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -11559,25 +11108,24 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", "synstructure", ] [[package]] name = "zbus" -version = "5.1.1" +version = "5.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1162094dc63b1629fcc44150bcceeaa80798cd28bcbe7fa987b65a034c258608" +checksum = "2522b82023923eecb0b366da727ec883ace092e7887b61d3da5139f26b44da58" dependencies = [ "async-broadcast", "async-executor", - "async-fs", "async-io", "async-lock", "async-process", @@ -11586,21 +11134,19 @@ dependencies = [ "async-trait", "blocking", "enumflags2", - "event-listener 5.3.1", + "event-listener 5.4.0", "futures-core", - "futures-util", + "futures-lite 2.6.0", "hex", "nix", "ordered-stream", "serde", "serde_repr", - "static_assertions", "tokio", "tracing", "uds_windows", "windows-sys 0.59.0", - "winnow 0.6.20", - "xdg-home", + "winnow 0.7.10", "zbus_macros", "zbus_names", "zvariant", @@ -11608,14 +11154,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.1.1" +version = "5.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd2dcdce3e2727f7d74b7e33b5a89539b3cc31049562137faf7ae4eb86cd16d" +checksum = "05d2e12843c75108c00c618c2e8ef9675b50b6ec095b36dc965f2e5aed463c15" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", "zbus_names", "zvariant", "zvariant_utils", @@ -11623,13 +11169,13 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "856b7a38811f71846fd47856ceee8bccaec8399ff53fb370247e66081ace647b" +checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" dependencies = [ "serde", "static_assertions", - "winnow 0.6.20", + "winnow 0.7.10", "zvariant", ] @@ -11639,8 +11185,16 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +dependencies = [ + "zerocopy-derive 0.8.25", ] [[package]] @@ -11651,27 +11205,38 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", "synstructure", ] @@ -11692,7 +11257,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", ] [[package]] @@ -11714,27 +11279,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", -] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes", - "byteorder", - "bzip2 0.4.4", - "constant_time_eq 0.1.5", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac 0.12.1", - "pbkdf2 0.11.0", - "sha1 0.10.6", - "time", - "zstd 0.11.2+zstd.1.5.2", + "syn 2.0.101", ] [[package]] @@ -11745,24 +11290,24 @@ checksum = "1dcb24d0152526ae49b9b96c1dcf71850ca1e0b882e4e28ed898a93c41334744" dependencies = [ "aes", "arbitrary", - "bzip2 0.5.2", - "constant_time_eq 0.3.1", + "bzip2", + "constant_time_eq", "crc32fast", "crossbeam-utils", "deflate64", "flate2", "getrandom 0.3.2", - "hmac 0.12.1", - "indexmap 2.5.0", + "hmac", + "indexmap 2.9.0", "lzma-rs", "memchr", - "pbkdf2 0.12.2", - "sha1 0.10.6", + "pbkdf2", + "sha1", "time", "xz2", "zeroize", "zopfli", - "zstd 0.13.2", + "zstd", ] [[package]] @@ -11779,51 +11324,38 @@ dependencies = [ [[package]] name = "zstd" -version = "0.11.2+zstd.1.5.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", -] - -[[package]] -name = "zstd" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" -dependencies = [ - "zstd-safe 7.2.1", + "zstd-safe", ] [[package]] name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" +version = "7.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-safe" -version = "7.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" dependencies = [ "cc", "pkg-config", ] +[[package]] +name = "zune-core" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" + [[package]] name = "zune-inflate" version = "0.2.54" @@ -11834,60 +11366,69 @@ dependencies = [ ] [[package]] -name = "zvariant" -version = "5.1.0" +name = "zune-jpeg" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1200ee6ac32f1e5a312e455a949a4794855515d34f9909f4a3e082d14e1a56f" +checksum = "99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028" +dependencies = [ + "zune-core", +] + +[[package]] +name = "zvariant" +version = "5.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557e89d54880377a507c94cd5452f20e35d14325faf9d2958ebeadce0966c1b2" dependencies = [ "endi", "enumflags2", "serde", - "static_assertions", "url", - "winnow 0.6.20", + "winnow 0.7.10", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.1.0" +version = "5.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687e3b97fae6c9104fbbd36c73d27d149abf04fb874e2efbd84838763daa8916" +checksum = "757779842a0d242061d24c28be589ce392e45350dfb9186dfd7a042a2e19870c" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.101", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.0.2" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20d1d011a38f12360e5fcccceeff5e2c42a8eb7f27f0dcba97a0862ede05c9c6" +checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34" dependencies = [ "proc-macro2", "quote", "serde", "static_assertions", - "syn 2.0.90", - "winnow 0.6.20", + "syn 2.0.101", + "winnow 0.7.10", ] [[package]] name = "zxcvbn" -version = "2.2.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "103fa851fff70ea29af380e87c25c48ff7faac5c530c70bd0e65366d4e0c94e4" +checksum = "ad76e35b00ad53688d6b90c431cabe3cbf51f7a4a154739e04b63004ab1c736c" dependencies = [ + "chrono", "derive_builder", "fancy-regex", - "itertools 0.10.5", - "js-sys", + "itertools 0.13.0", "lazy_static", - "quick-error", "regex", "time", + "wasm-bindgen", + "web-sys", ] diff --git a/apps/app/Cargo.toml b/apps/app/Cargo.toml index 0309a8130..8a8de6d7e 100644 --- a/apps/app/Cargo.toml +++ b/apps/app/Cargo.toml @@ -39,7 +39,7 @@ uuid = { version = "1.1", features = ["serde", "v4"] } tracing = "0.1.37" tracing-error = "0.2.0" -dashmap = "6.0.1" +dashmap = "6.1.0" paste = "1.0.15" enumset = { version = "1.1", features = ["serde"] } diff --git a/apps/daedalus_client/Cargo.toml b/apps/daedalus_client/Cargo.toml index 6ddb4c5ba..c448733f2 100644 --- a/apps/daedalus_client/Cargo.toml +++ b/apps/daedalus_client/Cargo.toml @@ -2,7 +2,7 @@ name = "daedalus_client" version = "0.2.2" authors = ["Jai A "] -edition = "2021" +edition = "2024" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -15,25 +15,16 @@ serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde-xml-rs = "0.6.0" lazy_static = "1.4.0" -thiserror = "1.0" -reqwest = { version = "0.12.5", default-features = false, features = [ - "stream", - "json", - "rustls-tls-native-roots", -] } +thiserror = "2.0" +reqwest = { version = "0.12.15", default-features = false, features = ["stream", "json", "rustls-tls-native-roots"] } async_zip = { version = "0.0.17", features = ["full"] } chrono = { version = "0.4", features = ["serde"] } bytes = "1.6.0" -rust-s3 = { version = "0.33.0", default-features = false, features = [ - "fail-on-err", - "tags", - "tokio-rustls-tls", - "reqwest", -] } -dashmap = "5.5.3" +rust-s3 = { version = "0.35.1", default-features = false, features = ["fail-on-err", "tags", "tokio-rustls-tls"] } +dashmap = "6.1.0" sha1_smol = { version = "1.0.0", features = ["std"] } indexmap = { version = "2.2.6", features = ["serde"] } -itertools = "0.13.0" +itertools = "0.14.0" tracing-error = "0.2.0" tracing = "0.1" diff --git a/apps/daedalus_client/src/error.rs b/apps/daedalus_client/src/error.rs index 37992a142..586c7fc56 100644 --- a/apps/daedalus_client/src/error.rs +++ b/apps/daedalus_client/src/error.rs @@ -12,7 +12,9 @@ pub enum ErrorKind { SerdeJSON(#[from] serde_json::Error), #[error("Error while deserializing XML: {0}")] SerdeXML(#[from] serde_xml_rs::Error), - #[error("Failed to validate file checksum at url {url} with hash {hash} after {tries} tries")] + #[error( + "Failed to validate file checksum at url {url} with hash {hash} after {tries} tries" + )] ChecksumFailure { hash: String, url: String, diff --git a/apps/daedalus_client/src/fabric.rs b/apps/daedalus_client/src/fabric.rs index 2c394bc23..805d0e288 100644 --- a/apps/daedalus_client/src/fabric.rs +++ b/apps/daedalus_client/src/fabric.rs @@ -1,6 +1,6 @@ use crate::util::{download_file, fetch_json, format_url}; -use crate::{insert_mirrored_artifact, Error, MirrorArtifact, UploadFile}; -use daedalus::modded::{Manifest, PartialVersionInfo, DUMMY_REPLACE_STRING}; +use crate::{Error, MirrorArtifact, UploadFile, insert_mirrored_artifact}; +use daedalus::modded::{DUMMY_REPLACE_STRING, Manifest, PartialVersionInfo}; use dashmap::DashMap; use serde::Deserialize; use std::sync::Arc; @@ -169,10 +169,11 @@ async fn fetch( insert_mirrored_artifact( &new_name, None, - vec![lib - .url - .clone() - .unwrap_or_else(|| maven_url.to_string())], + vec![ + lib.url + .clone() + .unwrap_or_else(|| maven_url.to_string()), + ], false, mirror_artifacts, )?; diff --git a/apps/daedalus_client/src/forge.rs b/apps/daedalus_client/src/forge.rs index b04542d73..ab67ae914 100644 --- a/apps/daedalus_client/src/forge.rs +++ b/apps/daedalus_client/src/forge.rs @@ -1,5 +1,5 @@ use crate::util::{download_file, fetch_json, fetch_xml, format_url}; -use crate::{insert_mirrored_artifact, Error, MirrorArtifact, UploadFile}; +use crate::{Error, MirrorArtifact, UploadFile, insert_mirrored_artifact}; use chrono::{DateTime, Utc}; use daedalus::get_path_from_artifact; use daedalus::modded::PartialVersionInfo; @@ -7,8 +7,8 @@ use dashmap::DashMap; use futures::io::Cursor; use indexmap::IndexMap; use itertools::Itertools; -use serde::de::DeserializeOwned; use serde::Deserialize; +use serde::de::DeserializeOwned; use std::collections::HashMap; use std::sync::Arc; use tokio::sync::Semaphore; @@ -589,14 +589,16 @@ async fn fetch( mod_loader: &str, version: &ForgeVersion, ) -> Result { - let extract_file = - read_file(zip, &value[1..value.len()]) - .await? - .ok_or_else(|| { - crate::ErrorKind::InvalidInput(format!( + let extract_file = read_file( + zip, + &value[1..value.len()], + ) + .await? + .ok_or_else(|| { + crate::ErrorKind::InvalidInput(format!( "Unable reading data key {key} at path {value}", )) - })?; + })?; let file_name = value.split('/').next_back() .ok_or_else(|| { @@ -622,10 +624,7 @@ async fn fetch( let path = format!( "com.modrinth.daedalus:{}-installer-extracts:{}:{}@{}", - mod_loader, - version.raw, - file_name, - ext + mod_loader, version.raw, file_name, ext ); upload_files.insert( @@ -753,7 +752,8 @@ async fn fetch( .rev() .chunk_by(|x| x.game_version.clone()) .into_iter() - .map(|(game_version, loaders)| daedalus::modded::Version { + .map(|(game_version, loaders)| { + daedalus::modded::Version { id: game_version, stable: true, loaders: loaders @@ -766,6 +766,7 @@ async fn fetch( stable: false, }) .collect(), + } }) .collect(), }; diff --git a/apps/daedalus_client/src/main.rs b/apps/daedalus_client/src/main.rs index 870a55ec0..dcd610558 100644 --- a/apps/daedalus_client/src/main.rs +++ b/apps/daedalus_client/src/main.rs @@ -1,13 +1,13 @@ use crate::util::{ - format_url, upload_file_to_bucket, upload_url_to_bucket_mirrors, - REQWEST_CLIENT, + REQWEST_CLIENT, format_url, upload_file_to_bucket, + upload_url_to_bucket_mirrors, }; use daedalus::get_path_from_artifact; use dashmap::{DashMap, DashSet}; use std::sync::Arc; use tokio::sync::Semaphore; use tracing_error::ErrorLayer; -use tracing_subscriber::{fmt, prelude::*, EnvFilter}; +use tracing_subscriber::{EnvFilter, fmt, prelude::*}; mod error; mod fabric; diff --git a/apps/daedalus_client/src/minecraft.rs b/apps/daedalus_client/src/minecraft.rs index e98b12044..c2ee6e2d4 100644 --- a/apps/daedalus_client/src/minecraft.rs +++ b/apps/daedalus_client/src/minecraft.rs @@ -1,11 +1,11 @@ use crate::util::fetch_json; use crate::{ - util::download_file, util::format_url, util::sha1_async, Error, - MirrorArtifact, UploadFile, + Error, MirrorArtifact, UploadFile, util::download_file, util::format_url, + util::sha1_async, }; use daedalus::minecraft::{ - merge_partial_library, Library, PartialLibrary, VersionInfo, - VersionManifest, VERSION_MANIFEST_URL, + Library, PartialLibrary, VERSION_MANIFEST_URL, VersionInfo, + VersionManifest, merge_partial_library, }; use dashmap::DashMap; use serde::Deserialize; diff --git a/apps/daedalus_client/src/util.rs b/apps/daedalus_client/src/util.rs index 62b2b9ca5..a85fc3111 100644 --- a/apps/daedalus_client/src/util.rs +++ b/apps/daedalus_client/src/util.rs @@ -7,7 +7,7 @@ use std::sync::Arc; use tokio::sync::Semaphore; lazy_static::lazy_static! { - static ref BUCKET : Bucket = { + static ref BUCKET: Bucket = { let region = dotenvy::var("S3_REGION").unwrap(); let b = Bucket::new( &dotenvy::var("S3_BUCKET_NAME").unwrap(), @@ -31,9 +31,9 @@ lazy_static::lazy_static! { ).unwrap(); if region == "path-style" { - b.with_path_style() + *b.with_path_style() } else { - b + *b } }; } @@ -203,7 +203,7 @@ pub async fn download_file( inner: err, item: url.to_string(), } - .into()) + .into()); } } } diff --git a/apps/labrinth/Cargo.toml b/apps/labrinth/Cargo.toml index ce5e55844..b0aef9d31 100644 --- a/apps/labrinth/Cargo.toml +++ b/apps/labrinth/Cargo.toml @@ -2,7 +2,7 @@ name = "labrinth" version = "2.7.0" authors = ["geometrically "] -edition = "2018" +edition = "2024" license = "AGPL-3.0" # This seems redundant, but it's necessary for Docker to work @@ -11,17 +11,17 @@ name = "labrinth" path = "src/main.rs" [dependencies] -actix-web = "4.4.1" +actix-web = "4.10.2" actix-rt = "2.9.0" -actix-multipart = "0.6.1" -actix-cors = "0.7.0" +actix-multipart = "0.7.2" +actix-cors = "0.7.1" actix-ws = "0.3.0" actix-files = "0.6.5" -prometheus = "0.13.4" +prometheus = "0.13.4" # Locked on 0.13 until actix updates to 0.14 actix-web-prom = { version = "0.9.0", features = ["process"] } tracing = "0.1.41" -tracing-actix-web = "0.7.16" +tracing-actix-web = "0.7.18" console-subscriber = "0.4.1" tokio = { version = "1.35.1", features = ["sync", "rt-multi-thread"] } @@ -30,14 +30,15 @@ tokio-stream = "0.1.14" futures = "0.3.30" futures-util = "0.3.30" async-trait = "0.1.70" -dashmap = "5.4.0" +dashmap = "6.1.0" lazy_static = "1.4.0" -meilisearch-sdk = "0.27.1" -rust-s3 = "0.33.0" -reqwest = { version = "0.11.18", features = ["json", "multipart"] } -hyper = { version = "0.14", features = ["full"] } -hyper-tls = "0.5.0" +meilisearch-sdk = "0.28.0" +rust-s3 = { version = "0.35.1", default-features = false, features = ["fail-on-err", "tags", "tokio-rustls-tls"] } +reqwest = { version = "0.12.15", features = ["json", "multipart"] } +hyper = { version = "1.6", features = ["full"] } +hyper-tls = "0.6.0" +hyper-util = "0.1.11" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" @@ -46,34 +47,34 @@ chrono = { version = "0.4.26", features = ["serde"] } yaserde = "0.12.0" yaserde_derive = "0.12.0" -rand = "0.8.5" -rand_chacha = "0.3.1" +rand = "0.8.5" # Locked on 0.8 until argon2 updates to 0.9 +rand_chacha = "0.3.1" # Locked on 0.3 until we can update rand to 0.9 bytes = "1.4.0" -base64 = "0.21.7" -sha1 = { version = "0.6.1", features = ["std"] } -sha2 = "0.9.9" -hmac = "0.11.0" +base64 = "0.22.1" +sha1 = { version = "0.10.6", features = ["std"] } +sha2 = "0.10.9" +hmac = "0.12.1" argon2 = { version = "0.5.0", features = ["std"] } murmur2 = "0.1.0" bitflags = "2.4.0" hex = "0.4.3" -zxcvbn = "2.2.2" +zxcvbn = "3.1.0" totp-rs = { version = "5.0.2", features = ["gen_secret"] } url = "2.4.0" urlencoding = "2.1.2" -zip = "0.6.6" +zip = "2.6.1" -itertools = "0.12.0" +itertools = "0.14.0" -validator = { version = "0.16.1", features = ["derive", "phone"] } +validator = { version = "0.20.0", features = ["derive"] } regex = "1.10.2" censor = "0.3.0" spdx = { version = "0.10.3", features = ["text"] } dotenvy = "0.15.7" -thiserror = "1.0.56" +thiserror = "2.0.12" either = "1.13" sqlx = { version = "0.8.2", features = [ @@ -89,26 +90,19 @@ rust_decimal = { version = "1.33.1", features = [ "serde-with-float", "serde-with-str", ] } -redis = { version = "0.27.5", features = ["tokio-comp", "ahash", "r2d2"] } -deadpool-redis = "0.18.0" -clickhouse = { version = "0.11.2", features = ["uuid", "time"] } +redis = { version = "0.29.5", features = ["tokio-comp", "ahash", "r2d2"] } # Locked on 0.29 until deadpool-redis updates to 0.30 +deadpool-redis = "0.20.0" +clickhouse = { version = "0.13.2", features = ["uuid", "time"] } uuid = { version = "1.2.2", features = ["v4", "fast-rng", "serde"] } -maxminddb = "0.24.0" +maxminddb = "0.26.0" flate2 = "1.0.25" tar = "0.4.38" -sentry = { version = "0.34.0", default-features = false, features = [ - "backtrace", - "contexts", - "debug-images", - "panic", - "rustls", - "reqwest", -] } -sentry-actix = "0.34.0" +sentry = { version = "0.37.0", default-features = false, features = ["backtrace", "contexts", "debug-images", "panic", "rustls", "reqwest"] } +sentry-actix = "0.37.0" -image = "0.24.6" +image = "0.25.6" color-thief = "0.2.2" webp = "0.3.0" @@ -116,12 +110,12 @@ woothee = "0.13.0" lettre = "0.11.3" -derive-new = "0.6.0" +derive-new = "0.7.0" rust_iso3166 = "0.1.11" -async-stripe = { version = "0.39.1", features = ["runtime-tokio-hyper-rustls"] } +async-stripe = { version = "0.41.0", features = ["runtime-tokio-hyper-rustls"] } rusty-money = "0.4.1" -json-patch = "*" +json-patch = "4.0.0" ariadne = { path = "../../packages/ariadne" } diff --git a/apps/labrinth/src/auth/checks.rs b/apps/labrinth/src/auth/checks.rs index 34a612968..a4771e887 100644 --- a/apps/labrinth/src/auth/checks.rs +++ b/apps/labrinth/src/auth/checks.rs @@ -1,9 +1,9 @@ use crate::database; +use crate::database::models::Collection; use crate::database::models::project_item::QueryProject; use crate::database::models::version_item::QueryVersion; -use crate::database::models::Collection; use crate::database::redis::RedisPool; -use crate::database::{models, Project, Version}; +use crate::database::{Project, Version, models}; use crate::models::users::User; use crate::routes::ApiError; use itertools::Itertools; diff --git a/apps/labrinth/src/auth/email/mod.rs b/apps/labrinth/src/auth/email/mod.rs index 77cbea3f2..269578db3 100644 --- a/apps/labrinth/src/auth/email/mod.rs +++ b/apps/labrinth/src/auth/email/mod.rs @@ -1,5 +1,5 @@ -use lettre::message::header::ContentType; use lettre::message::Mailbox; +use lettre::message::header::ContentType; use lettre::transport::smtp::authentication::Credentials; use lettre::transport::smtp::client::{Tls, TlsParameters}; use lettre::{Address, Message, SmtpTransport, Transport}; diff --git a/apps/labrinth/src/auth/mod.rs b/apps/labrinth/src/auth/mod.rs index 9b969caa5..e2dc16ff8 100644 --- a/apps/labrinth/src/auth/mod.rs +++ b/apps/labrinth/src/auth/mod.rs @@ -15,8 +15,8 @@ pub use validate::{check_is_moderator_from_headers, get_user_from_headers}; use crate::file_hosting::FileHostingError; use crate::models::error::ApiError; -use actix_web::http::StatusCode; use actix_web::HttpResponse; +use actix_web::http::StatusCode; use thiserror::Error; #[derive(Error, Debug)] diff --git a/apps/labrinth/src/auth/oauth/errors.rs b/apps/labrinth/src/auth/oauth/errors.rs index 617b11a85..ef3ff68a7 100644 --- a/apps/labrinth/src/auth/oauth/errors.rs +++ b/apps/labrinth/src/auth/oauth/errors.rs @@ -1,8 +1,8 @@ use super::ValidatedRedirectUri; use crate::auth::AuthenticationError; use crate::models::error::ApiError; -use actix_web::http::{header::LOCATION, StatusCode}; use actix_web::HttpResponse; +use actix_web::http::{StatusCode, header::LOCATION}; use ariadne::ids::DecodingError; #[derive(thiserror::Error, Debug)] @@ -122,7 +122,9 @@ pub enum OAuthErrorType { "The provided redirect URI did not match any configured in the client" )] RedirectUriNotConfigured(String), - #[error("The provided scope was malformed or did not correspond to known scopes ({0})")] + #[error( + "The provided scope was malformed or did not correspond to known scopes ({0})" + )] FailedScopeParse(bitflags::parser::ParseError), #[error( "The provided scope requested scopes broader than the developer app is configured with" @@ -138,9 +140,13 @@ pub enum OAuthErrorType { ClientAuthenticationFailed, #[error("The provided authorization grant code was invalid")] InvalidAuthCode, - #[error("The provided client id did not match the id this authorization code was granted to")] + #[error( + "The provided client id did not match the id this authorization code was granted to" + )] UnauthorizedClient, - #[error("The provided redirect URI did not exactly match the uri originally provided when this flow began")] + #[error( + "The provided redirect URI did not exactly match the uri originally provided when this flow began" + )] RedirectUriChanged(Option), #[error("The provided grant type ({0}) must be \"authorization_code\"")] OnlySupportsAuthorizationCodeGrant(String), diff --git a/apps/labrinth/src/auth/oauth/mod.rs b/apps/labrinth/src/auth/oauth/mod.rs index 48773dd0d..c09e10f2c 100644 --- a/apps/labrinth/src/auth/oauth/mod.rs +++ b/apps/labrinth/src/auth/oauth/mod.rs @@ -6,22 +6,21 @@ use crate::database::models::oauth_client_authorization_item::OAuthClientAuthori use crate::database::models::oauth_client_item::OAuthClient as DBOAuthClient; use crate::database::models::oauth_token_item::OAuthAccessToken; use crate::database::models::{ - generate_oauth_access_token_id, generate_oauth_client_authorization_id, - OAuthClientAuthorizationId, + OAuthClientAuthorizationId, generate_oauth_access_token_id, + generate_oauth_client_authorization_id, }; use crate::database::redis::RedisPool; use crate::models; use crate::models::ids::OAuthClientId; use crate::models::pats::Scopes; use crate::queue::session::AuthQueue; -use actix_web::http::header::LOCATION; +use actix_web::http::header::{CACHE_CONTROL, LOCATION, PRAGMA}; use actix_web::web::{Data, Query, ServiceConfig}; -use actix_web::{get, post, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, get, post, web}; use chrono::Duration; use rand::distributions::Alphanumeric; use rand::{Rng, SeedableRng}; use rand_chacha::ChaCha20Rng; -use reqwest::header::{CACHE_CONTROL, PRAGMA}; use serde::{Deserialize, Serialize}; use sqlx::postgres::PgPool; diff --git a/apps/labrinth/src/auth/validate.rs b/apps/labrinth/src/auth/validate.rs index 3f94a9a4d..e67ba34cb 100644 --- a/apps/labrinth/src/auth/validate.rs +++ b/apps/labrinth/src/auth/validate.rs @@ -6,8 +6,8 @@ use crate::models::pats::Scopes; use crate::models::users::User; use crate::queue::session::AuthQueue; use crate::routes::internal::session::get_session_metadata; -use actix_web::http::header::{HeaderValue, AUTHORIZATION}; use actix_web::HttpRequest; +use actix_web::http::header::{AUTHORIZATION, HeaderValue}; use chrono::Utc; pub async fn get_user_from_headers<'a, E>( diff --git a/apps/labrinth/src/clickhouse/mod.rs b/apps/labrinth/src/clickhouse/mod.rs index c896a1266..fe1ffe6e7 100644 --- a/apps/labrinth/src/clickhouse/mod.rs +++ b/apps/labrinth/src/clickhouse/mod.rs @@ -1,5 +1,6 @@ -use hyper::client::HttpConnector; -use hyper_tls::{native_tls, HttpsConnector}; +use hyper_tls::{HttpsConnector, native_tls}; +use hyper_util::client::legacy::connect::HttpConnector; +use hyper_util::rt::TokioExecutor; mod fetch; @@ -22,7 +23,8 @@ pub async fn init_client_with_database( let https_connector = HttpsConnector::from((http_connector, tls_connector)); let hyper_client = - hyper::client::Client::builder().build(https_connector); + hyper_util::client::legacy::Client::builder(TokioExecutor::new()) + .build(https_connector); clickhouse::Client::with_http_client(hyper_client) .with_url(dotenvy::var("CLICKHOUSE_URL").unwrap()) diff --git a/apps/labrinth/src/database/models/categories.rs b/apps/labrinth/src/database/models/categories.rs index 90abf1adb..05666793c 100644 --- a/apps/labrinth/src/database/models/categories.rs +++ b/apps/labrinth/src/database/models/categories.rs @@ -2,8 +2,8 @@ use std::collections::HashMap; use crate::database::redis::RedisPool; -use super::ids::*; use super::DatabaseError; +use super::ids::*; use futures::TryStreamExt; use serde::{Deserialize, Serialize}; diff --git a/apps/labrinth/src/database/models/flow_item.rs b/apps/labrinth/src/database/models/flow_item.rs index a6ba026c2..4faa6d40e 100644 --- a/apps/labrinth/src/database/models/flow_item.rs +++ b/apps/labrinth/src/database/models/flow_item.rs @@ -1,14 +1,14 @@ use super::ids::*; -use crate::auth::oauth::uris::OAuthRedirectUris; use crate::auth::AuthProvider; +use crate::auth::oauth::uris::OAuthRedirectUris; use crate::database::models::DatabaseError; use crate::database::redis::RedisPool; use crate::models::pats::Scopes; use chrono::Duration; -use rand::distributions::Alphanumeric; use rand::Rng; -use rand_chacha::rand_core::SeedableRng; +use rand::distributions::Alphanumeric; use rand_chacha::ChaCha20Rng; +use rand_chacha::rand_core::SeedableRng; use serde::{Deserialize, Serialize}; const FLOWS_NAMESPACE: &str = "flows"; diff --git a/apps/labrinth/src/database/models/legacy_loader_fields.rs b/apps/labrinth/src/database/models/legacy_loader_fields.rs index b7fed311a..b2f8a5b2c 100644 --- a/apps/labrinth/src/database/models/legacy_loader_fields.rs +++ b/apps/labrinth/src/database/models/legacy_loader_fields.rs @@ -12,10 +12,10 @@ use serde_json::json; use crate::database::redis::RedisPool; use super::{ + DatabaseError, LoaderFieldEnumValueId, loader_fields::{ LoaderFieldEnum, LoaderFieldEnumValue, VersionField, VersionFieldValue, }, - DatabaseError, LoaderFieldEnumValueId, }; #[derive(Clone, Serialize, Deserialize, Debug)] diff --git a/apps/labrinth/src/database/models/loader_fields.rs b/apps/labrinth/src/database/models/loader_fields.rs index a7b0132a3..38f49b0ff 100644 --- a/apps/labrinth/src/database/models/loader_fields.rs +++ b/apps/labrinth/src/database/models/loader_fields.rs @@ -1,8 +1,8 @@ use std::collections::HashMap; use std::hash::Hasher; -use super::ids::*; use super::DatabaseError; +use super::ids::*; use crate::database::redis::RedisPool; use chrono::DateTime; use chrono::Utc; @@ -1016,8 +1016,8 @@ impl VersionFieldValue { enum_values.push(ev.clone()); } else { return Err(format!( - "Provided value '{av}' is not a valid variant for {field_name}" - )); + "Provided value '{av}' is not a valid variant for {field_name}" + )); } } enum_values diff --git a/apps/labrinth/src/database/models/organization_item.rs b/apps/labrinth/src/database/models/organization_item.rs index 32c779f56..a715beef0 100644 --- a/apps/labrinth/src/database/models/organization_item.rs +++ b/apps/labrinth/src/database/models/organization_item.rs @@ -5,7 +5,7 @@ use futures::TryStreamExt; use std::fmt::{Debug, Display}; use std::hash::Hash; -use super::{ids::*, TeamMember}; +use super::{TeamMember, ids::*}; use serde::{Deserialize, Serialize}; const ORGANIZATIONS_NAMESPACE: &str = "organizations"; diff --git a/apps/labrinth/src/database/models/product_item.rs b/apps/labrinth/src/database/models/product_item.rs index eaca8b7df..b9e9505d5 100644 --- a/apps/labrinth/src/database/models/product_item.rs +++ b/apps/labrinth/src/database/models/product_item.rs @@ -1,5 +1,5 @@ use crate::database::models::{ - product_item, DatabaseError, ProductId, ProductPriceId, + DatabaseError, ProductId, ProductPriceId, product_item, }; use crate::database::redis::RedisPool; use crate::models::billing::{Price, ProductMetadata}; diff --git a/apps/labrinth/src/database/models/project_item.rs b/apps/labrinth/src/database/models/project_item.rs index e2ca25221..c196e32ab 100644 --- a/apps/labrinth/src/database/models/project_item.rs +++ b/apps/labrinth/src/database/models/project_item.rs @@ -2,7 +2,7 @@ use super::loader_fields::{ QueryLoaderField, QueryLoaderFieldEnumValue, QueryVersionField, VersionField, }; -use super::{ids::*, User}; +use super::{User, ids::*}; use crate::database::models; use crate::database::models::DatabaseError; use crate::database::redis::RedisPool; diff --git a/apps/labrinth/src/database/models/team_item.rs b/apps/labrinth/src/database/models/team_item.rs index d343596cf..caef885e0 100644 --- a/apps/labrinth/src/database/models/team_item.rs +++ b/apps/labrinth/src/database/models/team_item.rs @@ -1,4 +1,4 @@ -use super::{ids::*, Organization, Project}; +use super::{Organization, Project, ids::*}; use crate::{ database::redis::RedisPool, models::teams::{OrganizationPermissions, ProjectPermissions}, diff --git a/apps/labrinth/src/database/models/version_item.rs b/apps/labrinth/src/database/models/version_item.rs index ba41c969f..c22b3e2d3 100644 --- a/apps/labrinth/src/database/models/version_item.rs +++ b/apps/labrinth/src/database/models/version_item.rs @@ -1,6 +1,6 @@ +use super::DatabaseError; use super::ids::*; use super::loader_fields::VersionField; -use super::DatabaseError; use crate::database::models::loader_fields::{ QueryLoaderField, QueryLoaderFieldEnumValue, QueryVersionField, }; diff --git a/apps/labrinth/src/database/redis.rs b/apps/labrinth/src/database/redis.rs index ee0268fd2..913701ed1 100644 --- a/apps/labrinth/src/database/redis.rs +++ b/apps/labrinth/src/database/redis.rs @@ -4,7 +4,7 @@ use chrono::{TimeZone, Utc}; use dashmap::DashMap; use deadpool_redis::{Config, Runtime}; use prometheus::{IntGauge, Registry}; -use redis::{cmd, Cmd, ExistenceCheck, SetExpiry, SetOptions}; +use redis::{Cmd, ExistenceCheck, SetExpiry, SetOptions, cmd}; use serde::de::DeserializeOwned; use serde::{Deserialize, Serialize}; use std::collections::HashMap; diff --git a/apps/labrinth/src/file_hosting/backblaze/upload.rs b/apps/labrinth/src/file_hosting/backblaze/upload.rs index b43aa1b57..44bed4697 100644 --- a/apps/labrinth/src/file_hosting/backblaze/upload.rs +++ b/apps/labrinth/src/file_hosting/backblaze/upload.rs @@ -1,7 +1,9 @@ use super::authorization::UploadUrlData; use crate::file_hosting::FileHostingError; use bytes::Bytes; +use hex::ToHex; use serde::{Deserialize, Serialize}; +use sha1::Digest; #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "camelCase")] @@ -35,7 +37,7 @@ pub async fn upload_file( .header(reqwest::header::CONTENT_LENGTH, file_bytes.len()) .header( "X-Bz-Content-Sha1", - sha1::Sha1::from(&file_bytes).hexdigest(), + sha1::Sha1::digest(&file_bytes).encode_hex::(), ) .body(file_bytes) .send() diff --git a/apps/labrinth/src/file_hosting/mock.rs b/apps/labrinth/src/file_hosting/mock.rs index f520bd11a..aef633e58 100644 --- a/apps/labrinth/src/file_hosting/mock.rs +++ b/apps/labrinth/src/file_hosting/mock.rs @@ -2,6 +2,7 @@ use super::{DeleteFileData, FileHost, FileHostingError, UploadFileData}; use async_trait::async_trait; use bytes::Bytes; use chrono::Utc; +use hex::ToHex; use sha2::Digest; #[derive(Default)] @@ -27,7 +28,7 @@ impl FileHost for MockHost { std::fs::create_dir_all( path.parent().ok_or(FileHostingError::InvalidFilename)?, )?; - let content_sha1 = sha1::Sha1::from(&file_bytes).hexdigest(); + let content_sha1 = sha1::Sha1::digest(&file_bytes).encode_hex(); let content_sha512 = format!("{:x}", sha2::Sha512::digest(&file_bytes)); std::fs::write(path, &*file_bytes)?; diff --git a/apps/labrinth/src/file_hosting/s3_host.rs b/apps/labrinth/src/file_hosting/s3_host.rs index c48937811..369ee52d6 100644 --- a/apps/labrinth/src/file_hosting/s3_host.rs +++ b/apps/labrinth/src/file_hosting/s3_host.rs @@ -4,6 +4,7 @@ use crate::file_hosting::{ use async_trait::async_trait; use bytes::Bytes; use chrono::Utc; +use hex::ToHex; use s3::bucket::Bucket; use s3::creds::Credentials; use s3::region::Region; @@ -52,7 +53,7 @@ impl S3Host { ) })?; - Ok(S3Host { bucket }) + Ok(S3Host { bucket: *bucket }) } } @@ -64,7 +65,7 @@ impl FileHost for S3Host { file_name: &str, file_bytes: Bytes, ) -> Result { - let content_sha1 = sha1::Sha1::from(&file_bytes).hexdigest(); + let content_sha1 = sha1::Sha1::digest(&file_bytes).encode_hex(); let content_sha512 = format!("{:x}", sha2::Sha512::digest(&file_bytes)); self.bucket diff --git a/apps/labrinth/src/lib.rs b/apps/labrinth/src/lib.rs index 562e70267..66007a9a2 100644 --- a/apps/labrinth/src/lib.rs +++ b/apps/labrinth/src/lib.rs @@ -374,7 +374,10 @@ pub fn check_env_vars() -> bool { failed |= check_var::("MOCK_FILE_PATH"); } Some(backend) => { - warn!("Variable `STORAGE_BACKEND` contains an invalid value: {}. Expected \"backblaze\", \"s3\", or \"local\".", backend); + warn!( + "Variable `STORAGE_BACKEND` contains an invalid value: {}. Expected \"backblaze\", \"s3\", or \"local\".", + backend + ); failed |= true; } _ => { @@ -387,12 +390,16 @@ pub fn check_env_vars() -> bool { failed |= check_var::("VERSION_INDEX_INTERVAL"); if parse_strings_from_var("WHITELISTED_MODPACK_DOMAINS").is_none() { - warn!("Variable `WHITELISTED_MODPACK_DOMAINS` missing in dotenv or not a json array of strings"); + warn!( + "Variable `WHITELISTED_MODPACK_DOMAINS` missing in dotenv or not a json array of strings" + ); failed |= true; } if parse_strings_from_var("ALLOWED_CALLBACK_URLS").is_none() { - warn!("Variable `ALLOWED_CALLBACK_URLS` missing in dotenv or not a json array of strings"); + warn!( + "Variable `ALLOWED_CALLBACK_URLS` missing in dotenv or not a json array of strings" + ); failed |= true; } diff --git a/apps/labrinth/src/main.rs b/apps/labrinth/src/main.rs index e3fc5bed4..d04cc6b2f 100644 --- a/apps/labrinth/src/main.rs +++ b/apps/labrinth/src/main.rs @@ -17,7 +17,7 @@ use tracing_actix_web::TracingLogger; static ALLOC: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc; #[allow(non_upper_case_globals)] -#[export_name = "malloc_conf"] +#[unsafe(export_name = "malloc_conf")] pub static malloc_conf: &[u8] = b"prof:true,prof_active:true,lg_prof_sample:19\0"; @@ -63,7 +63,9 @@ async fn main() -> std::io::Result<()> { }); if sentry.is_enabled() { info!("Enabled Sentry integration"); - std::env::set_var("RUST_BACKTRACE", "1"); + unsafe { + std::env::set_var("RUST_BACKTRACE", "1"); + } } if args.run_background_task.is_none() { diff --git a/apps/labrinth/src/models/v2/projects.rs b/apps/labrinth/src/models/v2/projects.rs index a96d51707..47f5b47c2 100644 --- a/apps/labrinth/src/models/v2/projects.rs +++ b/apps/labrinth/src/models/v2/projects.rs @@ -5,7 +5,7 @@ use std::collections::HashMap; use super::super::ids::OrganizationId; use super::super::teams::TeamId; use super::super::users::UserId; -use crate::database::models::{version_item, DatabaseError}; +use crate::database::models::{DatabaseError, version_item}; use crate::database::redis::RedisPool; use crate::models::ids::{ProjectId, VersionId}; use crate::models::projects::{ diff --git a/apps/labrinth/src/models/v3/ids.rs b/apps/labrinth/src/models/v3/ids.rs index 033bfdc03..5fe56f339 100644 --- a/apps/labrinth/src/models/v3/ids.rs +++ b/apps/labrinth/src/models/v3/ids.rs @@ -15,8 +15,8 @@ pub use super::threads::ThreadMessageId; pub use crate::models::billing::{ ChargeId, ProductId, ProductPriceId, UserSubscriptionId, }; -use ariadne::ids::base62_id_impl; pub use ariadne::ids::Base62Id; +use ariadne::ids::base62_id_impl; pub use ariadne::users::UserId; base62_id_impl!(ProjectId, ProjectId); diff --git a/apps/labrinth/src/models/v3/notifications.rs b/apps/labrinth/src/models/v3/notifications.rs index b82cc60f2..46c11df0c 100644 --- a/apps/labrinth/src/models/v3/notifications.rs +++ b/apps/labrinth/src/models/v3/notifications.rs @@ -92,18 +92,26 @@ impl From for Notification { .. } => ( "You have been invited to join a team!".to_string(), - format!("An invite has been sent for you to be {role} of a team"), + format!( + "An invite has been sent for you to be {role} of a team" + ), format!("/project/{project_id}"), vec![ NotificationAction { name: "Accept".to_string(), - action_route: ("POST".to_string(), format!("team/{team_id}/join")), + action_route: ( + "POST".to_string(), + format!("team/{team_id}/join"), + ), }, NotificationAction { name: "Deny".to_string(), action_route: ( "DELETE".to_string(), - format!("team/{team_id}/members/{}", UserId::from(notif.user_id)), + format!( + "team/{team_id}/members/{}", + UserId::from(notif.user_id) + ), ), }, ], @@ -114,7 +122,8 @@ impl From for Notification { team_id, .. } => ( - "You have been invited to join an organization!".to_string(), + "You have been invited to join an organization!" + .to_string(), format!( "An invite has been sent for you to be {role} of an organization" ), @@ -122,7 +131,10 @@ impl From for Notification { vec![ NotificationAction { name: "Accept".to_string(), - action_route: ("POST".to_string(), format!("team/{team_id}/join")), + action_route: ( + "POST".to_string(), + format!("team/{team_id}/join"), + ), }, NotificationAction { name: "Deny".to_string(), diff --git a/apps/labrinth/src/models/v3/pack.rs b/apps/labrinth/src/models/v3/pack.rs index 63fc73b22..ae57cea5d 100644 --- a/apps/labrinth/src/models/v3/pack.rs +++ b/apps/labrinth/src/models/v3/pack.rs @@ -15,7 +15,7 @@ pub struct PackFormat { pub name: String, #[validate(length(max = 2048))] pub summary: Option, - #[validate] + #[validate(nested)] pub files: Vec, pub dependencies: std::collections::HashMap, } diff --git a/apps/labrinth/src/queue/maxmind.rs b/apps/labrinth/src/queue/maxmind.rs index 30a83d1ec..1e65a5256 100644 --- a/apps/labrinth/src/queue/maxmind.rs +++ b/apps/labrinth/src/queue/maxmind.rs @@ -61,7 +61,9 @@ impl MaxMindIndexer { } if should_panic { - panic!("Unable to download maxmind database- did you get a license key?") + panic!( + "Unable to download maxmind database- did you get a license key?" + ) } else { warn!("Unable to download maxmind database."); @@ -73,9 +75,13 @@ impl MaxMindIndexer { let maxmind = self.reader.read().await; if let Some(ref maxmind) = *maxmind { - maxmind.lookup::(ip.into()).ok().and_then(|x| { - x.country.and_then(|x| x.iso_code.map(|x| x.to_string())) - }) + maxmind + .lookup::(ip.into()) + .ok() + .flatten() + .and_then(|x| { + x.country.and_then(|x| x.iso_code.map(|x| x.to_string())) + }) } else { None } diff --git a/apps/labrinth/src/queue/moderation.rs b/apps/labrinth/src/queue/moderation.rs index 383047d57..2cccc774f 100644 --- a/apps/labrinth/src/queue/moderation.rs +++ b/apps/labrinth/src/queue/moderation.rs @@ -10,8 +10,10 @@ use crate::models::projects::ProjectStatus; use crate::models::threads::MessageBody; use crate::routes::ApiError; use dashmap::DashSet; +use hex::ToHex; use itertools::Itertools; use serde::{Deserialize, Serialize}; +use sha1::Digest; use sqlx::PgPool; use std::collections::HashMap; use std::io::{Cursor, Read}; @@ -329,7 +331,7 @@ impl AutomatedModerationQueue { let mut contents = Vec::new(); file.read_to_end(&mut contents)?; - let hash = sha1::Sha1::from(&contents).hexdigest(); + let hash = sha1::Sha1::digest(&contents).encode_hex::(); let murmur = hash_flame_murmur32(contents); hashes.push(( diff --git a/apps/labrinth/src/queue/payouts.rs b/apps/labrinth/src/queue/payouts.rs index 38fd54a16..d4659e9b2 100644 --- a/apps/labrinth/src/queue/payouts.rs +++ b/apps/labrinth/src/queue/payouts.rs @@ -13,8 +13,8 @@ use rust_decimal::Decimal; use serde::de::DeserializeOwned; use serde::{Deserialize, Serialize}; use serde_json::Value; -use sqlx::postgres::PgQueryResult; use sqlx::PgPool; +use sqlx::postgres::PgQueryResult; use std::collections::HashMap; use tokio::sync::RwLock; diff --git a/apps/labrinth/src/routes/analytics.rs b/apps/labrinth/src/routes/analytics.rs index c8709d9e0..8febe2c4a 100644 --- a/apps/labrinth/src/routes/analytics.rs +++ b/apps/labrinth/src/routes/analytics.rs @@ -8,8 +8,8 @@ use crate::queue::session::AuthQueue; use crate::routes::ApiError; use crate::util::date::get_current_tenths_of_ms; use crate::util::env::parse_strings_from_var; -use actix_web::{post, web}; use actix_web::{HttpRequest, HttpResponse}; +use actix_web::{post, web}; use serde::Deserialize; use sqlx::PgPool; use std::collections::HashMap; diff --git a/apps/labrinth/src/routes/debug/mod.rs b/apps/labrinth/src/routes/debug/mod.rs index 163909f05..380128c5d 100644 --- a/apps/labrinth/src/routes/debug/mod.rs +++ b/apps/labrinth/src/routes/debug/mod.rs @@ -1,7 +1,7 @@ use crate::routes::ApiError; use crate::util::cors::default_cors; use crate::util::guards::admin_key_guard; -use actix_web::{get, HttpResponse}; +use actix_web::{HttpResponse, get}; use prometheus::{IntGauge, Registry}; use std::time::Duration; diff --git a/apps/labrinth/src/routes/index.rs b/apps/labrinth/src/routes/index.rs index ba937d7f3..cd0e48aa7 100644 --- a/apps/labrinth/src/routes/index.rs +++ b/apps/labrinth/src/routes/index.rs @@ -1,4 +1,4 @@ -use actix_web::{get, HttpResponse}; +use actix_web::{HttpResponse, get}; use serde_json::json; #[get("/")] diff --git a/apps/labrinth/src/routes/internal/admin.rs b/apps/labrinth/src/routes/internal/admin.rs index 07f03ce8d..531a258d6 100644 --- a/apps/labrinth/src/routes/internal/admin.rs +++ b/apps/labrinth/src/routes/internal/admin.rs @@ -14,7 +14,7 @@ use crate::routes::ApiError; use crate::search::SearchConfig; use crate::util::date::get_current_tenths_of_ms; use crate::util::guards::admin_key_guard; -use actix_web::{get, patch, post, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, get, patch, post, web}; use serde::Deserialize; use sqlx::PgPool; use std::collections::HashMap; @@ -237,7 +237,10 @@ pub async fn delphi_result_ingest( .await .ok(); - let mut thread_header = format!("Suspicious traces found at [version {}](https://modrinth.com/project/{}/version/{})", body.version_id, body.project_id, body.version_id); + let mut thread_header = format!( + "Suspicious traces found at [version {}](https://modrinth.com/project/{}/version/{})", + body.version_id, body.project_id, body.version_id + ); for (issue, trace) in &body.issues { for path in trace.keys() { diff --git a/apps/labrinth/src/routes/internal/billing.rs b/apps/labrinth/src/routes/internal/billing.rs index 8eefe0f26..298744ae1 100644 --- a/apps/labrinth/src/routes/internal/billing.rs +++ b/apps/labrinth/src/routes/internal/billing.rs @@ -14,11 +14,11 @@ use crate::models::pats::Scopes; use crate::models::users::Badges; use crate::queue::session::AuthQueue; use crate::routes::ApiError; -use actix_web::{delete, get, patch, post, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, delete, get, patch, post, web}; use ariadne::ids::base62_impl::{parse_base62, to_base62}; use chrono::Utc; -use rust_decimal::prelude::ToPrimitive; use rust_decimal::Decimal; +use rust_decimal::prelude::ToPrimitive; use serde::Serialize; use serde_with::serde_derive::Deserialize; use sqlx::{PgPool, Postgres, Transaction}; @@ -1992,9 +1992,18 @@ pub async fn stripe_webhook( let _ = send_email( email, "Payment Failed for Modrinth", - &format!("Our attempt to collect payment for {money} from the payment card on file was unsuccessful."), + &format!( + "Our attempt to collect payment for {money} from the payment card on file was unsuccessful." + ), "Please visit the following link below to update your payment method or contact your card provider. If the button does not work, you can copy the link and paste it into your browser.", - Some(("Update billing settings", &format!("{}/{}", dotenvy::var("SITE_URL")?, dotenvy::var("SITE_BILLING_PATH")?))), + Some(( + "Update billing settings", + &format!( + "{}/{}", + dotenvy::var("SITE_URL")?, + dotenvy::var("SITE_BILLING_PATH")? + ), + )), ); } diff --git a/apps/labrinth/src/routes/internal/flows.rs b/apps/labrinth/src/routes/internal/flows.rs index 97c7437d7..ff5018c81 100644 --- a/apps/labrinth/src/routes/internal/flows.rs +++ b/apps/labrinth/src/routes/internal/flows.rs @@ -1,29 +1,29 @@ use crate::auth::email::send_email; use crate::auth::validate::get_user_record_from_bearer_token; -use crate::auth::{get_user_from_headers, AuthProvider, AuthenticationError}; +use crate::auth::{AuthProvider, AuthenticationError, get_user_from_headers}; use crate::database::models::flow_item::Flow; use crate::database::redis::RedisPool; use crate::file_hosting::FileHost; use crate::models::pats::Scopes; use crate::models::users::{Badges, Role}; use crate::queue::session::AuthQueue; -use crate::routes::internal::session::issue_session; use crate::routes::ApiError; +use crate::routes::internal::session::issue_session; use crate::util::captcha::check_hcaptcha; use crate::util::env::parse_strings_from_var; use crate::util::ext::get_image_ext; use crate::util::img::upload_image_optimized; -use crate::util::validate::{validation_errors_to_string, RE_URL_SAFE}; -use actix_web::web::{scope, Data, Query, ServiceConfig}; -use actix_web::{delete, get, patch, post, web, HttpRequest, HttpResponse}; +use crate::util::validate::{RE_URL_SAFE, validation_errors_to_string}; +use actix_web::web::{Data, Query, ServiceConfig, scope}; +use actix_web::{HttpRequest, HttpResponse, delete, get, patch, post, web}; use argon2::password_hash::SaltString; use argon2::{Argon2, PasswordHash, PasswordHasher, PasswordVerifier}; use ariadne::ids::base62_impl::{parse_base62, to_base62}; use ariadne::ids::random_base62_rng; use base64::Engine; use chrono::{Duration, Utc}; -use rand_chacha::rand_core::SeedableRng; use rand_chacha::ChaCha20Rng; +use rand_chacha::rand_core::SeedableRng; use reqwest::header::AUTHORIZATION; use serde::{Deserialize, Serialize}; use sqlx::postgres::PgPool; @@ -31,6 +31,7 @@ use std::collections::HashMap; use std::str::FromStr; use std::sync::Arc; use validator::Validate; +use zxcvbn::Score; pub fn config(cfg: &mut ServiceConfig) { cfg.service( @@ -261,12 +262,16 @@ impl AuthProvider { AuthProvider::Discord => { let client_id = dotenvy::var("DISCORD_CLIENT_ID")?; - format!("https://discord.com/api/oauth2/authorize?client_id={client_id}&state={state}&response_type=code&scope=identify%20email&redirect_uri={redirect_uri}") + format!( + "https://discord.com/api/oauth2/authorize?client_id={client_id}&state={state}&response_type=code&scope=identify%20email&redirect_uri={redirect_uri}" + ) } AuthProvider::Microsoft => { let client_id = dotenvy::var("MICROSOFT_CLIENT_ID")?; - format!("https://login.live.com/oauth20_authorize.srf?client_id={client_id}&response_type=code&scope=user.read&state={state}&prompt=select_account&redirect_uri={redirect_uri}") + format!( + "https://login.live.com/oauth20_authorize.srf?client_id={client_id}&response_type=code&scope=user.read&state={state}&prompt=select_account&redirect_uri={redirect_uri}" + ) } AuthProvider::GitLab => { let client_id = dotenvy::var("GITLAB_CLIENT_ID")?; @@ -282,7 +287,9 @@ impl AuthProvider { "https://accounts.google.com/o/oauth2/v2/auth?client_id={}&state={}&scope={}&response_type=code&redirect_uri={}", client_id, state, - urlencoding::encode("https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"), + urlencoding::encode( + "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile" + ), redirect_uri, ) } @@ -291,7 +298,9 @@ impl AuthProvider { "https://steamcommunity.com/openid/login?openid.ns={}&openid.mode={}&openid.return_to={}{}{}&openid.realm={}&openid.identity={}&openid.claimed_id={}", urlencoding::encode("http://specs.openid.net/auth/2.0"), "checkid_setup", - redirect_uri, urlencoding::encode("?state="), state, + redirect_uri, + urlencoding::encode("?state="), + state, self_addr, "http://specs.openid.net/auth/2.0/identifier_select", "http://specs.openid.net/auth/2.0/identifier_select", @@ -309,7 +318,9 @@ impl AuthProvider { format!( "https://{auth_url}/connect?flowEntry=static&client_id={client_id}&scope={}&response_type=code&redirect_uri={redirect_uri}&state={state}", - urlencoding::encode("openid email address https://uri.paypal.com/services/paypalattributes"), + urlencoding::encode( + "openid email address https://uri.paypal.com/services/paypalattributes" + ), ) } }) @@ -1259,7 +1270,10 @@ pub async fn delete_auth_provider( send_email( email, "Authentication method removed", - &format!("When logging into Modrinth, you can no longer log in using the {} authentication provider.", delete_provider.provider.as_str()), + &format!( + "When logging into Modrinth, you can no longer log in using the {} authentication provider.", + delete_provider.provider.as_str() + ), "If you did not make this change, please contact us immediately through our support channels on Discord or via email (support@modrinth.com).", None, )?; @@ -1304,7 +1318,7 @@ pub async fn sign_up_sendy(email: &str) -> Result<(), AuthenticationError> { #[derive(Deserialize, Validate)] pub struct NewAccount { - #[validate(length(min = 1, max = 39), regex = "RE_URL_SAFE")] + #[validate(length(min = 1, max = 39), regex(path = *RE_URL_SAFE))] pub username: String, #[validate(length(min = 8, max = 256))] pub password: String, @@ -1349,13 +1363,11 @@ pub async fn create_account_with_password( let score = zxcvbn::zxcvbn( &new_account.password, &[&new_account.username, &new_account.email], - )?; + ); - if score.score() < 3 { + if score.score() < Score::Three { return Err(ApiError::InvalidInput( - if let Some(feedback) = - score.feedback().clone().and_then(|x| x.warning()) - { + if let Some(feedback) = score.feedback().and_then(|x| x.warning()) { format!("Password too weak: {feedback}") } else { "Specified password is too weak! Please improve its strength." @@ -1928,7 +1940,15 @@ pub async fn reset_password_begin( "Reset your password", "Please visit the following link below to reset your password. If the button does not work, you can copy the link and paste it into your browser.", "If you did not request for your password to be reset, you can safely ignore this email.", - Some(("Reset password", &format!("{}/{}?flow={}", dotenvy::var("SITE_URL")?, dotenvy::var("SITE_RESET_PASSWORD_PATH")?, flow))), + Some(( + "Reset password", + &format!( + "{}/{}?flow={}", + dotenvy::var("SITE_URL")?, + dotenvy::var("SITE_RESET_PASSWORD_PATH")?, + flow + ), + )), )?; } } @@ -2012,12 +2032,12 @@ pub async fn change_password( let score = zxcvbn::zxcvbn( new_password, &[&user.username, &user.email.clone().unwrap_or_default()], - )?; + ); - if score.score() < 3 { + if score.score() < Score::Three { return Err(ApiError::InvalidInput( if let Some(feedback) = - score.feedback().clone().and_then(|x| x.warning()) + score.feedback().and_then(|x| x.warning()) { format!("Password too weak: {feedback}") } else { @@ -2135,7 +2155,10 @@ pub async fn set_email( send_email( user_email, "Email changed", - &format!("Your email has been updated to {} on your account.", email.email), + &format!( + "Your email has been updated to {} on your account.", + email.email + ), "If you did not make this change, please contact us immediately through our support channels on Discord or via email (support@modrinth.com).", None, )?; @@ -2320,6 +2343,14 @@ fn send_email_verify( "Verify your email", opener, "Please visit the following link below to verify your email. If the button does not work, you can copy the link and paste it into your browser. This link expires in 24 hours.", - Some(("Verify email", &format!("{}/{}?flow={}", dotenvy::var("SITE_URL")?, dotenvy::var("SITE_VERIFY_EMAIL_PATH")?, flow))), + Some(( + "Verify email", + &format!( + "{}/{}?flow={}", + dotenvy::var("SITE_URL")?, + dotenvy::var("SITE_VERIFY_EMAIL_PATH")?, + flow + ), + )), ) } diff --git a/apps/labrinth/src/routes/internal/gdpr.rs b/apps/labrinth/src/routes/internal/gdpr.rs index 6f1d3e611..0137adf80 100644 --- a/apps/labrinth/src/routes/internal/gdpr.rs +++ b/apps/labrinth/src/routes/internal/gdpr.rs @@ -3,7 +3,7 @@ use crate::database::redis::RedisPool; use crate::models::pats::Scopes; use crate::queue::session::AuthQueue; use crate::routes::ApiError; -use actix_web::{post, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, post, web}; use sqlx::PgPool; pub fn config(cfg: &mut web::ServiceConfig) { diff --git a/apps/labrinth/src/routes/internal/mod.rs b/apps/labrinth/src/routes/internal/mod.rs index 7e61fe798..a658a9c73 100644 --- a/apps/labrinth/src/routes/internal/mod.rs +++ b/apps/labrinth/src/routes/internal/mod.rs @@ -8,8 +8,8 @@ pub mod session; pub mod statuses; -use super::v3::oauth_clients; pub use super::ApiError; +use super::v3::oauth_clients; use crate::util::cors::default_cors; pub fn config(cfg: &mut actix_web::web::ServiceConfig) { diff --git a/apps/labrinth/src/routes/internal/moderation.rs b/apps/labrinth/src/routes/internal/moderation.rs index 066541003..fe0507dfb 100644 --- a/apps/labrinth/src/routes/internal/moderation.rs +++ b/apps/labrinth/src/routes/internal/moderation.rs @@ -5,7 +5,7 @@ use crate::models::projects::ProjectStatus; use crate::queue::moderation::{ApprovalType, IdentifiedFile, MissingMetadata}; use crate::queue::session::AuthQueue; use crate::{auth::check_is_moderator_from_headers, models::pats::Scopes}; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use ariadne::ids::random_base62; use serde::Deserialize; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/internal/pats.rs b/apps/labrinth/src/routes/internal/pats.rs index d70a0e135..0efbc280f 100644 --- a/apps/labrinth/src/routes/internal/pats.rs +++ b/apps/labrinth/src/routes/internal/pats.rs @@ -6,12 +6,12 @@ use crate::routes::ApiError; use crate::database::redis::RedisPool; use actix_web::web::{self, Data}; -use actix_web::{delete, get, patch, post, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, delete, get, patch, post}; use chrono::{DateTime, Utc}; -use rand::distributions::Alphanumeric; use rand::Rng; -use rand_chacha::rand_core::SeedableRng; +use rand::distributions::Alphanumeric; use rand_chacha::ChaCha20Rng; +use rand_chacha::rand_core::SeedableRng; use crate::models::pats::{PersonalAccessToken, Scopes}; use crate::queue::session::AuthQueue; diff --git a/apps/labrinth/src/routes/internal/session.rs b/apps/labrinth/src/routes/internal/session.rs index b7f638faf..bd1daceab 100644 --- a/apps/labrinth/src/routes/internal/session.rs +++ b/apps/labrinth/src/routes/internal/session.rs @@ -1,7 +1,7 @@ -use crate::auth::{get_user_from_headers, AuthenticationError}; +use crate::auth::{AuthenticationError, get_user_from_headers}; +use crate::database::models::UserId; use crate::database::models::session_item::Session as DBSession; use crate::database::models::session_item::SessionBuilder; -use crate::database::models::UserId; use crate::database::redis::RedisPool; use crate::models::pats::Scopes; use crate::models::sessions::Session; @@ -9,8 +9,8 @@ use crate::queue::session::AuthQueue; use crate::routes::ApiError; use crate::util::env::parse_var; use actix_web::http::header::AUTHORIZATION; -use actix_web::web::{scope, Data, ServiceConfig}; -use actix_web::{delete, get, post, web, HttpRequest, HttpResponse}; +use actix_web::web::{Data, ServiceConfig, scope}; +use actix_web::{HttpRequest, HttpResponse, delete, get, post, web}; use chrono::Utc; use rand::distributions::Alphanumeric; use rand::{Rng, SeedableRng}; diff --git a/apps/labrinth/src/routes/internal/statuses.rs b/apps/labrinth/src/routes/internal/statuses.rs index 233134820..78265e4ae 100644 --- a/apps/labrinth/src/routes/internal/statuses.rs +++ b/apps/labrinth/src/routes/internal/statuses.rs @@ -1,5 +1,5 @@ -use crate::auth::validate::get_user_record_from_bearer_token; use crate::auth::AuthenticationError; +use crate::auth::validate::get_user_record_from_bearer_token; use crate::database::models::friend_item::FriendItem; use crate::database::redis::RedisPool; use crate::models::pats::Scopes; @@ -9,12 +9,12 @@ use crate::queue::socket::{ ActiveSocket, ActiveSockets, SocketId, TunnelSocketType, }; use crate::routes::ApiError; -use crate::sync::friends::{RedisFriendsMessage, FRIENDS_CHANNEL_NAME}; +use crate::sync::friends::{FRIENDS_CHANNEL_NAME, RedisFriendsMessage}; use crate::sync::status::{ get_user_status, push_back_user_expiry, replace_user_status, }; use actix_web::web::{Data, Payload}; -use actix_web::{get, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, get, web}; use actix_ws::Message; use ariadne::ids::UserId; use ariadne::networking::message::{ @@ -31,7 +31,7 @@ use sqlx::PgPool; use std::pin::pin; use std::sync::atomic::Ordering; use tokio::sync::oneshot::error::TryRecvError; -use tokio::time::{sleep, Duration}; +use tokio::time::{Duration, sleep}; pub fn config(cfg: &mut web::ServiceConfig) { cfg.service(ws_init); diff --git a/apps/labrinth/src/routes/maven.rs b/apps/labrinth/src/routes/maven.rs index bf0247848..2bb2e1177 100644 --- a/apps/labrinth/src/routes/maven.rs +++ b/apps/labrinth/src/routes/maven.rs @@ -9,7 +9,7 @@ use crate::models::projects::{ProjectId, VersionId}; use crate::queue::session::AuthQueue; use crate::routes::ApiError; use crate::{auth::get_user_from_headers, database}; -use actix_web::{get, route, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, get, route, web}; use sqlx::PgPool; use std::collections::HashSet; use yaserde_derive::YaSerialize; diff --git a/apps/labrinth/src/routes/mod.rs b/apps/labrinth/src/routes/mod.rs index 64ef50ba9..caa143f25 100644 --- a/apps/labrinth/src/routes/mod.rs +++ b/apps/labrinth/src/routes/mod.rs @@ -5,7 +5,7 @@ use crate::util::env::parse_strings_from_var; use actix_cors::Cors; use actix_files::Files; use actix_web::http::StatusCode; -use actix_web::{web, HttpResponse}; +use actix_web::{HttpResponse, web}; use futures::FutureExt; pub mod internal; @@ -127,8 +127,6 @@ pub enum ApiError { ImageParse(#[from] image::ImageError), #[error("Password Hashing Error: {0}")] PasswordHashing(#[from] argon2::password_hash::Error), - #[error("Password strength checking error: {0}")] - PasswordStrengthCheck(#[from] zxcvbn::ZxcvbnError), #[error("{0}")] Mail(#[from] crate::auth::email::MailError), #[error("Error while rerouting request: {0}")] @@ -139,7 +137,9 @@ pub enum ApiError { Io(#[from] std::io::Error), #[error("Resource not found")] NotFound, - #[error("You are being rate-limited. Please wait {0} milliseconds. 0/{1} remaining.")] + #[error( + "You are being rate-limited. Please wait {0} milliseconds. 0/{1} remaining." + )] RateLimitError(u128, u32), #[error("Error while interacting with payment processor: {0}")] Stripe(#[from] stripe::StripeError), @@ -168,7 +168,6 @@ impl ApiError { ApiError::Decoding(..) => "decoding_error", ApiError::ImageParse(..) => "invalid_image", ApiError::PasswordHashing(..) => "password_hashing_error", - ApiError::PasswordStrengthCheck(..) => "strength_check_error", ApiError::Mail(..) => "mail_error", ApiError::Clickhouse(..) => "clickhouse_error", ApiError::Reroute(..) => "reroute_error", @@ -206,7 +205,6 @@ impl actix_web::ResponseError for ApiError { ApiError::Decoding(..) => StatusCode::BAD_REQUEST, ApiError::ImageParse(..) => StatusCode::BAD_REQUEST, ApiError::PasswordHashing(..) => StatusCode::INTERNAL_SERVER_ERROR, - ApiError::PasswordStrengthCheck(..) => StatusCode::BAD_REQUEST, ApiError::Mail(..) => StatusCode::INTERNAL_SERVER_ERROR, ApiError::Reroute(..) => StatusCode::INTERNAL_SERVER_ERROR, ApiError::NotFound => StatusCode::NOT_FOUND, diff --git a/apps/labrinth/src/routes/updates.rs b/apps/labrinth/src/routes/updates.rs index 3ee75b111..f661e2b24 100644 --- a/apps/labrinth/src/routes/updates.rs +++ b/apps/labrinth/src/routes/updates.rs @@ -1,6 +1,6 @@ use std::collections::HashMap; -use actix_web::{get, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, get, web}; use serde::{Deserialize, Serialize}; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/v2/moderation.rs b/apps/labrinth/src/routes/v2/moderation.rs index e961da24a..7b5240c12 100644 --- a/apps/labrinth/src/routes/v2/moderation.rs +++ b/apps/labrinth/src/routes/v2/moderation.rs @@ -4,7 +4,7 @@ use crate::models::v2::projects::LegacyProject; use crate::queue::session::AuthQueue; use crate::routes::internal; use crate::{database::redis::RedisPool, routes::v2_reroute}; -use actix_web::{get, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, get, web}; use serde::Deserialize; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/v2/notifications.rs b/apps/labrinth/src/routes/v2/notifications.rs index 85810d614..4cce65b49 100644 --- a/apps/labrinth/src/routes/v2/notifications.rs +++ b/apps/labrinth/src/routes/v2/notifications.rs @@ -3,10 +3,10 @@ use crate::models::ids::NotificationId; use crate::models::notifications::Notification; use crate::models::v2::notifications::LegacyNotification; use crate::queue::session::AuthQueue; +use crate::routes::ApiError; use crate::routes::v2_reroute; use crate::routes::v3; -use crate::routes::ApiError; -use actix_web::{delete, get, patch, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, delete, get, patch, web}; use serde::{Deserialize, Serialize}; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/v2/project_creation.rs b/apps/labrinth/src/routes/v2/project_creation.rs index decc71a3d..6c9b84aa7 100644 --- a/apps/labrinth/src/routes/v2/project_creation.rs +++ b/apps/labrinth/src/routes/v2/project_creation.rs @@ -13,7 +13,7 @@ use crate::routes::v3::project_creation::{CreateError, NewGalleryItem}; use crate::routes::{v2_reroute, v3}; use actix_multipart::Multipart; use actix_web::web::Data; -use actix_web::{post, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, post}; use serde::{Deserialize, Serialize}; use serde_json::json; use sqlx::postgres::PgPool; @@ -47,7 +47,7 @@ struct ProjectCreateData { pub project_type: String, #[validate( length(min = 3, max = 64), - regex = "crate::util::validate::RE_URL_SAFE" + regex(path = *crate::util::validate::RE_URL_SAFE) )] #[serde(alias = "mod_slug")] /// The slug of a project, used for vanity URLs @@ -66,8 +66,7 @@ struct ProjectCreateData { /// The support range for the server project pub server_side: LegacySideType, - #[validate(length(max = 32))] - #[validate] + #[validate(nested, length(max = 32))] /// A list of initial versions to upload with the created project pub initial_versions: Vec, #[validate(length(max = 3))] @@ -109,7 +108,7 @@ struct ProjectCreateData { /// An optional link to the project's discord. pub discord_url: Option, /// An optional list of all donation links the project has\ - #[validate] + #[validate(nested)] pub donation_urls: Option>, /// An optional boolean. If true, the project will be created as a draft. @@ -118,8 +117,7 @@ struct ProjectCreateData { /// The license id that the project follows pub license_id: String, - #[validate(length(max = 64))] - #[validate] + #[validate(nested, length(max = 64))] /// The multipart names of the gallery items to upload pub gallery_items: Option>, #[serde(default = "default_requested_status")] diff --git a/apps/labrinth/src/routes/v2/projects.rs b/apps/labrinth/src/routes/v2/projects.rs index c7b128ef8..6b66d8ebb 100644 --- a/apps/labrinth/src/routes/v2/projects.rs +++ b/apps/labrinth/src/routes/v2/projects.rs @@ -12,9 +12,9 @@ use crate::models::v2::search::LegacySearchResults; use crate::queue::moderation::AutomatedModerationQueue; use crate::queue::session::AuthQueue; use crate::routes::v3::projects::ProjectIds; -use crate::routes::{v2_reroute, v3, ApiError}; -use crate::search::{search_for_project, SearchConfig, SearchError}; -use actix_web::{delete, get, patch, post, web, HttpRequest, HttpResponse}; +use crate::routes::{ApiError, v2_reroute, v3}; +use crate::search::{SearchConfig, SearchError, search_for_project}; +use actix_web::{HttpRequest, HttpResponse, delete, get, patch, post, web}; use serde::{Deserialize, Serialize}; use sqlx::PgPool; use std::collections::HashMap; @@ -371,14 +371,14 @@ pub struct EditProject { length(max = 2048) )] pub discord_url: Option>, - #[validate] + #[validate(nested)] pub donation_urls: Option>, pub license_id: Option, pub client_side: Option, pub server_side: Option, #[validate( length(min = 3, max = 64), - regex = "crate::util::validate::RE_URL_SAFE" + regex(path = *crate::util::validate::RE_URL_SAFE) )] pub slug: Option, pub status: Option, @@ -586,11 +586,11 @@ pub struct BulkEditProject { pub add_additional_categories: Option>, pub remove_additional_categories: Option>, - #[validate] + #[validate(nested)] pub donation_urls: Option>, - #[validate] + #[validate(nested)] pub add_donation_urls: Option>, - #[validate] + #[validate(nested)] pub remove_donation_urls: Option>, #[serde( diff --git a/apps/labrinth/src/routes/v2/reports.rs b/apps/labrinth/src/routes/v2/reports.rs index 35173102d..236407767 100644 --- a/apps/labrinth/src/routes/v2/reports.rs +++ b/apps/labrinth/src/routes/v2/reports.rs @@ -2,8 +2,8 @@ use crate::database::redis::RedisPool; use crate::models::reports::Report; use crate::models::v2::reports::LegacyReport; use crate::queue::session::AuthQueue; -use crate::routes::{v2_reroute, v3, ApiError}; -use actix_web::{delete, get, patch, post, web, HttpRequest, HttpResponse}; +use crate::routes::{ApiError, v2_reroute, v3}; +use actix_web::{HttpRequest, HttpResponse, delete, get, patch, post, web}; use serde::Deserialize; use sqlx::PgPool; use validator::Validate; diff --git a/apps/labrinth/src/routes/v2/statistics.rs b/apps/labrinth/src/routes/v2/statistics.rs index bd98da12e..78bb9d626 100644 --- a/apps/labrinth/src/routes/v2/statistics.rs +++ b/apps/labrinth/src/routes/v2/statistics.rs @@ -1,9 +1,8 @@ use crate::routes::{ - v2_reroute, + ApiError, v2_reroute, v3::{self, statistics::V3Stats}, - ApiError, }; -use actix_web::{get, web, HttpResponse}; +use actix_web::{HttpResponse, get, web}; use sqlx::PgPool; pub fn config(cfg: &mut web::ServiceConfig) { diff --git a/apps/labrinth/src/routes/v2/tags.rs b/apps/labrinth/src/routes/v2/tags.rs index 3233e9aed..1a9ae9a35 100644 --- a/apps/labrinth/src/routes/v2/tags.rs +++ b/apps/labrinth/src/routes/v2/tags.rs @@ -7,7 +7,7 @@ use crate::models::v2::projects::LegacySideType; use crate::routes::v2_reroute::capitalize_first; use crate::routes::v3::tags::{LinkPlatformQueryData, LoaderFieldsEnumQuery}; use crate::routes::{v2_reroute, v3}; -use actix_web::{get, web, HttpResponse}; +use actix_web::{HttpResponse, get, web}; use chrono::{DateTime, Utc}; use itertools::Itertools; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/v2/teams.rs b/apps/labrinth/src/routes/v2/teams.rs index 444ff13ec..485dc8fa8 100644 --- a/apps/labrinth/src/routes/v2/teams.rs +++ b/apps/labrinth/src/routes/v2/teams.rs @@ -5,8 +5,8 @@ use crate::models::teams::{ use crate::models::users::UserId; use crate::models::v2::teams::LegacyTeamMember; use crate::queue::session::AuthQueue; -use crate::routes::{v2_reroute, v3, ApiError}; -use actix_web::{delete, get, patch, post, web, HttpRequest, HttpResponse}; +use crate::routes::{ApiError, v2_reroute, v3}; +use actix_web::{HttpRequest, HttpResponse, delete, get, patch, post, web}; use rust_decimal::Decimal; use serde::{Deserialize, Serialize}; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/v2/threads.rs b/apps/labrinth/src/routes/v2/threads.rs index ab5e781a5..ecc137fc7 100644 --- a/apps/labrinth/src/routes/v2/threads.rs +++ b/apps/labrinth/src/routes/v2/threads.rs @@ -6,8 +6,8 @@ use crate::models::ids::ThreadMessageId; use crate::models::threads::{MessageBody, Thread, ThreadId}; use crate::models::v2::threads::LegacyThread; use crate::queue::session::AuthQueue; -use crate::routes::{v2_reroute, v3, ApiError}; -use actix_web::{delete, get, post, web, HttpRequest, HttpResponse}; +use crate::routes::{ApiError, v2_reroute, v3}; +use actix_web::{HttpRequest, HttpResponse, delete, get, post, web}; use serde::Deserialize; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/v2/users.rs b/apps/labrinth/src/routes/v2/users.rs index 0fcc4b62a..e3a793fb5 100644 --- a/apps/labrinth/src/routes/v2/users.rs +++ b/apps/labrinth/src/routes/v2/users.rs @@ -7,8 +7,8 @@ use crate::models::v2::notifications::LegacyNotification; use crate::models::v2::projects::LegacyProject; use crate::models::v2::user::LegacyUser; use crate::queue::session::AuthQueue; -use crate::routes::{v2_reroute, v3, ApiError}; -use actix_web::{delete, get, patch, web, HttpRequest, HttpResponse}; +use crate::routes::{ApiError, v2_reroute, v3}; +use actix_web::{HttpRequest, HttpResponse, delete, get, patch, web}; use lazy_static::lazy_static; use regex::Regex; use serde::{Deserialize, Serialize}; @@ -141,14 +141,14 @@ lazy_static! { #[derive(Serialize, Deserialize, Validate)] pub struct EditUser { - #[validate(length(min = 1, max = 39), regex = "RE_URL_SAFE")] + #[validate(length(min = 1, max = 39), regex(path = *RE_URL_SAFE))] pub username: Option, #[serde( default, skip_serializing_if = "Option::is_none", with = "::serde_with::rust::double_option" )] - #[validate(length(min = 1, max = 64), regex = "RE_URL_SAFE")] + #[validate(length(min = 1, max = 64), regex(path = *RE_URL_SAFE))] pub name: Option>, #[serde( default, diff --git a/apps/labrinth/src/routes/v2/version_creation.rs b/apps/labrinth/src/routes/v2/version_creation.rs index c86b2eb15..ea09c597f 100644 --- a/apps/labrinth/src/routes/v2/version_creation.rs +++ b/apps/labrinth/src/routes/v2/version_creation.rs @@ -16,7 +16,7 @@ use crate::routes::{v2_reroute, v3}; use actix_multipart::Multipart; use actix_web::http::header::ContentDisposition; use actix_web::web::Data; -use actix_web::{post, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, post, web}; use serde::{Deserialize, Serialize}; use serde_json::json; use sqlx::postgres::PgPool; @@ -36,7 +36,7 @@ pub struct InitialVersionData { pub file_parts: Vec, #[validate( length(min = 1, max = 32), - regex = "crate::util::validate::RE_URL_SAFE" + regex(path = *crate::util::validate::RE_URL_SAFE) )] pub version_number: String, #[validate( diff --git a/apps/labrinth/src/routes/v2/version_file.rs b/apps/labrinth/src/routes/v2/version_file.rs index bb998b661..11d4a50f7 100644 --- a/apps/labrinth/src/routes/v2/version_file.rs +++ b/apps/labrinth/src/routes/v2/version_file.rs @@ -5,7 +5,7 @@ use crate::models::v2::projects::{LegacyProject, LegacyVersion}; use crate::queue::session::AuthQueue; use crate::routes::v3::version_file::HashQuery; use crate::routes::{v2_reroute, v3}; -use actix_web::{delete, get, post, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, delete, get, post, web}; use serde::{Deserialize, Serialize}; use sqlx::PgPool; use std::collections::HashMap; diff --git a/apps/labrinth/src/routes/v2/versions.rs b/apps/labrinth/src/routes/v2/versions.rs index 4d642542c..6e91f8a38 100644 --- a/apps/labrinth/src/routes/v2/versions.rs +++ b/apps/labrinth/src/routes/v2/versions.rs @@ -11,7 +11,7 @@ use crate::models::v2::projects::LegacyVersion; use crate::queue::session::AuthQueue; use crate::routes::{v2_reroute, v3}; use crate::search::SearchConfig; -use actix_web::{delete, get, patch, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, delete, get, patch, web}; use serde::{Deserialize, Serialize}; use sqlx::PgPool; use validator::Validate; @@ -219,7 +219,7 @@ pub struct EditVersion { pub name: Option, #[validate( length(min = 1, max = 32), - regex = "crate::util::validate::RE_URL_SAFE" + regex(path = *crate::util::validate::RE_URL_SAFE) )] pub version_number: Option, #[validate(length(max = 65536))] diff --git a/apps/labrinth/src/routes/v2_reroute.rs b/apps/labrinth/src/routes/v2_reroute.rs index d4894b92d..a73baac4d 100644 --- a/apps/labrinth/src/routes/v2_reroute.rs +++ b/apps/labrinth/src/routes/v2_reroute.rs @@ -1,18 +1,18 @@ use std::collections::HashMap; -use super::v3::project_creation::CreateError; use super::ApiError; +use super::v3::project_creation::CreateError; use crate::models::v2::projects::LegacySideType; use crate::util::actix::{ - generate_multipart, MultipartSegment, MultipartSegmentData, + MultipartSegment, MultipartSegmentData, generate_multipart, }; use actix_multipart::Multipart; +use actix_web::HttpResponse; use actix_web::http::header::{ ContentDisposition, HeaderMap, TryIntoHeaderPair, }; -use actix_web::HttpResponse; -use futures::{stream, Future, StreamExt}; -use serde_json::{json, Value}; +use futures::{Future, StreamExt, stream}; +use serde_json::{Value, json}; pub async fn extract_ok_json( response: HttpResponse, @@ -73,7 +73,7 @@ where if let Some(field) = multipart.next().await { let mut field = field?; - let content_disposition = field.content_disposition().clone(); + let content_disposition = field.content_disposition().unwrap().clone(); let field_name = content_disposition.get_name().unwrap_or(""); let field_filename = content_disposition.get_filename(); let field_content_type = field.content_type(); @@ -100,7 +100,7 @@ where while let Some(field) = multipart.next().await { let mut field = field?; - let content_disposition = field.content_disposition().clone(); + let content_disposition = field.content_disposition().unwrap().clone(); let field_name = content_disposition.get_name().unwrap_or(""); let field_filename = content_disposition.get_filename(); let field_content_type = field.content_type(); diff --git a/apps/labrinth/src/routes/v3/analytics_get.rs b/apps/labrinth/src/routes/v3/analytics_get.rs index 85a3de60c..cddf92464 100644 --- a/apps/labrinth/src/routes/v3/analytics_get.rs +++ b/apps/labrinth/src/routes/v3/analytics_get.rs @@ -11,12 +11,12 @@ use crate::{ }, queue::session::AuthQueue, }; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use ariadne::ids::base62_impl::to_base62; use chrono::{DateTime, Duration, Utc}; use serde::{Deserialize, Serialize}; -use sqlx::postgres::types::PgInterval; use sqlx::PgPool; +use sqlx::postgres::types::PgInterval; use std::collections::HashMap; use std::convert::TryInto; diff --git a/apps/labrinth/src/routes/v3/collections.rs b/apps/labrinth/src/routes/v3/collections.rs index deed5235d..780a13111 100644 --- a/apps/labrinth/src/routes/v3/collections.rs +++ b/apps/labrinth/src/routes/v3/collections.rs @@ -9,14 +9,14 @@ use crate::models::collections::{Collection, CollectionStatus}; use crate::models::ids::{CollectionId, ProjectId}; use crate::models::pats::Scopes; use crate::queue::session::AuthQueue; -use crate::routes::v3::project_creation::CreateError; use crate::routes::ApiError; +use crate::routes::v3::project_creation::CreateError; use crate::util::img::delete_old_images; use crate::util::routes::read_from_payload; use crate::util::validate::validation_errors_to_string; use crate::{database, models}; use actix_web::web::Data; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use ariadne::ids::base62_impl::parse_base62; use chrono::Utc; use itertools::Itertools; @@ -322,14 +322,15 @@ pub async fn collection_edit( .collect_vec(); let mut validated_project_ids = Vec::new(); for project_id in new_project_ids { - let project = - database::models::Project::get(project_id, &**pool, &redis) - .await? - .ok_or_else(|| { - ApiError::InvalidInput(format!( - "The specified project {project_id} does not exist!" - )) - })?; + let project = database::models::Project::get( + project_id, &**pool, &redis, + ) + .await? + .ok_or_else(|| { + ApiError::InvalidInput(format!( + "The specified project {project_id} does not exist!" + )) + })?; validated_project_ids.push(project.inner.id.0); } // Insert- don't throw an error if it already exists diff --git a/apps/labrinth/src/routes/v3/friends.rs b/apps/labrinth/src/routes/v3/friends.rs index 56d70d568..a1c0e803f 100644 --- a/apps/labrinth/src/routes/v3/friends.rs +++ b/apps/labrinth/src/routes/v3/friends.rs @@ -5,13 +5,13 @@ use crate::models::pats::Scopes; use crate::models::users::UserFriend; use crate::queue::session::AuthQueue; use crate::queue::socket::ActiveSockets; +use crate::routes::ApiError; use crate::routes::internal::statuses::{ broadcast_friends_message, send_message_to_user, }; -use crate::routes::ApiError; use crate::sync::friends::RedisFriendsMessage; use crate::sync::status::get_user_status; -use actix_web::{delete, get, post, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, delete, get, post, web}; use ariadne::networking::message::ServerToClientMessage; use chrono::Utc; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/v3/images.rs b/apps/labrinth/src/routes/v3/images.rs index a1c2c841c..968ee3ce6 100644 --- a/apps/labrinth/src/routes/v3/images.rs +++ b/apps/labrinth/src/routes/v3/images.rs @@ -16,7 +16,7 @@ use crate::queue::session::AuthQueue; use crate::routes::ApiError; use crate::util::img::upload_image_optimized; use crate::util::routes::read_from_payload; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use serde::{Deserialize, Serialize}; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/v3/mod.rs b/apps/labrinth/src/routes/v3/mod.rs index 3233d88ae..336a773f1 100644 --- a/apps/labrinth/src/routes/v3/mod.rs +++ b/apps/labrinth/src/routes/v3/mod.rs @@ -1,6 +1,6 @@ pub use super::ApiError; use crate::util::cors::default_cors; -use actix_web::{web, HttpResponse}; +use actix_web::{HttpResponse, web}; use serde_json::json; pub mod analytics_get; diff --git a/apps/labrinth/src/routes/v3/notifications.rs b/apps/labrinth/src/routes/v3/notifications.rs index abff2e587..da8a9248d 100644 --- a/apps/labrinth/src/routes/v3/notifications.rs +++ b/apps/labrinth/src/routes/v3/notifications.rs @@ -6,7 +6,7 @@ use crate::models::notifications::Notification; use crate::models::pats::Scopes; use crate::queue::session::AuthQueue; use crate::routes::ApiError; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use serde::{Deserialize, Serialize}; use sqlx::PgPool; @@ -45,8 +45,8 @@ pub async fn notifications_get( .await? .1; - use database::models::notification_item::Notification as DBNotification; use database::models::NotificationId as DBNotificationId; + use database::models::notification_item::Notification as DBNotification; let notification_ids: Vec = serde_json::from_str::>(ids.ids.as_str())? diff --git a/apps/labrinth/src/routes/v3/oauth_clients.rs b/apps/labrinth/src/routes/v3/oauth_clients.rs index c504ba8a7..e8ad0b957 100644 --- a/apps/labrinth/src/routes/v3/oauth_clients.rs +++ b/apps/labrinth/src/routes/v3/oauth_clients.rs @@ -5,10 +5,10 @@ use crate::{ auth::{checks::ValidateAuthorized, get_user_from_headers}, database::{ models::{ - generate_oauth_client_id, generate_oauth_redirect_id, + DatabaseError, OAuthClientId, User, generate_oauth_client_id, + generate_oauth_redirect_id, oauth_client_authorization_item::OAuthClientAuthorization, oauth_client_item::{OAuthClient, OAuthRedirectUri}, - DatabaseError, OAuthClientId, User, }, redis::RedisPool, }, @@ -26,14 +26,13 @@ use crate::{ util::routes::read_from_payload, }; use actix_web::{ - delete, get, patch, post, + HttpRequest, HttpResponse, delete, get, patch, post, web::{self, scope}, - HttpRequest, HttpResponse, }; use ariadne::ids::base62_impl::parse_base62; use chrono::Utc; use itertools::Itertools; -use rand::{distributions::Alphanumeric, Rng, SeedableRng}; +use rand::{Rng, SeedableRng, distributions::Alphanumeric}; use rand_chacha::ChaCha20Rng; use serde::{Deserialize, Serialize}; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/v3/organizations.rs b/apps/labrinth/src/routes/v3/organizations.rs index 34c74c551..7c2ca4f12 100644 --- a/apps/labrinth/src/routes/v3/organizations.rs +++ b/apps/labrinth/src/routes/v3/organizations.rs @@ -5,7 +5,7 @@ use super::ApiError; use crate::auth::{filter_visible_projects, get_user_from_headers}; use crate::database::models::team_item::TeamMember; use crate::database::models::{ - generate_organization_id, team_item, Organization, + Organization, generate_organization_id, team_item, }; use crate::database::redis::RedisPool; use crate::file_hosting::FileHost; @@ -19,7 +19,7 @@ use crate::util::img::delete_old_images; use crate::util::routes::read_from_payload; use crate::util::validate::validation_errors_to_string; use crate::{database, models}; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use ariadne::ids::base62_impl::parse_base62; use futures::TryStreamExt; use rust_decimal::Decimal; @@ -102,7 +102,7 @@ pub async fn organization_projects_get( pub struct NewOrganization { #[validate( length(min = 3, max = 64), - regex = "crate::util::validate::RE_URL_SAFE" + regex(path = *crate::util::validate::RE_URL_SAFE) )] pub slug: String, // Title of the organization @@ -371,7 +371,7 @@ pub struct OrganizationEdit { pub description: Option, #[validate( length(min = 3, max = 64), - regex = "crate::util::validate::RE_URL_SAFE" + regex(path = *crate::util::validate::RE_URL_SAFE) )] pub slug: Option, #[validate(length(min = 3, max = 64))] diff --git a/apps/labrinth/src/routes/v3/payouts.rs b/apps/labrinth/src/routes/v3/payouts.rs index 82c9cee6c..5574f364a 100644 --- a/apps/labrinth/src/routes/v3/payouts.rs +++ b/apps/labrinth/src/routes/v3/payouts.rs @@ -1,17 +1,17 @@ use crate::auth::validate::get_user_record_from_bearer_token; -use crate::auth::{get_user_from_headers, AuthenticationError}; +use crate::auth::{AuthenticationError, get_user_from_headers}; use crate::database::models::generate_payout_id; use crate::database::redis::RedisPool; use crate::models::ids::PayoutId; use crate::models::pats::Scopes; use crate::models::payouts::{PayoutMethodType, PayoutStatus}; -use crate::queue::payouts::{make_aditude_request, PayoutsQueue}; +use crate::queue::payouts::{PayoutsQueue, make_aditude_request}; use crate::queue::session::AuthQueue; use crate::routes::ApiError; -use actix_web::{delete, get, post, web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, delete, get, post, web}; use chrono::{DateTime, Datelike, Duration, TimeZone, Utc, Weekday}; use hex::ToHex; -use hmac::{Hmac, Mac, NewMac}; +use hmac::{Hmac, Mac}; use reqwest::Method; use rust_decimal::Decimal; use serde::{Deserialize, Serialize}; @@ -620,7 +620,7 @@ pub async fn create_payout( PayoutMethodType::Unknown => { return Err(ApiError::Payments( "Invalid payment method specified!".to_string(), - )) + )); } }; @@ -696,7 +696,7 @@ pub async fn cancel_payout( PayoutMethodType::Unknown => { return Err(ApiError::InvalidInput( "Payout cannot be cancelled!".to_string(), - )) + )); } } diff --git a/apps/labrinth/src/routes/v3/project_creation.rs b/apps/labrinth/src/routes/v3/project_creation.rs index 5d78a33a7..038efca64 100644 --- a/apps/labrinth/src/routes/v3/project_creation.rs +++ b/apps/labrinth/src/routes/v3/project_creation.rs @@ -1,10 +1,10 @@ -use super::version_creation::{try_create_version_fields, InitialVersionData}; -use crate::auth::{get_user_from_headers, AuthenticationError}; +use super::version_creation::{InitialVersionData, try_create_version_fields}; +use crate::auth::{AuthenticationError, get_user_from_headers}; use crate::database::models::loader_fields::{ Loader, LoaderField, LoaderFieldEnumValue, }; use crate::database::models::thread_item::ThreadBuilder; -use crate::database::models::{self, image_item, User}; +use crate::database::models::{self, User, image_item}; use crate::database::redis::RedisPool; use crate::file_hosting::{FileHost, FileHostingError}; use crate::models::error::ApiError; @@ -168,7 +168,7 @@ pub struct ProjectCreateData { pub name: String, #[validate( length(min = 3, max = 64), - regex = "crate::util::validate::RE_URL_SAFE" + regex(path = *crate::util::validate::RE_URL_SAFE) )] #[serde(alias = "mod_slug")] /// The slug of a project, used for vanity URLs @@ -182,8 +182,7 @@ pub struct ProjectCreateData { /// A long description of the project, in markdown. pub description: String, - #[validate(length(max = 32))] - #[validate] + #[validate(nested, length(max = 32))] /// A list of initial versions to upload with the created project pub initial_versions: Vec, #[validate(length(max = 3))] @@ -209,8 +208,7 @@ pub struct ProjectCreateData { /// The license id that the project follows pub license_id: String, - #[validate(length(max = 64))] - #[validate] + #[validate(nested, length(max = 64))] /// The multipart names of the gallery items to upload pub gallery_items: Option>, #[serde(default = "default_requested_status")] @@ -373,8 +371,7 @@ async fn project_create_inner( ))) })?; - let content_disposition = field.content_disposition(); - let name = content_disposition.get_name().ok_or_else(|| { + let name = field.name().ok_or_else(|| { CreateError::MissingValueError(String::from("Missing content name")) })?; @@ -472,7 +469,7 @@ async fn project_create_inner( } let result = async { - let content_disposition = field.content_disposition().clone(); + let content_disposition = field.content_disposition().unwrap().clone(); let name = content_disposition.get_name().ok_or_else(|| { CreateError::MissingValueError("Missing content name".to_string()) diff --git a/apps/labrinth/src/routes/v3/projects.rs b/apps/labrinth/src/routes/v3/projects.rs index 154830e11..2a44ed685 100644 --- a/apps/labrinth/src/routes/v3/projects.rs +++ b/apps/labrinth/src/routes/v3/projects.rs @@ -6,7 +6,7 @@ use crate::auth::{filter_visible_projects, get_user_from_headers}; use crate::database::models::notification_item::NotificationBuilder; use crate::database::models::project_item::{GalleryItem, ModCategory}; use crate::database::models::thread_item::ThreadMessageBuilder; -use crate::database::models::{ids as db_ids, image_item, TeamMember}; +use crate::database::models::{TeamMember, ids as db_ids, image_item}; use crate::database::redis::RedisPool; use crate::database::{self, models as db_models}; use crate::file_hosting::FileHost; @@ -23,12 +23,12 @@ use crate::queue::moderation::AutomatedModerationQueue; use crate::queue::session::AuthQueue; use crate::routes::ApiError; use crate::search::indexing::remove_documents; -use crate::search::{search_for_project, SearchConfig, SearchError}; +use crate::search::{SearchConfig, SearchError, search_for_project}; use crate::util::img; use crate::util::img::{delete_old_images, upload_image_optimized}; use crate::util::routes::read_from_payload; use crate::util::validate::validation_errors_to_string; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use ariadne::ids::base62_impl::parse_base62; use chrono::Utc; use futures::TryStreamExt; @@ -214,7 +214,7 @@ pub struct EditProject { pub license_id: Option, #[validate( length(min = 3, max = 64), - regex = "crate::util::validate::RE_URL_SAFE" + regex(path = *crate::util::validate::RE_URL_SAFE) )] pub slug: Option, pub status: Option, diff --git a/apps/labrinth/src/routes/v3/reports.rs b/apps/labrinth/src/routes/v3/reports.rs index 0308c8585..6f09fba58 100644 --- a/apps/labrinth/src/routes/v3/reports.rs +++ b/apps/labrinth/src/routes/v3/reports.rs @@ -14,7 +14,7 @@ use crate::models::threads::{MessageBody, ThreadType}; use crate::queue::session::AuthQueue; use crate::routes::ApiError; use crate::util::img; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use ariadne::ids::base62_impl::parse_base62; use chrono::Utc; use futures::StreamExt; @@ -162,7 +162,7 @@ pub async fn report_create( return Err(ApiError::InvalidInput(format!( "Invalid report item type: {}", new_report.item_type.as_str() - ))) + ))); } } diff --git a/apps/labrinth/src/routes/v3/statistics.rs b/apps/labrinth/src/routes/v3/statistics.rs index 511448043..169ff000c 100644 --- a/apps/labrinth/src/routes/v3/statistics.rs +++ b/apps/labrinth/src/routes/v3/statistics.rs @@ -1,5 +1,5 @@ use crate::routes::ApiError; -use actix_web::{web, HttpResponse}; +use actix_web::{HttpResponse, web}; use sqlx::PgPool; pub fn config(cfg: &mut web::ServiceConfig) { diff --git a/apps/labrinth/src/routes/v3/tags.rs b/apps/labrinth/src/routes/v3/tags.rs index d7d5b2516..20b46b833 100644 --- a/apps/labrinth/src/routes/v3/tags.rs +++ b/apps/labrinth/src/routes/v3/tags.rs @@ -8,7 +8,7 @@ use crate::database::models::loader_fields::{ Game, Loader, LoaderField, LoaderFieldEnumValue, LoaderFieldType, }; use crate::database::redis::RedisPool; -use actix_web::{web, HttpResponse}; +use actix_web::{HttpResponse, web}; use itertools::Itertools; use serde_json::Value; @@ -156,7 +156,7 @@ pub async fn loader_fields_list( "'{}' is not an enumerable field, but an '{}' field.", query.loader_field, loader_field.field_type.to_str() - ))) + ))); } }; diff --git a/apps/labrinth/src/routes/v3/teams.rs b/apps/labrinth/src/routes/v3/teams.rs index e6f9ecd76..aeda6e1b7 100644 --- a/apps/labrinth/src/routes/v3/teams.rs +++ b/apps/labrinth/src/routes/v3/teams.rs @@ -1,10 +1,10 @@ use crate::auth::checks::is_visible_project; use crate::auth::get_user_from_headers; +use crate::database::Project; use crate::database::models::notification_item::NotificationBuilder; use crate::database::models::team_item::TeamAssociationId; use crate::database::models::{Organization, Team, TeamMember, User}; use crate::database::redis::RedisPool; -use crate::database::Project; use crate::models::notifications::NotificationBody; use crate::models::pats::Scopes; use crate::models::teams::{ @@ -13,7 +13,7 @@ use crate::models::teams::{ use crate::models::users::UserId; use crate::queue::session::AuthQueue; use crate::routes::ApiError; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use rust_decimal::Decimal; use serde::{Deserialize, Serialize}; use sqlx::PgPool; @@ -299,7 +299,7 @@ pub async fn teams_get( .map(|x| x.1) .ok(); - let teams_groups = teams_data.into_iter().group_by(|data| data.team_id.0); + let teams_groups = teams_data.into_iter().chunk_by(|data| data.team_id.0); let mut teams: Vec> = vec![]; diff --git a/apps/labrinth/src/routes/v3/threads.rs b/apps/labrinth/src/routes/v3/threads.rs index f39c948ec..c206eaebb 100644 --- a/apps/labrinth/src/routes/v3/threads.rs +++ b/apps/labrinth/src/routes/v3/threads.rs @@ -16,7 +16,7 @@ use crate::models::threads::{MessageBody, Thread, ThreadId, ThreadType}; use crate::models::users::User; use crate::queue::session::AuthQueue; use crate::routes::ApiError; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use futures::TryStreamExt; use serde::Deserialize; use sqlx::PgPool; diff --git a/apps/labrinth/src/routes/v3/users.rs b/apps/labrinth/src/routes/v3/users.rs index fdd1286da..1e164bc5b 100644 --- a/apps/labrinth/src/routes/v3/users.rs +++ b/apps/labrinth/src/routes/v3/users.rs @@ -1,13 +1,13 @@ use std::{collections::HashMap, sync::Arc}; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use lazy_static::lazy_static; use regex::Regex; use serde::{Deserialize, Serialize}; use sqlx::PgPool; use validator::Validate; -use super::{oauth_clients::get_user_clients, ApiError}; +use super::{ApiError, oauth_clients::get_user_clients}; use crate::util::img::delete_old_images; use crate::{ auth::{filter_visible_projects, get_user_from_headers}, @@ -364,7 +364,7 @@ lazy_static! { #[derive(Serialize, Deserialize, Validate)] pub struct EditUser { - #[validate(length(min = 1, max = 39), regex = "RE_URL_SAFE")] + #[validate(length(min = 1, max = 39), regex(path = *RE_URL_SAFE))] pub username: Option, #[serde( default, diff --git a/apps/labrinth/src/routes/v3/version_creation.rs b/apps/labrinth/src/routes/v3/version_creation.rs index 8afda2ac2..d4bc079b8 100644 --- a/apps/labrinth/src/routes/v3/version_creation.rs +++ b/apps/labrinth/src/routes/v3/version_creation.rs @@ -7,31 +7,33 @@ use crate::database::models::notification_item::NotificationBuilder; use crate::database::models::version_item::{ DependencyBuilder, VersionBuilder, VersionFileBuilder, }; -use crate::database::models::{self, image_item, Organization}; +use crate::database::models::{self, Organization, image_item}; use crate::database::redis::RedisPool; use crate::file_hosting::FileHost; use crate::models::images::{Image, ImageContext, ImageId}; use crate::models::notifications::NotificationBody; use crate::models::pack::PackFileHash; use crate::models::pats::Scopes; -use crate::models::projects::{skip_nulls, DependencyType, ProjectStatus}; use crate::models::projects::{ Dependency, FileType, Loader, ProjectId, Version, VersionFile, VersionId, VersionStatus, VersionType, }; +use crate::models::projects::{DependencyType, ProjectStatus, skip_nulls}; use crate::models::teams::ProjectPermissions; use crate::queue::moderation::AutomatedModerationQueue; use crate::queue::session::AuthQueue; use crate::util::routes::read_from_field; use crate::util::validate::validation_errors_to_string; -use crate::validate::{validate_file, ValidationResult}; +use crate::validate::{ValidationResult, validate_file}; use actix_multipart::{Field, Multipart}; use actix_web::web::Data; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use chrono::Utc; use futures::stream::StreamExt; +use hex::ToHex; use itertools::Itertools; use serde::{Deserialize, Serialize}; +use sha1::Digest; use sqlx::postgres::PgPool; use std::collections::{HashMap, HashSet}; use std::sync::Arc; @@ -50,7 +52,7 @@ pub struct InitialVersionData { pub file_parts: Vec, #[validate( length(min = 1, max = 32), - regex = "crate::util::validate::RE_URL_SAFE" + regex(path = *crate::util::validate::RE_URL_SAFE) )] pub version_number: String, #[validate( @@ -180,7 +182,7 @@ async fn version_create_inner( } let result = async { - let content_disposition = field.content_disposition().clone(); + let content_disposition = field.content_disposition().unwrap().clone(); let name = content_disposition.get_name().ok_or_else(|| { CreateError::MissingValueError("Missing content name".to_string()) })?; @@ -692,7 +694,8 @@ async fn upload_file_to_version_inner( } let result = async { - let content_disposition = field.content_disposition().clone(); + let content_disposition = + field.content_disposition().unwrap().clone(); let name = content_disposition.get_name().ok_or_else(|| { CreateError::MissingValueError( "Missing content name".to_string(), @@ -831,7 +834,7 @@ pub async fn upload_file( "Project file exceeds the maximum of 500MiB. Contact a moderator or admin to request permission to upload larger files." ).await?; - let hash = sha1::Sha1::from(&data).hexdigest(); + let hash = sha1::Sha1::digest(&data).encode_hex::(); let exists = sqlx::query!( " SELECT EXISTS(SELECT 1 FROM hashes h diff --git a/apps/labrinth/src/routes/v3/version_file.rs b/apps/labrinth/src/routes/v3/version_file.rs index 76bcd3476..03d32ad36 100644 --- a/apps/labrinth/src/routes/v3/version_file.rs +++ b/apps/labrinth/src/routes/v3/version_file.rs @@ -8,7 +8,7 @@ use crate::models::projects::VersionType; use crate::models::teams::ProjectPermissions; use crate::queue::session::AuthQueue; use crate::{database, models}; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use dashmap::DashMap; use futures::TryStreamExt; use itertools::Itertools; diff --git a/apps/labrinth/src/routes/v3/versions.rs b/apps/labrinth/src/routes/v3/versions.rs index cd9ff36d4..dd2faa23d 100644 --- a/apps/labrinth/src/routes/v3/versions.rs +++ b/apps/labrinth/src/routes/v3/versions.rs @@ -10,23 +10,23 @@ use crate::database::models::loader_fields::{ self, LoaderField, LoaderFieldEnumValue, VersionField, }; use crate::database::models::version_item::{DependencyBuilder, LoaderVersion}; -use crate::database::models::{image_item, Organization}; +use crate::database::models::{Organization, image_item}; use crate::database::redis::RedisPool; use crate::models; use crate::models::ids::VersionId; use crate::models::images::ImageContext; use crate::models::pats::Scopes; -use crate::models::projects::{skip_nulls, Loader}; use crate::models::projects::{ Dependency, FileType, VersionStatus, VersionType, }; +use crate::models::projects::{Loader, skip_nulls}; use crate::models::teams::ProjectPermissions; use crate::queue::session::AuthQueue; -use crate::search::indexing::remove_documents; use crate::search::SearchConfig; +use crate::search::indexing::remove_documents; use crate::util::img; use crate::util::validate::validation_errors_to_string; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web}; use ariadne::ids::base62_impl::parse_base62; use itertools::Itertools; use serde::{Deserialize, Serialize}; @@ -207,7 +207,7 @@ pub struct EditVersion { pub name: Option, #[validate( length(min = 1, max = 32), - regex = "crate::util::validate::RE_URL_SAFE" + regex(path = *crate::util::validate::RE_URL_SAFE) )] pub version_number: Option, #[validate(length(max = 65536))] diff --git a/apps/labrinth/src/search/mod.rs b/apps/labrinth/src/search/mod.rs index 88895c508..663e1a83f 100644 --- a/apps/labrinth/src/search/mod.rs +++ b/apps/labrinth/src/search/mod.rs @@ -1,7 +1,7 @@ use crate::models::error::ApiError; use crate::models::projects::SearchRequest; -use actix_web::http::StatusCode; use actix_web::HttpResponse; +use actix_web::http::StatusCode; use chrono::{DateTime, Utc}; use itertools::Itertools; use meilisearch_sdk::client::Client; @@ -252,10 +252,10 @@ pub async fn search_for_project( serde_json::from_value::>(facet) .unwrap_or_default() } else { - vec![serde_json::from_value::( - facet, - ) - .unwrap_or_default()] + vec![ + serde_json::from_value::(facet) + .unwrap_or_default(), + ] } }) .collect_vec() diff --git a/apps/labrinth/src/util/img.rs b/apps/labrinth/src/util/img.rs index daa183a17..4ef5be1cc 100644 --- a/apps/labrinth/src/util/img.rs +++ b/apps/labrinth/src/util/img.rs @@ -5,11 +5,12 @@ use crate::file_hosting::FileHost; use crate::models::images::ImageContext; use crate::routes::ApiError; use color_thief::ColorFormat; +use hex::ToHex; use image::imageops::FilterType; use image::{ - DynamicImage, EncodableLayout, GenericImageView, ImageError, - ImageOutputFormat, + DynamicImage, EncodableLayout, GenericImageView, ImageError, ImageFormat, }; +use sha1::Digest; use std::io::Cursor; use webp::Encoder; @@ -57,7 +58,7 @@ pub async fn upload_image_optimized( let cdn_url = dotenvy::var("CDN_URL")?; - let hash = sha1::Sha1::from(&bytes).hexdigest(); + let hash = sha1::Sha1::digest(&bytes).encode_hex::(); let (processed_image, processed_image_ext) = process_image( bytes.clone(), content_type, @@ -150,7 +151,7 @@ fn process_image( // Optimize and compress let mut output = Vec::new(); - img.write_to(&mut Cursor::new(&mut output), ImageOutputFormat::WebP)?; + img.write_to(&mut Cursor::new(&mut output), ImageFormat::WebP)?; Ok((bytes::Bytes::from(output), "webp".to_string())) } diff --git a/apps/labrinth/src/util/ratelimit.rs b/apps/labrinth/src/util/ratelimit.rs index 7694c6faf..62941f97f 100644 --- a/apps/labrinth/src/util/ratelimit.rs +++ b/apps/labrinth/src/util/ratelimit.rs @@ -2,10 +2,11 @@ use crate::database::redis::RedisPool; use crate::routes::ApiError; use crate::util::env::parse_var; use actix_web::{ + Error, ResponseError, body::{EitherBody, MessageBody}, dev::{ServiceRequest, ServiceResponse}, middleware::Next, - web, Error, ResponseError, + web, }; use chrono::Utc; use std::str::FromStr; diff --git a/apps/labrinth/src/util/routes.rs b/apps/labrinth/src/util/routes.rs index f12e07d97..cad439c62 100644 --- a/apps/labrinth/src/util/routes.rs +++ b/apps/labrinth/src/util/routes.rs @@ -1,5 +1,5 @@ -use crate::routes::v3::project_creation::CreateError; use crate::routes::ApiError; +use crate::routes::v3::project_creation::CreateError; use actix_multipart::Field; use actix_web::web::Payload; use bytes::BytesMut; diff --git a/apps/labrinth/src/util/validate.rs b/apps/labrinth/src/util/validate.rs index 312f80f9e..2cb949f35 100644 --- a/apps/labrinth/src/util/validate.rs +++ b/apps/labrinth/src/util/validate.rs @@ -19,7 +19,7 @@ pub fn validation_errors_to_string( let map = errors.into_errors(); - let key_option = map.keys().next().copied(); + let key_option = map.keys().next(); if let Some(field) = key_option { if let Some(error) = map.get(field) { diff --git a/apps/labrinth/src/validate/fabric.rs b/apps/labrinth/src/validate/fabric.rs index e5bc34c72..073087b79 100644 --- a/apps/labrinth/src/validate/fabric.rs +++ b/apps/labrinth/src/validate/fabric.rs @@ -1,5 +1,5 @@ use crate::validate::{ - filter_out_packs, SupportedGameVersions, ValidationError, ValidationResult, + SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs, }; use std::io::Cursor; use zip::ZipArchive; diff --git a/apps/labrinth/src/validate/forge.rs b/apps/labrinth/src/validate/forge.rs index 503b852b1..da8b49a8b 100644 --- a/apps/labrinth/src/validate/forge.rs +++ b/apps/labrinth/src/validate/forge.rs @@ -1,5 +1,5 @@ use crate::validate::{ - filter_out_packs, SupportedGameVersions, ValidationError, ValidationResult, + SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs, }; use chrono::DateTime; use std::io::Cursor; diff --git a/apps/labrinth/src/validate/liteloader.rs b/apps/labrinth/src/validate/liteloader.rs index f1a202c27..78029f1f1 100644 --- a/apps/labrinth/src/validate/liteloader.rs +++ b/apps/labrinth/src/validate/liteloader.rs @@ -1,5 +1,5 @@ use crate::validate::{ - filter_out_packs, SupportedGameVersions, ValidationError, ValidationResult, + SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs, }; use std::io::Cursor; use zip::ZipArchive; diff --git a/apps/labrinth/src/validate/mod.rs b/apps/labrinth/src/validate/mod.rs index 7f699e940..ec2db81c8 100644 --- a/apps/labrinth/src/validate/mod.rs +++ b/apps/labrinth/src/validate/mod.rs @@ -1,6 +1,6 @@ +use crate::database::models::DatabaseError; use crate::database::models::legacy_loader_fields::MinecraftGameVersion; use crate::database::models::loader_fields::VersionField; -use crate::database::models::DatabaseError; use crate::database::redis::RedisPool; use crate::models::pack::PackFormat; use crate::models::projects::{FileType, Loader}; diff --git a/apps/labrinth/src/validate/modpack.rs b/apps/labrinth/src/validate/modpack.rs index 7cc9733fb..e05e159ef 100644 --- a/apps/labrinth/src/validate/modpack.rs +++ b/apps/labrinth/src/validate/modpack.rs @@ -90,7 +90,7 @@ impl super::Validator for ModpackValidator { _ => { return Err(ValidationError::InvalidInput( "Invalid pack file path!".into(), - )) + )); } }; } diff --git a/apps/labrinth/src/validate/neoforge.rs b/apps/labrinth/src/validate/neoforge.rs index 59670e8b7..b85727456 100644 --- a/apps/labrinth/src/validate/neoforge.rs +++ b/apps/labrinth/src/validate/neoforge.rs @@ -1,5 +1,5 @@ use crate::validate::{ - filter_out_packs, SupportedGameVersions, ValidationError, ValidationResult, + SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs, }; use std::io::Cursor; use zip::ZipArchive; diff --git a/apps/labrinth/src/validate/quilt.rs b/apps/labrinth/src/validate/quilt.rs index 0c3f50bcf..08312f566 100644 --- a/apps/labrinth/src/validate/quilt.rs +++ b/apps/labrinth/src/validate/quilt.rs @@ -1,5 +1,5 @@ use crate::validate::{ - filter_out_packs, SupportedGameVersions, ValidationError, ValidationResult, + SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs, }; use chrono::DateTime; use std::io::Cursor; diff --git a/apps/labrinth/src/validate/rift.rs b/apps/labrinth/src/validate/rift.rs index b24ff5007..b4c6c5d9c 100644 --- a/apps/labrinth/src/validate/rift.rs +++ b/apps/labrinth/src/validate/rift.rs @@ -1,5 +1,5 @@ use crate::validate::{ - filter_out_packs, SupportedGameVersions, ValidationError, ValidationResult, + SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs, }; use std::io::Cursor; use zip::ZipArchive; diff --git a/apps/labrinth/tests/analytics.rs b/apps/labrinth/tests/analytics.rs index 5c591c21c..b15dd4d73 100644 --- a/apps/labrinth/tests/analytics.rs +++ b/apps/labrinth/tests/analytics.rs @@ -5,12 +5,12 @@ use common::permissions::PermissionsTestContext; use common::{ api_v3::ApiV3, database::*, - environment::{with_test_environment, TestEnvironment}, + environment::{TestEnvironment, with_test_environment}, }; use itertools::Itertools; use labrinth::models::teams::ProjectPermissions; use labrinth::queue::payouts; -use rust_decimal::{prelude::ToPrimitive, Decimal}; +use rust_decimal::{Decimal, prelude::ToPrimitive}; mod common; @@ -89,7 +89,7 @@ pub async fn analytics_revenue() { assert_eq!(analytics.len(), 1); // 1 project let project_analytics = analytics.get(&alpha_project_id).unwrap(); assert_eq!(project_analytics.len(), 8); // 1 days cut off, and 2 points take place on the same day. note that the day exactly 14 days ago is included - // sorted_by_key, values in the order of smallest to largest key + // sorted_by_key, values in the order of smallest to largest key let (sorted_keys, sorted_by_key): (Vec, Vec) = project_analytics .iter() diff --git a/apps/labrinth/tests/common/api_common/generic.rs b/apps/labrinth/tests/common/api_common/generic.rs index f07a153e8..eb5dfd634 100644 --- a/apps/labrinth/tests/common/api_common/generic.rs +++ b/apps/labrinth/tests/common/api_common/generic.rs @@ -10,9 +10,9 @@ use labrinth::models::{ use crate::common::{api_v2::ApiV2, api_v3::ApiV3, dummy_data::TestFile}; use super::{ + Api, ApiProject, ApiTags, ApiTeams, ApiUser, ApiVersion, models::{CommonProject, CommonVersion}, request_data::{ImageData, ProjectCreationRequestData}, - Api, ApiProject, ApiTags, ApiTeams, ApiUser, ApiVersion, }; #[derive(Clone)] diff --git a/apps/labrinth/tests/common/api_common/mod.rs b/apps/labrinth/tests/common/api_common/mod.rs index aca326b37..8d029c59f 100644 --- a/apps/labrinth/tests/common/api_common/mod.rs +++ b/apps/labrinth/tests/common/api_common/mod.rs @@ -8,11 +8,11 @@ use self::request_data::{ImageData, ProjectCreationRequestData}; use actix_web::dev::ServiceResponse; use async_trait::async_trait; use labrinth::{ + LabrinthConfig, models::{ projects::{ProjectId, VersionType}, teams::{OrganizationPermissions, ProjectPermissions}, }, - LabrinthConfig, }; use super::dummy_data::TestFile; @@ -169,7 +169,7 @@ pub trait ApiProject { ) -> ServiceResponse; async fn get_moderation_inbox(&self, pat: Option<&str>) -> ServiceResponse; async fn read_thread(&self, id: &str, pat: Option<&str>) - -> ServiceResponse; + -> ServiceResponse; async fn delete_thread_message( &self, id: &str, @@ -340,7 +340,7 @@ pub trait ApiVersion { pat: Option<&str>, ) -> CommonVersion; async fn get_version(&self, id: &str, pat: Option<&str>) - -> ServiceResponse; + -> ServiceResponse; async fn get_version_deserialized_common( &self, id_or_slug: &str, diff --git a/apps/labrinth/tests/common/api_v2/mod.rs b/apps/labrinth/tests/common/api_v2/mod.rs index a3d52ba01..c1fbb2cb3 100644 --- a/apps/labrinth/tests/common/api_v2/mod.rs +++ b/apps/labrinth/tests/common/api_v2/mod.rs @@ -4,7 +4,7 @@ use super::{ api_common::{Api, ApiBuildable}, environment::LocalService, }; -use actix_web::{dev::ServiceResponse, test, App}; +use actix_web::{App, dev::ServiceResponse, test}; use async_trait::async_trait; use labrinth::LabrinthConfig; use std::rc::Rc; diff --git a/apps/labrinth/tests/common/api_v2/project.rs b/apps/labrinth/tests/common/api_v2/project.rs index 83bd12a5b..90f917bd3 100644 --- a/apps/labrinth/tests/common/api_v2/project.rs +++ b/apps/labrinth/tests/common/api_v2/project.rs @@ -4,9 +4,9 @@ use crate::{ assert_status, common::{ api_common::{ + Api, ApiProject, AppendsOptionalPat, models::{CommonItemType, CommonProject, CommonVersion}, request_data::{ImageData, ProjectCreationRequestData}, - Api, ApiProject, AppendsOptionalPat, }, dummy_data::TestFile, }, @@ -27,8 +27,8 @@ use serde_json::json; use crate::common::database::MOD_USER_PAT; use super::{ - request_data::{self, get_public_project_creation_data}, ApiV2, + request_data::{self, get_public_project_creation_data}, }; impl ApiV2 { diff --git a/apps/labrinth/tests/common/api_v2/tags.rs b/apps/labrinth/tests/common/api_v2/tags.rs index b78a5c0d1..c68aed17c 100644 --- a/apps/labrinth/tests/common/api_v2/tags.rs +++ b/apps/labrinth/tests/common/api_v2/tags.rs @@ -12,8 +12,8 @@ use crate::{ assert_status, common::{ api_common::{ - models::{CommonCategoryData, CommonLoaderData}, Api, ApiTags, AppendsOptionalPat, + models::{CommonCategoryData, CommonLoaderData}, }, database::ADMIN_USER_PAT, }, diff --git a/apps/labrinth/tests/common/api_v2/team.rs b/apps/labrinth/tests/common/api_v2/team.rs index 8af4f0054..eeb70342a 100644 --- a/apps/labrinth/tests/common/api_v2/team.rs +++ b/apps/labrinth/tests/common/api_v2/team.rs @@ -10,8 +10,8 @@ use serde_json::json; use crate::{ assert_status, common::api_common::{ - models::{CommonNotification, CommonTeamMember}, Api, ApiTeams, AppendsOptionalPat, + models::{CommonNotification, CommonTeamMember}, }, }; diff --git a/apps/labrinth/tests/common/api_v2/version.rs b/apps/labrinth/tests/common/api_v2/version.rs index 2cb735620..9c818c13a 100644 --- a/apps/labrinth/tests/common/api_v2/version.rs +++ b/apps/labrinth/tests/common/api_v2/version.rs @@ -1,14 +1,14 @@ use std::collections::HashMap; use super::{ - request_data::{self, get_public_version_creation_data}, ApiV2, + request_data::{self, get_public_version_creation_data}, }; use crate::{ assert_status, common::{ api_common::{ - models::CommonVersion, Api, ApiVersion, AppendsOptionalPat, + Api, ApiVersion, AppendsOptionalPat, models::CommonVersion, }, dummy_data::TestFile, }, diff --git a/apps/labrinth/tests/common/api_v3/collections.rs b/apps/labrinth/tests/common/api_v3/collections.rs index dd506b671..38fce969d 100644 --- a/apps/labrinth/tests/common/api_v3/collections.rs +++ b/apps/labrinth/tests/common/api_v3/collections.rs @@ -9,7 +9,7 @@ use serde_json::json; use crate::{ assert_status, - common::api_common::{request_data::ImageData, Api, AppendsOptionalPat}, + common::api_common::{Api, AppendsOptionalPat, request_data::ImageData}, }; use super::ApiV3; diff --git a/apps/labrinth/tests/common/api_v3/mod.rs b/apps/labrinth/tests/common/api_v3/mod.rs index f4a0d889a..2b2ceb5d9 100644 --- a/apps/labrinth/tests/common/api_v3/mod.rs +++ b/apps/labrinth/tests/common/api_v3/mod.rs @@ -4,7 +4,7 @@ use super::{ api_common::{Api, ApiBuildable}, environment::LocalService, }; -use actix_web::{dev::ServiceResponse, test, App}; +use actix_web::{App, dev::ServiceResponse, test}; use async_trait::async_trait; use labrinth::LabrinthConfig; use std::rc::Rc; diff --git a/apps/labrinth/tests/common/api_v3/oauth.rs b/apps/labrinth/tests/common/api_v3/oauth.rs index 80c518697..434f6aff3 100644 --- a/apps/labrinth/tests/common/api_v3/oauth.rs +++ b/apps/labrinth/tests/common/api_v3/oauth.rs @@ -1,6 +1,7 @@ use std::collections::HashMap; use actix_http::StatusCode; +use actix_web::http::header::{AUTHORIZATION, LOCATION}; use actix_web::{ dev::ServiceResponse, test::{self, TestRequest}, @@ -9,7 +10,6 @@ use labrinth::auth::oauth::{ OAuthClientAccessRequest, RespondToOAuthClientScopes, TokenRequest, TokenResponse, }; -use reqwest::header::{AUTHORIZATION, LOCATION}; use crate::{ assert_status, diff --git a/apps/labrinth/tests/common/api_v3/organization.rs b/apps/labrinth/tests/common/api_v3/organization.rs index 7f405cc03..0fb190243 100644 --- a/apps/labrinth/tests/common/api_v3/organization.rs +++ b/apps/labrinth/tests/common/api_v3/organization.rs @@ -11,7 +11,7 @@ use serde_json::json; use crate::{ assert_status, - common::api_common::{request_data::ImageData, Api, AppendsOptionalPat}, + common::api_common::{Api, AppendsOptionalPat, request_data::ImageData}, }; use super::ApiV3; diff --git a/apps/labrinth/tests/common/api_v3/project.rs b/apps/labrinth/tests/common/api_v3/project.rs index 0fa7697d0..59ad6f8a9 100644 --- a/apps/labrinth/tests/common/api_v3/project.rs +++ b/apps/labrinth/tests/common/api_v3/project.rs @@ -20,9 +20,9 @@ use crate::{ assert_status, common::{ api_common::{ + Api, ApiProject, AppendsOptionalPat, models::{CommonItemType, CommonProject, CommonVersion}, request_data::{ImageData, ProjectCreationRequestData}, - Api, ApiProject, AppendsOptionalPat, }, database::MOD_USER_PAT, dummy_data::TestFile, @@ -30,8 +30,8 @@ use crate::{ }; use super::{ - request_data::{self, get_public_project_creation_data}, ApiV3, + request_data::{self, get_public_project_creation_data}, }; #[async_trait(?Send)] diff --git a/apps/labrinth/tests/common/api_v3/tags.rs b/apps/labrinth/tests/common/api_v3/tags.rs index 407d1660b..b2eda4ac1 100644 --- a/apps/labrinth/tests/common/api_v3/tags.rs +++ b/apps/labrinth/tests/common/api_v3/tags.rs @@ -14,8 +14,8 @@ use crate::{ assert_status, common::{ api_common::{ - models::{CommonCategoryData, CommonLoaderData}, Api, ApiTags, AppendsOptionalPat, + models::{CommonCategoryData, CommonLoaderData}, }, database::ADMIN_USER_PAT, }, diff --git a/apps/labrinth/tests/common/api_v3/team.rs b/apps/labrinth/tests/common/api_v3/team.rs index 0b188b593..4bae47029 100644 --- a/apps/labrinth/tests/common/api_v3/team.rs +++ b/apps/labrinth/tests/common/api_v3/team.rs @@ -10,8 +10,8 @@ use serde_json::json; use crate::{ assert_status, common::api_common::{ - models::{CommonNotification, CommonTeamMember}, Api, ApiTeams, AppendsOptionalPat, + models::{CommonNotification, CommonTeamMember}, }, }; diff --git a/apps/labrinth/tests/common/api_v3/version.rs b/apps/labrinth/tests/common/api_v3/version.rs index a8dd47fc5..252ec1daa 100644 --- a/apps/labrinth/tests/common/api_v3/version.rs +++ b/apps/labrinth/tests/common/api_v3/version.rs @@ -1,14 +1,14 @@ use std::collections::HashMap; use super::{ - request_data::{self, get_public_version_creation_data}, ApiV3, + request_data::{self, get_public_version_creation_data}, }; use crate::{ assert_status, common::{ api_common::{ - models::CommonVersion, Api, ApiVersion, AppendsOptionalPat, + Api, ApiVersion, AppendsOptionalPat, models::CommonVersion, }, dummy_data::TestFile, }, diff --git a/apps/labrinth/tests/common/database.rs b/apps/labrinth/tests/common/database.rs index d650b091a..33ed2fc28 100644 --- a/apps/labrinth/tests/common/database.rs +++ b/apps/labrinth/tests/common/database.rs @@ -1,7 +1,7 @@ #![allow(dead_code)] use labrinth::{database::redis::RedisPool, search}; -use sqlx::{postgres::PgPoolOptions, PgPool}; +use sqlx::{PgPool, postgres::PgPoolOptions}; use std::time::Duration; use url::Url; @@ -161,7 +161,9 @@ impl TemporaryDatabase { let needs_update = dummy_data_update .is_none_or(|d| d != DUMMY_DATA_UPDATE); if needs_update { - println!("Dummy data updated, so template DB tables will be dropped and re-created"); + println!( + "Dummy data updated, so template DB tables will be dropped and re-created" + ); // Drop all tables in the database so they can be re-created and later filled with updated dummy data sqlx::query("DROP SCHEMA public CASCADE;") .execute(&pool) diff --git a/apps/labrinth/tests/common/dummy_data.rs b/apps/labrinth/tests/common/dummy_data.rs index 5dbe21a01..aa3d1f2d3 100644 --- a/apps/labrinth/tests/common/dummy_data.rs +++ b/apps/labrinth/tests/common/dummy_data.rs @@ -11,7 +11,7 @@ use labrinth::models::{ }; use serde_json::json; use sqlx::Executor; -use zip::{write::FileOptions, CompressionMethod, ZipWriter}; +use zip::{CompressionMethod, ZipWriter, write::FileOptions}; use crate::{ assert_status, @@ -19,7 +19,7 @@ use crate::{ }; use super::{ - api_common::{request_data::ImageData, ApiProject, AppendsOptionalPat}, + api_common::{ApiProject, AppendsOptionalPat, request_data::ImageData}, api_v3::ApiV3, database::TemporaryDatabase, }; @@ -98,7 +98,7 @@ impl TestFile { let mut zip = ZipWriter::new(&mut cursor); zip.start_file( "fabric.mod.json", - FileOptions::default() + FileOptions::<()>::default() .compression_method(CompressionMethod::Stored), ) .unwrap(); @@ -106,7 +106,7 @@ impl TestFile { zip.start_file( "META-INF/mods.toml", - FileOptions::default() + FileOptions::<()>::default() .compression_method(CompressionMethod::Stored), ) .unwrap(); @@ -159,7 +159,7 @@ impl TestFile { let mut zip = ZipWriter::new(&mut cursor); zip.start_file( "modrinth.index.json", - FileOptions::default() + FileOptions::<()>::default() .compression_method(CompressionMethod::Stored), ) .unwrap(); diff --git a/apps/labrinth/tests/common/environment.rs b/apps/labrinth/tests/common/environment.rs index 7747916ac..8031e816a 100644 --- a/apps/labrinth/tests/common/environment.rs +++ b/apps/labrinth/tests/common/environment.rs @@ -1,10 +1,10 @@ #![allow(dead_code)] use super::{ - api_common::{generic::GenericApi, Api, ApiBuildable}, + api_common::{Api, ApiBuildable, generic::GenericApi}, api_v2::ApiV2, api_v3::ApiV3, - database::{TemporaryDatabase, FRIEND_USER_ID, USER_USER_PAT}, + database::{FRIEND_USER_ID, TemporaryDatabase, USER_USER_PAT}, dummy_data, }; use crate::{assert_status, common::setup}; @@ -146,18 +146,18 @@ pub trait LocalService { ) -> std::pin::Pin< Box< dyn std::future::Future< - Output = Result, - >, + Output = Result, + >, >, >; } impl LocalService for S where S: actix_web::dev::Service< - actix_http::Request, - Response = ServiceResponse, - Error = actix_web::Error, - >, + actix_http::Request, + Response = ServiceResponse, + Error = actix_web::Error, + >, S::Future: 'static, { fn call( @@ -166,8 +166,8 @@ where ) -> std::pin::Pin< Box< dyn std::future::Future< - Output = Result, - >, + Output = Result, + >, >, > { Box::pin(self.call(req)) diff --git a/apps/labrinth/tests/common/mod.rs b/apps/labrinth/tests/common/mod.rs index 75d0ea7d7..625c8498c 100644 --- a/apps/labrinth/tests/common/mod.rs +++ b/apps/labrinth/tests/common/mod.rs @@ -1,5 +1,5 @@ +use labrinth::{LabrinthConfig, file_hosting, queue}; use labrinth::{check_env_vars, clickhouse}; -use labrinth::{file_hosting, queue, LabrinthConfig}; use std::sync::Arc; pub mod api_common; diff --git a/apps/labrinth/tests/common/permissions.rs b/apps/labrinth/tests/common/permissions.rs index 89e5aa2e2..fedaa72ce 100644 --- a/apps/labrinth/tests/common/permissions.rs +++ b/apps/labrinth/tests/common/permissions.rs @@ -8,7 +8,7 @@ use serde_json::json; use crate::common::{ api_common::ApiTeams, - database::{generate_random_name, ADMIN_USER_PAT}, + database::{ADMIN_USER_PAT, generate_random_name}, }; use super::{ diff --git a/apps/labrinth/tests/common/search.rs b/apps/labrinth/tests/common/search.rs index 6bfc8a504..daf7a9eb5 100644 --- a/apps/labrinth/tests/common/search.rs +++ b/apps/labrinth/tests/common/search.rs @@ -10,7 +10,7 @@ use crate::{ common::{ api_common::{Api, ApiProject, ApiVersion}, database::{FRIEND_USER_PAT, MOD_USER_PAT, USER_USER_PAT}, - dummy_data::{TestFile, DUMMY_CATEGORIES}, + dummy_data::{DUMMY_CATEGORIES, TestFile}, }, }; diff --git a/apps/labrinth/tests/error.rs b/apps/labrinth/tests/error.rs index b92e774c1..585f37bac 100644 --- a/apps/labrinth/tests/error.rs +++ b/apps/labrinth/tests/error.rs @@ -5,7 +5,7 @@ use common::api_common::ApiProject; use common::api_v3::ApiV3; use common::database::USER_USER_PAT; -use common::environment::{with_test_environment, TestEnvironment}; +use common::environment::{TestEnvironment, with_test_environment}; mod common; diff --git a/apps/labrinth/tests/games.rs b/apps/labrinth/tests/games.rs index c078f9946..5b423ef46 100644 --- a/apps/labrinth/tests/games.rs +++ b/apps/labrinth/tests/games.rs @@ -2,7 +2,7 @@ use common::{ api_v3::ApiV3, - environment::{with_test_environment, TestEnvironment}, + environment::{TestEnvironment, with_test_environment}, }; mod common; diff --git a/apps/labrinth/tests/loader_fields.rs b/apps/labrinth/tests/loader_fields.rs index 0e516f43c..7caf8beb4 100644 --- a/apps/labrinth/tests/loader_fields.rs +++ b/apps/labrinth/tests/loader_fields.rs @@ -3,7 +3,7 @@ use std::collections::HashSet; use actix_http::StatusCode; use actix_web::test; use common::api_v3::ApiV3; -use common::environment::{with_test_environment, TestEnvironment}; +use common::environment::{TestEnvironment, with_test_environment}; use itertools::Itertools; use labrinth::database::models::legacy_loader_fields::MinecraftGameVersion; use labrinth::models::v3; @@ -364,16 +364,20 @@ async fn creating_loader_fields() { project.fields.get("game_versions").unwrap(), &[json!("1.20.1"), json!("1.20.2"), json!("1.20.5")] ); - assert!(project - .fields - .get("singleplayer") - .unwrap() - .contains(&json!(false))); - assert!(project - .fields - .get("singleplayer") - .unwrap() - .contains(&json!(true))); + assert!( + project + .fields + .get("singleplayer") + .unwrap() + .contains(&json!(false)) + ); + assert!( + project + .fields + .get("singleplayer") + .unwrap() + .contains(&json!(true)) + ); }) .await } diff --git a/apps/labrinth/tests/oauth.rs b/apps/labrinth/tests/oauth.rs index 61f42562a..d10bfe353 100644 --- a/apps/labrinth/tests/oauth.rs +++ b/apps/labrinth/tests/oauth.rs @@ -1,20 +1,20 @@ use actix_http::StatusCode; +use actix_web::http::header::{CACHE_CONTROL, PRAGMA}; use actix_web::test; use common::{ api_v3::oauth::get_redirect_location_query_params, api_v3::{ + ApiV3, oauth::{ get_auth_code_from_redirect_params, get_authorize_accept_flow_id, }, - ApiV3, }, database::FRIEND_USER_ID, database::{FRIEND_USER_PAT, USER_USER_ID, USER_USER_PAT}, dummy_data::DummyOAuthClientAlpha, - environment::{with_test_environment, TestEnvironment}, + environment::{TestEnvironment, with_test_environment}, }; use labrinth::auth::oauth::TokenResponse; -use reqwest::header::{CACHE_CONTROL, PRAGMA}; mod common; diff --git a/apps/labrinth/tests/oauth_clients.rs b/apps/labrinth/tests/oauth_clients.rs index 335dbca44..3ababa4ad 100644 --- a/apps/labrinth/tests/oauth_clients.rs +++ b/apps/labrinth/tests/oauth_clients.rs @@ -4,7 +4,7 @@ use common::{ api_v3::ApiV3, database::{FRIEND_USER_ID, FRIEND_USER_PAT, USER_USER_ID, USER_USER_PAT}, dummy_data::DummyOAuthClientAlpha, - environment::{with_test_environment, TestEnvironment}, + environment::{TestEnvironment, with_test_environment}, get_json_val_str, }; use labrinth::{ diff --git a/apps/labrinth/tests/organizations.rs b/apps/labrinth/tests/organizations.rs index 1a570b358..b21f0dfb3 100644 --- a/apps/labrinth/tests/organizations.rs +++ b/apps/labrinth/tests/organizations.rs @@ -1,9 +1,9 @@ use crate::common::{ api_common::{ApiProject, ApiTeams}, database::{ - generate_random_name, ADMIN_USER_PAT, ENEMY_USER_ID_PARSED, - ENEMY_USER_PAT, FRIEND_USER_ID_PARSED, MOD_USER_ID, MOD_USER_PAT, - USER_USER_ID, USER_USER_ID_PARSED, + ADMIN_USER_PAT, ENEMY_USER_ID_PARSED, ENEMY_USER_PAT, + FRIEND_USER_ID_PARSED, MOD_USER_ID, MOD_USER_PAT, USER_USER_ID, + USER_USER_ID_PARSED, generate_random_name, }, dummy_data::{ DummyImage, DummyOrganizationZeta, DummyProjectAlpha, DummyProjectBeta, @@ -14,7 +14,7 @@ use common::{ api_v3::ApiV3, database::{FRIEND_USER_ID, FRIEND_USER_PAT, USER_USER_PAT}, environment::{ - with_test_environment, with_test_environment_all, TestEnvironment, + TestEnvironment, with_test_environment, with_test_environment_all, }, permissions::{PermissionsTest, PermissionsTestContext}, }; @@ -372,9 +372,11 @@ async fn add_remove_organization_projects() { USER_USER_PAT, ) .await; - assert!(projects - .iter() - .any(|p| p.id.to_string() == alpha_project_id)); + assert!( + projects + .iter() + .any(|p| p.id.to_string() == alpha_project_id) + ); // Add/remove project to organization, first by ID, then by slug for alpha in [alpha_project_id, alpha_project_slug] { @@ -411,9 +413,11 @@ async fn add_remove_organization_projects() { USER_USER_PAT, ) .await; - assert!(!projects - .iter() - .any(|p| p.id.to_string() == alpha_project_id)); + assert!( + !projects + .iter() + .any(|p| p.id.to_string() == alpha_project_id) + ); // Remove project from organization let resp = test_env @@ -437,9 +441,11 @@ async fn add_remove_organization_projects() { USER_USER_PAT, ) .await; - assert!(projects - .iter() - .any(|p| p.id.to_string() == alpha_project_id)); + assert!( + projects + .iter() + .any(|p| p.id.to_string() == alpha_project_id) + ); // Get organization projects let projects = test_env diff --git a/apps/labrinth/tests/project.rs b/apps/labrinth/tests/project.rs index 8ee34ca20..2fe3a721f 100644 --- a/apps/labrinth/tests/project.rs +++ b/apps/labrinth/tests/project.rs @@ -4,20 +4,6 @@ use common::api_v3::ApiV3; use common::database::*; use common::dummy_data::DUMMY_CATEGORIES; -use ariadne::ids::base62_impl::parse_base62; -use common::environment::{ - with_test_environment, with_test_environment_all, TestEnvironment, -}; -use common::permissions::{PermissionsTest, PermissionsTestContext}; -use futures::StreamExt; -use labrinth::database::models::project_item::{ - PROJECTS_NAMESPACE, PROJECTS_SLUGS_NAMESPACE, -}; -use labrinth::models::projects::ProjectId; -use labrinth::models::teams::ProjectPermissions; -use labrinth::util::actix::{MultipartSegment, MultipartSegmentData}; -use serde_json::json; - use crate::common::api_common::models::CommonProject; use crate::common::api_common::request_data::ProjectCreationRequestData; use crate::common::api_common::{ApiProject, ApiTeams, ApiVersion}; @@ -25,6 +11,21 @@ use crate::common::dummy_data::{ DummyImage, DummyOrganizationZeta, DummyProjectAlpha, DummyProjectBeta, TestFile, }; +use ariadne::ids::base62_impl::parse_base62; +use common::environment::{ + TestEnvironment, with_test_environment, with_test_environment_all, +}; +use common::permissions::{PermissionsTest, PermissionsTestContext}; +use futures::StreamExt; +use hex::ToHex; +use labrinth::database::models::project_item::{ + PROJECTS_NAMESPACE, PROJECTS_SLUGS_NAMESPACE, +}; +use labrinth::models::projects::ProjectId; +use labrinth::models::teams::ProjectPermissions; +use labrinth::util::actix::{MultipartSegment, MultipartSegmentData}; +use serde_json::json; +use sha1::Digest; mod common; #[actix_rt::test] @@ -204,9 +205,8 @@ async fn test_add_remove_project() { let uploaded_version_id = project.versions[0]; // Checks files to ensure they were uploaded and correctly identify the file - let hash = sha1::Sha1::from(basic_mod_file.bytes()) - .digest() - .to_string(); + let hash = sha1::Sha1::digest(basic_mod_file.bytes()) + .encode_hex::(); let version = api .get_version_from_hash_deserialized_common( &hash, diff --git a/apps/labrinth/tests/scopes.rs b/apps/labrinth/tests/scopes.rs index 460998bf7..2836da52a 100644 --- a/apps/labrinth/tests/scopes.rs +++ b/apps/labrinth/tests/scopes.rs @@ -10,13 +10,13 @@ use actix_http::StatusCode; use actix_web::test; use ariadne::ids::base62_impl::parse_base62; use chrono::{Duration, Utc}; -use common::api_common::models::CommonItemType; use common::api_common::Api; -use common::api_v3::request_data::get_public_project_creation_data; +use common::api_common::models::CommonItemType; use common::api_v3::ApiV3; +use common::api_v3::request_data::get_public_project_creation_data; use common::dummy_data::TestFile; use common::environment::{ - with_test_environment, with_test_environment_all, TestEnvironment, + TestEnvironment, with_test_environment, with_test_environment_all, }; use common::{database::*, scopes::ScopeTest}; use labrinth::models::pats::Scopes; @@ -380,16 +380,20 @@ pub async fn project_version_reads_scopes() { .test(req_gen, read_project) .await .unwrap(); - assert!(!failure - .as_array() - .unwrap() - .iter() - .any(|x| x["status"] == "processing")); - assert!(success - .as_array() - .unwrap() - .iter() - .any(|x| x["status"] == "processing")); + assert!( + !failure + .as_array() + .unwrap() + .iter() + .any(|x| x["status"] == "processing") + ); + assert!( + success + .as_array() + .unwrap() + .iter() + .any(|x| x["status"] == "processing") + ); // Project metadata reading let req_gen = |pat: Option| async move { diff --git a/apps/labrinth/tests/search.rs b/apps/labrinth/tests/search.rs index 891fc78b8..e05b13def 100644 --- a/apps/labrinth/tests/search.rs +++ b/apps/labrinth/tests/search.rs @@ -5,8 +5,8 @@ use common::database::*; use common::dummy_data::DUMMY_CATEGORIES; use ariadne::ids::base62_impl::parse_base62; -use common::environment::with_test_environment; use common::environment::TestEnvironment; +use common::environment::with_test_environment; use common::search::setup_search_projects; use futures::stream::StreamExt; use serde_json::json; diff --git a/apps/labrinth/tests/tags.rs b/apps/labrinth/tests/tags.rs index 264c7e29e..8f4295dda 100644 --- a/apps/labrinth/tests/tags.rs +++ b/apps/labrinth/tests/tags.rs @@ -3,7 +3,7 @@ use std::collections::{HashMap, HashSet}; use common::{ api_v3::ApiV3, environment::{ - with_test_environment, with_test_environment_all, TestEnvironment, + TestEnvironment, with_test_environment, with_test_environment_all, }, }; diff --git a/apps/labrinth/tests/teams.rs b/apps/labrinth/tests/teams.rs index 4743ecf4c..4645eec92 100644 --- a/apps/labrinth/tests/teams.rs +++ b/apps/labrinth/tests/teams.rs @@ -3,7 +3,7 @@ use actix_http::StatusCode; use common::{ api_v3::ApiV3, environment::{ - with_test_environment, with_test_environment_all, TestEnvironment, + TestEnvironment, with_test_environment, with_test_environment_all, }, }; use labrinth::models::teams::{OrganizationPermissions, ProjectPermissions}; diff --git a/apps/labrinth/tests/user.rs b/apps/labrinth/tests/user.rs index b1b7bfd01..d01ffb821 100644 --- a/apps/labrinth/tests/user.rs +++ b/apps/labrinth/tests/user.rs @@ -94,9 +94,11 @@ pub async fn get_user_projects_after_joining_team_shows_team_projects() { FRIEND_USER_PAT, ) .await; - assert!(projects - .iter() - .any(|p| p.id.to_string() == *alpha_project_id)); + assert!( + projects + .iter() + .any(|p| p.id.to_string() == *alpha_project_id) + ); }) .await; } @@ -131,9 +133,11 @@ pub async fn get_user_projects_after_leaving_team_shows_no_team_projects() { FRIEND_USER_PAT, ) .await; - assert!(!projects - .iter() - .any(|p| p.id.to_string() == *alpha_project_id)); + assert!( + !projects + .iter() + .any(|p| p.id.to_string() == *alpha_project_id) + ); }) .await; } diff --git a/apps/labrinth/tests/v2/error.rs b/apps/labrinth/tests/v2/error.rs index 1ae56a719..da98df471 100644 --- a/apps/labrinth/tests/v2/error.rs +++ b/apps/labrinth/tests/v2/error.rs @@ -8,7 +8,7 @@ use bytes::Bytes; use crate::common::database::USER_USER_PAT; use crate::common::{ api_v2::ApiV2, - environment::{with_test_environment, TestEnvironment}, + environment::{TestEnvironment, with_test_environment}, }; #[actix_rt::test] pub async fn error_404_empty() { diff --git a/apps/labrinth/tests/v2/notifications.rs b/apps/labrinth/tests/v2/notifications.rs index 692ae1388..f481f3cfc 100644 --- a/apps/labrinth/tests/v2/notifications.rs +++ b/apps/labrinth/tests/v2/notifications.rs @@ -2,7 +2,7 @@ use crate::common::{ api_common::ApiTeams, api_v2::ApiV2, database::{FRIEND_USER_ID, FRIEND_USER_PAT, USER_USER_PAT}, - environment::{with_test_environment, TestEnvironment}, + environment::{TestEnvironment, with_test_environment}, }; #[actix_rt::test] diff --git a/apps/labrinth/tests/v2/project.rs b/apps/labrinth/tests/v2/project.rs index d81f263e4..69f00db4d 100644 --- a/apps/labrinth/tests/v2/project.rs +++ b/apps/labrinth/tests/v2/project.rs @@ -4,13 +4,13 @@ use crate::{ assert_status, common::{ api_common::{ApiProject, ApiVersion, AppendsOptionalPat}, - api_v2::{request_data::get_public_project_creation_data_json, ApiV2}, + api_v2::{ApiV2, request_data::get_public_project_creation_data_json}, database::{ - generate_random_name, ADMIN_USER_PAT, FRIEND_USER_ID, - FRIEND_USER_PAT, USER_USER_PAT, + ADMIN_USER_PAT, FRIEND_USER_ID, FRIEND_USER_PAT, USER_USER_PAT, + generate_random_name, }, dummy_data::TestFile, - environment::{with_test_environment, TestEnvironment}, + environment::{TestEnvironment, with_test_environment}, permissions::{PermissionsTest, PermissionsTestContext}, }, }; @@ -18,6 +18,7 @@ use actix_http::StatusCode; use actix_web::test; use ariadne::ids::base62_impl::parse_base62; use futures::StreamExt; +use hex::ToHex; use itertools::Itertools; use labrinth::{ database::models::project_item::PROJECTS_SLUGS_NAMESPACE, @@ -25,6 +26,7 @@ use labrinth::{ util::actix::{AppendsMultipart, MultipartSegment, MultipartSegmentData}, }; use serde_json::json; +use sha1::Digest; #[actix_rt::test] async fn test_project_type_sanity() { @@ -202,9 +204,8 @@ async fn test_add_remove_project() { let uploaded_version_id = project.versions[0]; // Checks files to ensure they were uploaded and correctly identify the file - let hash = sha1::Sha1::from(basic_mod_file.bytes()) - .digest() - .to_string(); + let hash = sha1::Sha1::digest(basic_mod_file.bytes()) + .encode_hex::(); let version = api .get_version_from_hash_deserialized( &hash, @@ -468,7 +469,7 @@ async fn permissions_patch_project_v2() { .map(|(key, value)| { let test_env = test_env.clone(); async move { - let req_gen = |ctx: PermissionsTestContext| async { + let req_gen = async |ctx: PermissionsTestContext| { api.edit_project( &ctx.project_id.unwrap(), json!({ diff --git a/apps/labrinth/tests/v2/scopes.rs b/apps/labrinth/tests/v2/scopes.rs index 693d4af57..bbcb654f9 100644 --- a/apps/labrinth/tests/v2/scopes.rs +++ b/apps/labrinth/tests/v2/scopes.rs @@ -1,10 +1,10 @@ use crate::common::api_common::ApiProject; use crate::common::api_common::ApiVersion; -use crate::common::api_v2::request_data::get_public_project_creation_data; use crate::common::api_v2::ApiV2; +use crate::common::api_v2::request_data::get_public_project_creation_data; use crate::common::dummy_data::TestFile; -use crate::common::environment::with_test_environment; use crate::common::environment::TestEnvironment; +use crate::common::environment::with_test_environment; use crate::common::scopes::ScopeTest; use ariadne::ids::base62_impl::parse_base62; use labrinth::models::pats::Scopes; diff --git a/apps/labrinth/tests/v2/search.rs b/apps/labrinth/tests/v2/search.rs index 059b2a780..78b9f1a0e 100644 --- a/apps/labrinth/tests/v2/search.rs +++ b/apps/labrinth/tests/v2/search.rs @@ -5,10 +5,10 @@ use crate::common::api_common::ApiVersion; use crate::common::api_v2::ApiV2; use crate::common::database::*; -use crate::common::dummy_data::TestFile; use crate::common::dummy_data::DUMMY_CATEGORIES; -use crate::common::environment::with_test_environment; +use crate::common::dummy_data::TestFile; use crate::common::environment::TestEnvironment; +use crate::common::environment::with_test_environment; use actix_http::StatusCode; use ariadne::ids::base62_impl::parse_base62; use futures::stream::StreamExt; diff --git a/apps/labrinth/tests/v2/tags.rs b/apps/labrinth/tests/v2/tags.rs index 1171e6502..8a5800637 100644 --- a/apps/labrinth/tests/v2/tags.rs +++ b/apps/labrinth/tests/v2/tags.rs @@ -5,7 +5,7 @@ use std::collections::HashSet; use crate::common::{ api_v2::ApiV2, - environment::{with_test_environment, TestEnvironment}, + environment::{TestEnvironment, with_test_environment}, }; #[actix_rt::test] diff --git a/apps/labrinth/tests/v2/teams.rs b/apps/labrinth/tests/v2/teams.rs index 545b821de..67f0a5c93 100644 --- a/apps/labrinth/tests/v2/teams.rs +++ b/apps/labrinth/tests/v2/teams.rs @@ -11,7 +11,7 @@ use crate::{ FRIEND_USER_ID, FRIEND_USER_ID_PARSED, FRIEND_USER_PAT, USER_USER_ID_PARSED, USER_USER_PAT, }, - environment::{with_test_environment, TestEnvironment}, + environment::{TestEnvironment, with_test_environment}, }, }; diff --git a/apps/labrinth/tests/v2/version.rs b/apps/labrinth/tests/v2/version.rs index b4195bef6..87797c0ed 100644 --- a/apps/labrinth/tests/v2/version.rs +++ b/apps/labrinth/tests/v2/version.rs @@ -14,7 +14,7 @@ use crate::common::api_v2::ApiV2; use crate::common::api_v2::request_data::get_public_project_creation_data; use crate::common::dummy_data::{DummyProjectAlpha, DummyProjectBeta}; -use crate::common::environment::{with_test_environment, TestEnvironment}; +use crate::common::environment::{TestEnvironment, with_test_environment}; use crate::common::{ database::{ENEMY_USER_PAT, USER_USER_PAT}, dummy_data::TestFile, @@ -470,10 +470,10 @@ async fn add_version_project_types_v2() { ) .await; assert_eq!(test_project.project_type, "project"); // No project_type set, as no versions are set - // Default to 'project' if none are found - // This is a known difference between older v2 ,but is acceptable. - // This would be the appropriate test on older v2: - // assert_eq!(test_project.project_type, "modpack"); + // Default to 'project' if none are found + // This is a known difference between older v2 ,but is acceptable. + // This would be the appropriate test on older v2: + // assert_eq!(test_project.project_type, "modpack"); // Create a version with a modpack file attached let test_version = api diff --git a/packages/app-lib/Cargo.toml b/packages/app-lib/Cargo.toml index 3edf70181..cb9dfa3cc 100644 --- a/packages/app-lib/Cargo.toml +++ b/packages/app-lib/Cargo.toml @@ -10,14 +10,14 @@ serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde_ini = "0.2.0" sha1_smol = { version = "1.0.0", features = ["std"] } -sha2 = "0.10.8" +sha2 = "0.10.9" url = { version = "2.2", features = ["serde"] } uuid = { version = "1.1", features = ["serde", "v4"] } zip = "2.6.1" async_zip = { version = "0.0.17", features = ["chrono", "tokio-fs", "deflate", "bzip2", "zstd", "deflate64"] } flate2 = "1.1.1" tempfile = "3.5.0" -dashmap = { version = "6.0.1", features = ["serde"] } +dashmap = { version = "6.1.0", features = ["serde"] } quick-xml = { version = "0.37", features = ["async-tokio"] } enumset = "1.1" @@ -42,7 +42,7 @@ indicatif = { version = "0.17.3", optional = true } async-tungstenite = { version = "0.29.1", features = ["tokio-runtime", "tokio-rustls-webpki-roots"] } futures = "0.3" -reqwest = { version = "0.12.3", features = ["json", "stream", "deflate", "gzip", "brotli", "rustls-tls", "charset", "http2", "macos-system-configuration"], default-features = false } +reqwest = { version = "0.12.15", features = ["json", "stream", "deflate", "gzip", "brotli", "rustls-tls", "charset", "http2", "macos-system-configuration"], default-features = false } tokio = { version = "1", features = ["full"] } tokio-util = "0.7" async-recursion = "1.0.4" @@ -63,7 +63,7 @@ discord-rich-presence = "0.2.4" p256 = { version = "0.13.2", features = ["ecdsa"] } rand = "0.8" byteorder = "1.5.0" -base64 = "0.22.0" +base64 = "0.22.1" sqlx = { version = "0.8.2", features = [ "runtime-tokio", "sqlite", "macros" ] } diff --git a/packages/daedalus/Cargo.toml b/packages/daedalus/Cargo.toml index 9fa0f5124..01b1c2d9f 100644 --- a/packages/daedalus/Cargo.toml +++ b/packages/daedalus/Cargo.toml @@ -2,7 +2,7 @@ name = "daedalus" version = "0.2.3" authors = ["Jai A "] -edition = "2021" +edition = "2024" license = "MIT" description = "Utilities for querying and parsing Minecraft metadata" repository = "https://github.com/modrinth/daedalus/" @@ -17,4 +17,4 @@ readme = "README.md" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" chrono = { version = "0.4", features = ["serde"] } -thiserror = "1.0" +thiserror = "2.0" diff --git a/rustfmt.toml b/rustfmt.toml index 0c2ca5c32..9630782ef 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -1,2 +1,2 @@ -edition = "2018" +edition = "2024" max_width = 80