From e7d64e06d61c0be750a8c24637924208ae52c919 Mon Sep 17 00:00:00 2001 From: LasterAlex Date: Sun, 2 Mar 2025 16:00:21 +0200 Subject: [PATCH] Added support for TBA 7.5 --- Cargo.lock | 1016 ++++++++-------- examples/Cargo.lock | 1050 +++++++++-------- examples/album_bot/Cargo.toml | 2 +- examples/album_bot/src/main.rs | 32 +- examples/calculator_bot/Cargo.toml | 2 +- examples/calculator_bot/src/handler_tree.rs | 21 +- examples/calculator_bot/src/handlers.rs | 3 +- examples/calculator_bot/src/main.rs | 7 +- examples/calculator_bot/src/tests.rs | 4 +- examples/deep_linking_bot/Cargo.toml | 2 +- examples/deep_linking_bot/src/handler_tree.rs | 10 +- examples/deep_linking_bot/src/handlers.rs | 3 +- examples/deep_linking_bot/src/main.rs | 6 +- examples/deep_linking_bot/src/tests.rs | 3 +- examples/file_download_bot/Cargo.toml | 2 +- examples/file_download_bot/src/main.rs | 3 +- examples/hello_world_bot/Cargo.toml | 2 +- examples/hello_world_bot/src/main.rs | 3 +- examples/phrase_bot/Cargo.toml | 2 +- examples/phrase_bot/src/db/mod.rs | 3 +- examples/phrase_bot/src/db/models.rs | 3 +- examples/phrase_bot/src/handlers/private.rs | 18 +- examples/phrase_bot/src/handlers/public.rs | 3 +- examples/phrase_bot/src/main.rs | 12 +- .../phrase_bot/src/resources/handler_tree.rs | 22 +- examples/phrase_bot/src/resources/text.rs | 8 +- teloxide_tests/Cargo.toml | 4 +- teloxide_tests/src/dataset/chat.rs | 141 +-- teloxide_tests/src/dataset/chat_full_info.rs | 371 ++++++ teloxide_tests/src/dataset/message_common.rs | 20 +- teloxide_tests/src/dataset/mod.rs | 65 +- teloxide_tests/src/dataset/tests.rs | 47 +- .../src/server/routes/copy_message.rs | 1 + .../src/server/routes/edit_message_caption.rs | 8 +- .../routes/edit_message_reply_markup.rs | 3 +- .../src/server/routes/edit_message_text.rs | 3 +- teloxide_tests/src/server/routes/mod.rs | 7 +- .../src/server/routes/pin_chat_message.rs | 2 + .../src/server/routes/send_animation.rs | 14 +- .../src/server/routes/send_audio.rs | 13 +- .../src/server/routes/send_chat_action.rs | 2 + .../src/server/routes/send_contact.rs | 5 +- teloxide_tests/src/server/routes/send_dice.rs | 3 +- .../src/server/routes/send_document.rs | 13 +- .../src/server/routes/send_location.rs | 7 +- .../src/server/routes/send_media_group.rs | 27 +- .../src/server/routes/send_message.rs | 6 +- .../src/server/routes/send_photo.rs | 14 +- teloxide_tests/src/server/routes/send_poll.rs | 12 +- .../src/server/routes/send_sticker.rs | 5 +- .../src/server/routes/send_venue.rs | 5 +- .../src/server/routes/send_video.rs | 14 +- .../src/server/routes/send_video_note.rs | 11 +- .../src/server/routes/send_voice.rs | 13 +- .../src/server/routes/unpin_chat_message.rs | 2 + teloxide_tests/src/tests.rs | 13 +- 56 files changed, 1797 insertions(+), 1296 deletions(-) create mode 100644 teloxide_tests/src/dataset/chat_full_info.rs diff --git a/Cargo.lock b/Cargo.lock index c9c2bb3..4dcab42 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "actix-codec" @@ -8,7 +8,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 2.6.0", + "bitflags", "bytes", "futures-core", "futures-sink", @@ -31,11 +31,11 @@ dependencies = [ "actix-utils", "ahash", "base64", - "bitflags 2.6.0", + "bitflags", "brotli", "bytes", "bytestring", - "derive_more 0.99.18", + "derive_more 0.99.19", "encoding_rs", "flate2", "futures-core", @@ -49,7 +49,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rand", + "rand 0.8.5", "sha1", "smallvec", "tokio", @@ -65,7 +65,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -77,7 +77,7 @@ dependencies = [ "actix-multipart-derive", "actix-utils", "actix-web", - "derive_more 0.99.18", + "derive_more 0.99.19", "futures-core", "futures-util", "httparse", @@ -85,7 +85,7 @@ dependencies = [ "log", "memchr", "mime", - "rand", + "rand 0.8.5", "serde", "serde_json", "serde_plain", @@ -99,11 +99,11 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e11eb847f49a700678ea2fa73daeb3208061afa2b9d1a8527c03390f4c4a1c6b" dependencies = [ - "darling 0.20.10", + "darling", "parse-size", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -189,7 +189,7 @@ dependencies = [ "bytestring", "cfg-if", "cookie", - "derive_more 0.99.18", + "derive_more 0.99.19", "encoding_rs", "futures-core", "futures-util", @@ -220,7 +220,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -269,7 +269,7 @@ checksum = "4c221da13534b9352f3f79fcbbd6095f6d8aee63bdf1da8a73d36f9eeea17d5a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -294,10 +294,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -326,9 +326,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.19" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611cc2ae7d2e242c457e4be7f97036b8ad9ca152b499f53faf99b1ed8fc2553f" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android-tzdata" @@ -386,26 +386,27 @@ 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 = "aquamarine" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" +checksum = "0f50776554130342de4836ba542aa85a4ddb361690d7e8df13774d7284c3d5c2" dependencies = [ "include_dir", "itertools 0.10.5", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -458,15 +459,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "block-buffer" @@ -490,9 +485,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.1" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -500,15 +495,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" [[package]] name = "byteorder" @@ -518,24 +513,24 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" [[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 = "cc" -version = "1.1.37" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40545c26d092346d8a8dab71ee48e7685a7a9cba76e634790c215b41a4a7b4cf" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ "jobserver", "libc", @@ -556,16 +551,17 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", + "serde", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -618,9 +614,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[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", ] @@ -651,18 +647,18 @@ 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", ] [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" @@ -676,9 +672,9 @@ dependencies = [ [[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", @@ -688,9 +684,9 @@ dependencies = [ [[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", ] @@ -705,38 +701,14 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.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", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", + "darling_core", + "darling_macro", ] [[package]] @@ -749,19 +721,8 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim 0.11.1", - "syn 2.0.87", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core 0.13.4", - "quote", - "syn 1.0.109", + "strsim", + "syn", ] [[package]] @@ -770,9 +731,9 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.20.10", + "darling_core", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -782,19 +743,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", + "serde", ] [[package]] name = "derive_more" -version = "0.99.18" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 2.0.87", + "syn", ] [[package]] @@ -814,7 +776,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", "unicode-xid", ] @@ -837,7 +799,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -863,9 +825,9 @@ dependencies = [ [[package]] name = "either" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" dependencies = [ "serde", ] @@ -881,9 +843,9 @@ dependencies = [ [[package]] name = "env_filter" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ "log", "regex", @@ -904,9 +866,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" dependencies = [ "anstream", "anstyle", @@ -917,15 +879,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 = "erasable" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f11890ce181d47a64e5d1eb4b6caba0e7bae911a356723740d058a5d0340b7d" +checksum = "437cfb75878119ed8265685c41a115724eae43fb7cc5a0bf0e4ecc3b803af1c4" dependencies = [ "autocfg", "scopeguard", @@ -933,12 +895,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -954,9 +916,9 @@ dependencies = [ [[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", @@ -965,26 +927,26 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "filedescriptor" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7199d965852c3bac31f779ef99cbb4537f80e952e2d6aa0ffeb30cce00f4f46e" +checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" dependencies = [ "libc", - "thiserror", + "thiserror 1.0.69", "winapi", ] [[package]] name = "flate2" -version = "1.0.34" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ "crc32fast", "miniz_oxide", @@ -1007,6 +969,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "foreign-types" version = "0.3.2" @@ -1098,7 +1066,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -1159,7 +1127,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] @@ -1180,7 +1160,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -1189,17 +1169,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap", + "http 1.2.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -1208,47 +1188,36 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "hashlink" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hermit-abi" version = "0.4.0" @@ -1281,11 +1250,11 @@ dependencies = [ [[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]] @@ -1301,9 +1270,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -1317,7 +1286,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.2.0", ] [[package]] @@ -1328,16 +1297,16 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.9.5" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "httpdate" @@ -1353,15 +1322,15 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.8", + "http 1.2.0", "http-body", "httparse", "itoa", @@ -1373,12 +1342,12 @@ 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", + "http 1.2.0", "hyper", "hyper-util", "rustls", @@ -1413,7 +1382,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "hyper", "pin-project-lite", @@ -1561,7 +1530,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -1593,9 +1562,9 @@ dependencies = [ [[package]] name = "impl-more" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae21c3177a27788957044151cc2800043d127acaa460a47ebb9b84dfa2c6aa0" +checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" [[package]] name = "include_dir" @@ -1618,29 +1587,41 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", + "serde", ] [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is-terminal" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +checksum = "e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37" dependencies = [ - "hermit-abi 0.4.0", + "hermit-abi", "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1669,9 +1650,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jobserver" @@ -1684,10 +1665,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1705,9 +1687,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.162" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "libsqlite3-sys" @@ -1722,15 +1704,15 @@ dependencies = [ [[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 = "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" @@ -1761,9 +1743,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "md-5" @@ -1777,9 +1759,9 @@ dependencies = [ [[package]] name = "mediatype" -version = "0.19.18" +version = "0.19.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8878cd8d1b3c8c8ae4b2ba0a36652b7cf192f618a599a7fbdfa25cffd4ea72dd" +checksum = "659f336e6cbe1083b58900e48649ed99fc99952a983e8d8cc992494394dd3732" [[package]] name = "memchr" @@ -1803,39 +1785,32 @@ dependencies = [ "unicase", ] -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ "adler2", ] [[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", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] [[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", @@ -1854,22 +1829,12 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "cfg_aliases", "libc", ] -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - [[package]] name = "num-conv" version = "0.1.0" @@ -1887,26 +1852,26 @@ dependencies = [ [[package]] name = "object" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.20.2" +version = "1.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -1923,20 +1888,20 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[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-sys" -version = "0.9.104" +version = "0.9.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" dependencies = [ "cc", "libc", @@ -1993,29 +1958,29 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -2041,7 +2006,7 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -2055,43 +2020,40 @@ dependencies = [ ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.109", - "version_check", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ + "proc-macro-error-attr2", "proc-macro2", "quote", - "version_check", ] [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -2103,8 +2065,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.21", ] [[package]] @@ -2114,7 +2087,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -2123,25 +2106,34 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.1", ] [[package]] name = "rc-box" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0690759eabf094030c2cdabc25ade1395bac02210d920d655053c1d49583fd8" +checksum = "897fecc9fac6febd4408f9e935e86df739b0023b625e610e0357535b9c8adad0" dependencies = [ "erasable", ] [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" dependencies = [ - "bitflags 2.6.0", + "bitflags", ] [[package]] @@ -2158,9 +2150,9 @@ 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", @@ -2181,17 +2173,17 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.9" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ "base64", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.8", + "http 1.2.0", "http-body", "http-body-util", "hyper", @@ -2216,6 +2208,7 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-util", + "tower", "tower-service", "url", "wasm-bindgen", @@ -2236,15 +2229,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" dependencies = [ "cc", "cfg-if", - "getrandom", + "getrandom 0.2.15", "libc", - "spin", "untrusted", "windows-sys 0.52.0", ] @@ -2266,22 +2258,22 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.39" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.16" +version = "0.23.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ "once_cell", "rustls-pki-types", @@ -2301,9 +2293,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" [[package]] name = "rustls-webpki" @@ -2316,26 +2308,32 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustversion" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" + [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "scc" -version = "2.2.4" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d25269dd3a12467afe2e510f69fb0b46b698e5afb296b59f2145259deaf8e8" +checksum = "ea091f6cac2595aa38993f04f4ee692ed43757035c36e67c180b6828356385b1" dependencies = [ "sdd", ] [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -2348,9 +2346,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sdd" -version = "3.0.4" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49c1eeaf4b6a87c7479688c6d52b9f1153cedd3c489300564f932b065c6eab95" +checksum = "b07779b9b918cc05650cb30f404d4d7835d26df37c235eded8a6832e2fb82cca" [[package]] name = "security-framework" @@ -2358,7 +2356,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -2367,9 +2365,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -2377,38 +2375,38 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "serde" -version = "1.0.214" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "serde_html_form" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de514ef58196f1fc96dcaef80fe6170a1ce6215df9687a93fe8300e773fefc5" +checksum = "9d2de91cf02bbc07cde38891769ccd5d4f073d22a40683aa4bc7a95781aaa2c4" dependencies = [ "form_urlencoded", - "indexmap", + "indexmap 2.7.1", "itoa", "ryu", "serde", @@ -2416,9 +2414,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" dependencies = [ "itoa", "memchr", @@ -2459,24 +2457,32 @@ dependencies = [ [[package]] name = "serde_with" -version = "1.14.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ + "base64", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.7.1", "serde", + "serde_derive", + "serde_json", "serde_with_macros", + "time", ] [[package]] name = "serde_with_macros" -version = "1.5.2" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "darling 0.13.4", + "darling", "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] @@ -2501,7 +2507,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -2552,18 +2558,18 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" dependencies = [ "serde", ] [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2578,21 +2584,11 @@ dependencies = [ "lock_api", ] -[[package]] -name = "sqlformat" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" -dependencies = [ - "nom", - "unicode_categories", -] - [[package]] name = "sqlx" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e" +checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" dependencies = [ "sqlx-core", "sqlx-macros", @@ -2602,38 +2598,32 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e" +checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" dependencies = [ - "atoi", - "byteorder", "bytes", "crc", "crossbeam-queue", "either", "event-listener", - "futures-channel", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "hashlink", - "hex", - "indexmap", + "indexmap 2.7.1", "log", "memchr", "native-tls", "once_cell", - "paste", "percent-encoding", "serde", "serde_json", "sha2", "smallvec", - "sqlformat", - "thiserror", + "thiserror 2.0.11", "tokio", "tokio-stream", "tracing", @@ -2642,26 +2632,26 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657" +checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" dependencies = [ "proc-macro2", "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.87", + "syn", ] [[package]] name = "sqlx-macros-core" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5" +checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" dependencies = [ "dotenvy", "either", - "heck 0.5.0", + "heck", "hex", "once_cell", "proc-macro2", @@ -2672,7 +2662,7 @@ dependencies = [ "sqlx-core", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.87", + "syn", "tempfile", "tokio", "url", @@ -2680,20 +2670,19 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8" +checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" dependencies = [ "atoi", "base64", - "bitflags 2.6.0", + "bitflags", "byteorder", "crc", "dotenvy", "etcetera", "futures-channel", "futures-core", - "futures-io", "futures-util", "hex", "hkdf", @@ -2704,23 +2693,23 @@ dependencies = [ "md-5", "memchr", "once_cell", - "rand", + "rand 0.8.5", "serde", "serde_json", "sha2", "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 2.0.11", "tracing", "whoami", ] [[package]] name = "sqlx-sqlite" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680" +checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" dependencies = [ "atoi", "flume", @@ -2756,12 +2745,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" @@ -2776,20 +2759,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.87" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ "proc-macro2", "quote", @@ -2798,9 +2770,9 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -2813,7 +2785,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -2822,7 +2794,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "system-configuration-sys", ] @@ -2852,11 +2824,11 @@ checksum = "20f34339676cdcab560c9a82300c4c2581f68b9369aedf0fae86f2ff9565ff3e" [[package]] name = "teloxide" version = "0.13.0" -source = "git+https://github.com/teloxide/teloxide.git?rev=94db1757dc96116f4756a586fcbce3ac5ebd0c59#94db1757dc96116f4756a586fcbce3ac5ebd0c59" +source = "git+https://github.com/teloxide/teloxide.git?rev=c590976722378a3a02ad5f5dac06b30a4e013395#c590976722378a3a02ad5f5dac06b30a4e013395" dependencies = [ "aquamarine", "bytes", - "derive_more 0.99.18", + "derive_more 1.0.0", "dptree", "either", "futures", @@ -2868,7 +2840,7 @@ dependencies = [ "sqlx", "teloxide-core", "teloxide-macros", - "thiserror", + "thiserror 2.0.11", "tokio", "tokio-stream", "tokio-util", @@ -2878,12 +2850,12 @@ dependencies = [ [[package]] name = "teloxide-core" version = "0.10.1" -source = "git+https://github.com/teloxide/teloxide.git?rev=94db1757dc96116f4756a586fcbce3ac5ebd0c59#94db1757dc96116f4756a586fcbce3ac5ebd0c59" +source = "git+https://github.com/teloxide/teloxide.git?rev=c590976722378a3a02ad5f5dac06b30a4e013395#c590976722378a3a02ad5f5dac06b30a4e013395" dependencies = [ - "bitflags 1.3.2", + "bitflags", "bytes", "chrono", - "derive_more 0.99.18", + "derive_more 1.0.0", "either", "futures", "log", @@ -2898,7 +2870,7 @@ dependencies = [ "serde_with", "take_mut", "takecell", - "thiserror", + "thiserror 2.0.11", "tokio", "tokio-util", "url", @@ -2908,13 +2880,12 @@ dependencies = [ [[package]] name = "teloxide-macros" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2d33d809c3e7161a9ab18bedddf98821245014f0a78fa4d2c9430b2ec018c1" +source = "git+https://github.com/teloxide/teloxide.git?rev=c590976722378a3a02ad5f5dac06b30a4e013395#c590976722378a3a02ad5f5dac06b30a4e013395" dependencies = [ - "heck 0.4.1", + "heck", "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] @@ -2927,7 +2898,7 @@ dependencies = [ "chrono", "ctrlc", "dotenv", - "env_logger 0.11.5", + "env_logger 0.11.6", "futures-util", "gag", "lazy_static", @@ -2935,7 +2906,7 @@ dependencies = [ "mime", "mime_guess", "pretty_env_logger", - "rand", + "rand 0.9.0", "reqwest", "serde", "serde_json", @@ -2953,7 +2924,7 @@ version = "0.2.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -2964,17 +2935,18 @@ checksum = "4a6bc538b4fd0adfd705c62a79db2eca5fad350347fb2e6af54358ea0c52095a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "tempfile" -version = "3.14.0" +version = "3.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" +checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" dependencies = [ "cfg-if", "fastrand", + "getrandom 0.3.1", "once_cell", "rustix", "windows-sys 0.59.0", @@ -2991,29 +2963,49 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.68" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "thiserror-impl", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "thiserror-impl" -version = "1.0.68" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -3032,9 +3024,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -3052,9 +3044,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -3067,9 +3059,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.1" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", @@ -3085,13 +3077,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -3106,20 +3098,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", - "rustls-pki-types", "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", @@ -3128,9 +3119,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -3139,6 +3130,27 @@ dependencies = [ "tokio", ] +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + [[package]] name = "tower-service" version = "0.3.3" @@ -3147,9 +3159,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -3159,20 +3171,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", ] @@ -3185,27 +3197,27 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[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 = "unicase" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-bidi" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" [[package]] name = "unicode-normalization" @@ -3228,12 +3240,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - [[package]] name = "untrusted" version = "0.9.0" @@ -3242,9 +3248,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -3272,11 +3278,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.11.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" dependencies = [ - "getrandom", + "getrandom 0.3.1", ] [[package]] @@ -3306,6 +3312,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasite" version = "0.1.0" @@ -3314,47 +3329,48 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3362,22 +3378,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-streams" @@ -3394,9 +3413,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -3452,6 +3471,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-link" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" + [[package]] name = "windows-registry" version = "0.2.0" @@ -3630,6 +3655,15 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags", +] + [[package]] name = "write16" version = "1.0.0" @@ -3644,9 +3678,9 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[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", @@ -3656,13 +3690,13 @@ 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.87", + "syn", "synstructure", ] @@ -3673,7 +3707,16 @@ 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.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf01143b2dd5d134f11f545cf9f1431b13b749695cb33bcce051e7568f99478" +dependencies = [ + "zerocopy-derive 0.8.21", ] [[package]] @@ -3684,27 +3727,38 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712c8386f4f4299382c9abee219bee7084f78fb939d88b6840fcc1320d5f6da2" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[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.87", + "syn", "synstructure", ] @@ -3733,32 +3787,32 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "zstd" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.2.1" +version = "7.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +checksum = "f3051792fbdc2e1e143244dc28c60f73d8470e93f3f9cbd0ead44da5ed802722" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" +version = "2.0.14+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +checksum = "8fb060d4926e4ac3a3ad15d864e99ceb5f343c6b34f5bd6d81ae6ed417311be5" dependencies = [ "cc", "pkg-config", diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 74fb564..a211fc4 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -8,7 +8,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 2.6.0", + "bitflags", "bytes", "futures-core", "futures-sink", @@ -31,11 +31,11 @@ dependencies = [ "actix-utils", "ahash", "base64", - "bitflags 2.6.0", + "bitflags", "brotli", "bytes", "bytestring", - "derive_more 0.99.18", + "derive_more 0.99.19", "encoding_rs", "flate2", "futures-core", @@ -49,7 +49,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rand", + "rand 0.8.5", "sha1", "smallvec", "tokio", @@ -65,7 +65,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -77,7 +77,7 @@ dependencies = [ "actix-multipart-derive", "actix-utils", "actix-web", - "derive_more 0.99.18", + "derive_more 0.99.19", "futures-core", "futures-util", "httparse", @@ -85,7 +85,7 @@ dependencies = [ "log", "memchr", "mime", - "rand", + "rand 0.8.5", "serde", "serde_json", "serde_plain", @@ -99,11 +99,11 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e11eb847f49a700678ea2fa73daeb3208061afa2b9d1a8527c03390f4c4a1c6b" dependencies = [ - "darling 0.20.10", + "darling", "parse-size", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -189,7 +189,7 @@ dependencies = [ "bytestring", "cfg-if", "cookie", - "derive_more 0.99.18", + "derive_more 0.99.19", "encoding_rs", "futures-core", "futures-util", @@ -220,7 +220,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -269,7 +269,7 @@ checksum = "4c221da13534b9352f3f79fcbbd6095f6d8aee63bdf1da8a73d36f9eeea17d5a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -294,10 +294,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -338,9 +338,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.19" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611cc2ae7d2e242c457e4be7f97036b8ad9ca152b499f53faf99b1ed8fc2553f" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android-tzdata" @@ -398,26 +398,27 @@ 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 = "aquamarine" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" +checksum = "0f50776554130342de4836ba542aa85a4ddb361690d7e8df13774d7284c3d5c2" dependencies = [ "include_dir", "itertools 0.10.5", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -428,13 +429,13 @@ checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -481,15 +482,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "block-buffer" @@ -513,9 +508,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.1" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -523,15 +518,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" [[package]] name = "byteorder" @@ -541,15 +536,15 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" [[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", ] @@ -570,9 +565,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.37" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40545c26d092346d8a8dab71ee48e7685a7a9cba76e634790c215b41a4a7b4cf" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ "jobserver", "libc", @@ -593,16 +588,17 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", + "serde", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -669,9 +665,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[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", ] @@ -702,18 +698,18 @@ 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", ] [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" @@ -727,9 +723,9 @@ dependencies = [ [[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", @@ -739,9 +735,9 @@ dependencies = [ [[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", ] @@ -756,38 +752,14 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.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", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", + "darling_core", + "darling_macro", ] [[package]] @@ -800,19 +772,8 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim 0.11.1", - "syn 2.0.87", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core 0.13.4", - "quote", - "syn 1.0.109", + "strsim", + "syn", ] [[package]] @@ -821,18 +782,17 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.20.10", + "darling_core", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "deadpool" -version = "0.10.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb84100978c1c7b37f09ed3ce3e5f843af02c2a2c431bae5b19230dad2c1b490" +checksum = "5ed5957ff93768adf7a65ab167a17835c3d2c3c50d084fe305174c112f468e2f" dependencies = [ - "async-trait", "deadpool-runtime", "num_cpus", "tokio", @@ -840,9 +800,9 @@ dependencies = [ [[package]] name = "deadpool-redis" -version = "0.14.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f2381b0e993d06a1f6d49f486b33bc4004085bf980340fc05726bacc681fff" +checksum = "bfae6799b68a735270e4344ee3e834365f707c72da09c9a8bb89b45cc3351395" dependencies = [ "deadpool", "redis", @@ -876,19 +836,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", + "serde", ] [[package]] name = "derive_more" -version = "0.99.18" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 2.0.87", + "syn", ] [[package]] @@ -908,17 +869,17 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", "unicode-xid", ] [[package]] name = "diesel" -version = "2.2.4" +version = "2.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "158fe8e2e68695bd615d7e4f3227c0727b151330d3e253b525086c348d055d5e" +checksum = "04001f23ba8843dc315804fa324000376084dfb1c30794ff68dd279e6e5696d5" dependencies = [ - "bitflags 2.6.0", + "bitflags", "byteorder", "diesel_derives", "itoa", @@ -935,7 +896,7 @@ dependencies = [ "dsl_auto_type", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -944,7 +905,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25" dependencies = [ - "syn 2.0.87", + "syn", ] [[package]] @@ -966,7 +927,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -992,23 +953,23 @@ dependencies = [ [[package]] name = "dsl_auto_type" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d9abe6314103864cc2d8901b7ae224e0ab1a103a0a416661b4097b0779b607" +checksum = "139ae9aca7527f85f26dd76483eb38533fd84bd571065da1739656ef71c5ff5b" dependencies = [ - "darling 0.20.10", + "darling", "either", - "heck 0.5.0", + "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "either" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" dependencies = [ "serde", ] @@ -1024,9 +985,9 @@ dependencies = [ [[package]] name = "env_filter" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ "log", "regex", @@ -1047,9 +1008,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" dependencies = [ "anstream", "anstyle", @@ -1060,15 +1021,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 = "erasable" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f11890ce181d47a64e5d1eb4b6caba0e7bae911a356723740d058a5d0340b7d" +checksum = "437cfb75878119ed8265685c41a115724eae43fb7cc5a0bf0e4ecc3b803af1c4" dependencies = [ "autocfg", "scopeguard", @@ -1076,12 +1037,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1097,9 +1058,9 @@ dependencies = [ [[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", @@ -1108,9 +1069,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "file_download_bot" @@ -1124,20 +1085,20 @@ dependencies = [ [[package]] name = "filedescriptor" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7199d965852c3bac31f779ef99cbb4537f80e952e2d6aa0ffeb30cce00f4f46e" +checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" dependencies = [ "libc", - "thiserror", + "thiserror 1.0.69", "winapi", ] [[package]] name = "flate2" -version = "1.0.34" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ "crc32fast", "miniz_oxide", @@ -1160,6 +1121,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "foreign-types" version = "0.3.2" @@ -1251,7 +1218,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -1312,7 +1279,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] @@ -1333,7 +1312,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -1342,17 +1321,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap", + "http 1.2.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -1367,35 +1346,30 @@ checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "hashlink" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -1450,11 +1424,11 @@ dependencies = [ [[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]] @@ -1470,9 +1444,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -1486,7 +1460,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.2.0", ] [[package]] @@ -1497,16 +1471,16 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.9.5" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "httpdate" @@ -1522,15 +1496,15 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.8", + "http 1.2.0", "http-body", "httparse", "itoa", @@ -1542,12 +1516,12 @@ 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", + "http 1.2.0", "hyper", "hyper-util", "rustls", @@ -1582,7 +1556,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "hyper", "pin-project-lite", @@ -1730,7 +1704,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -1762,9 +1736,9 @@ dependencies = [ [[package]] name = "impl-more" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae21c3177a27788957044151cc2800043d127acaa460a47ebb9b84dfa2c6aa0" +checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" [[package]] name = "include_dir" @@ -1787,29 +1761,41 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", + "serde", ] [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is-terminal" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +checksum = "e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37" dependencies = [ "hermit-abi 0.4.0", "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1838,9 +1824,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jobserver" @@ -1853,10 +1839,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1874,9 +1861,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.162" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "libsqlite3-sys" @@ -1891,15 +1878,15 @@ dependencies = [ [[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 = "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" @@ -1930,9 +1917,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "md-5" @@ -1946,9 +1933,9 @@ dependencies = [ [[package]] name = "mediatype" -version = "0.19.18" +version = "0.19.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8878cd8d1b3c8c8ae4b2ba0a36652b7cf192f618a599a7fbdfa25cffd4ea72dd" +checksum = "659f336e6cbe1083b58900e48649ed99fc99952a983e8d8cc992494394dd3732" [[package]] name = "memchr" @@ -1972,39 +1959,32 @@ dependencies = [ "unicase", ] -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ "adler2", ] [[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", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] [[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", @@ -2023,20 +2003,20 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "cfg_aliases", "libc", ] [[package]] -name = "nom" -version = "7.1.3" +name = "num-bigint" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "memchr", - "minimal-lexical", + "num-integer", + "num-traits", ] [[package]] @@ -2045,6 +2025,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2066,26 +2055,26 @@ dependencies = [ [[package]] name = "object" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.20.2" +version = "1.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -2102,20 +2091,20 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[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-sys" -version = "0.9.104" +version = "0.9.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" dependencies = [ "cc", "libc", @@ -2187,29 +2176,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -2235,15 +2224,16 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", ] [[package]] name = "pq-sys" -version = "0.6.3" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6cc05d7ea95200187117196eee9edd0644424911821aeb28a18ce60ea0b8793" +checksum = "30b51d65ebe1cb1f40641b15abae017fed35ccdda46e3dab1ff8768f625a3222" dependencies = [ + "libc", "vcpkg", ] @@ -2258,43 +2248,40 @@ dependencies = [ ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.109", - "version_check", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ + "proc-macro-error-attr2", "proc-macro2", "quote", - "version_check", ] [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -2306,8 +2293,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.21", ] [[package]] @@ -2317,7 +2315,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -2326,29 +2334,41 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.1", ] [[package]] name = "rc-box" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0690759eabf094030c2cdabc25ade1395bac02210d920d655053c1d49583fd8" +checksum = "897fecc9fac6febd4408f9e935e86df739b0023b625e610e0357535b9c8adad0" dependencies = [ "erasable", ] [[package]] name = "redis" -version = "0.24.0" +version = "0.27.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c580d9cbbe1d1b479e8d67cf9daf6a62c957e6846048408b80b43ac3f6af84cd" +checksum = "09d8f99a4090c89cc489a94833c901ead69bfbf3877b4867d5482e321ee875bc" dependencies = [ + "arc-swap", "async-trait", "bytes", "combine", "futures-util", + "itertools 0.13.0", "itoa", + "num-bigint", "percent-encoding", "pin-project-lite", "ryu", @@ -2359,11 +2379,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" dependencies = [ - "bitflags 2.6.0", + "bitflags", ] [[package]] @@ -2380,9 +2400,9 @@ 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", @@ -2403,17 +2423,17 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.9" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ "base64", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.8", + "http 1.2.0", "http-body", "http-body-util", "hyper", @@ -2438,6 +2458,7 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-util", + "tower", "tower-service", "url", "wasm-bindgen", @@ -2458,15 +2479,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" dependencies = [ "cc", "cfg-if", - "getrandom", + "getrandom 0.2.15", "libc", - "spin", "untrusted", "windows-sys 0.52.0", ] @@ -2488,22 +2508,22 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.39" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.16" +version = "0.23.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ "once_cell", "rustls-pki-types", @@ -2523,9 +2543,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" [[package]] name = "rustls-webpki" @@ -2538,17 +2558,23 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustversion" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" + [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -2565,7 +2591,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -2574,9 +2600,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -2584,15 +2610,15 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "serde" -version = "1.0.214" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" dependencies = [ "serde_derive", ] @@ -2609,23 +2635,23 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "serde_html_form" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de514ef58196f1fc96dcaef80fe6170a1ce6215df9687a93fe8300e773fefc5" +checksum = "9d2de91cf02bbc07cde38891769ccd5d4f073d22a40683aa4bc7a95781aaa2c4" dependencies = [ "form_urlencoded", - "indexmap", + "indexmap 2.7.1", "itoa", "ryu", "serde", @@ -2633,9 +2659,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" dependencies = [ "itoa", "memchr", @@ -2676,24 +2702,32 @@ dependencies = [ [[package]] name = "serde_with" -version = "1.14.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ + "base64", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.7.1", "serde", + "serde_derive", + "serde_json", "serde_with_macros", + "time", ] [[package]] name = "serde_with_macros" -version = "1.5.2" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "darling 0.13.4", + "darling", "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] @@ -2744,18 +2778,18 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" dependencies = [ "serde", ] [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2770,21 +2804,11 @@ dependencies = [ "lock_api", ] -[[package]] -name = "sqlformat" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" -dependencies = [ - "nom", - "unicode_categories", -] - [[package]] name = "sqlx" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e" +checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" dependencies = [ "sqlx-core", "sqlx-macros", @@ -2794,38 +2818,32 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e" +checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" dependencies = [ - "atoi", - "byteorder", "bytes", "crc", "crossbeam-queue", "either", "event-listener", - "futures-channel", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "hashlink", - "hex", - "indexmap", + "indexmap 2.7.1", "log", "memchr", "native-tls", "once_cell", - "paste", "percent-encoding", "serde", "serde_json", "sha2", "smallvec", - "sqlformat", - "thiserror", + "thiserror 2.0.11", "tokio", "tokio-stream", "tracing", @@ -2834,26 +2852,26 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657" +checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" dependencies = [ "proc-macro2", "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.87", + "syn", ] [[package]] name = "sqlx-macros-core" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5" +checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" dependencies = [ "dotenvy", "either", - "heck 0.5.0", + "heck", "hex", "once_cell", "proc-macro2", @@ -2864,7 +2882,7 @@ dependencies = [ "sqlx-core", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.87", + "syn", "tempfile", "tokio", "url", @@ -2872,20 +2890,19 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8" +checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" dependencies = [ "atoi", "base64", - "bitflags 2.6.0", + "bitflags", "byteorder", "crc", "dotenvy", "etcetera", "futures-channel", "futures-core", - "futures-io", "futures-util", "hex", "hkdf", @@ -2896,23 +2913,23 @@ dependencies = [ "md-5", "memchr", "once_cell", - "rand", + "rand 0.8.5", "serde", "serde_json", "sha2", "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 2.0.11", "tracing", "whoami", ] [[package]] name = "sqlx-sqlite" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680" +checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" dependencies = [ "atoi", "flume", @@ -2948,12 +2965,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" @@ -2968,20 +2979,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "1.0.109" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ "proc-macro2", "quote", @@ -2990,9 +2990,9 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -3005,7 +3005,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -3014,7 +3014,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "system-configuration-sys", ] @@ -3044,12 +3044,12 @@ checksum = "20f34339676cdcab560c9a82300c4c2581f68b9369aedf0fae86f2ff9565ff3e" [[package]] name = "teloxide" version = "0.13.0" -source = "git+https://github.com/teloxide/teloxide.git?rev=94db1757dc96116f4756a586fcbce3ac5ebd0c59#94db1757dc96116f4756a586fcbce3ac5ebd0c59" +source = "git+https://github.com/teloxide/teloxide.git?rev=c590976722378a3a02ad5f5dac06b30a4e013395#c590976722378a3a02ad5f5dac06b30a4e013395" dependencies = [ "aquamarine", "bytes", "deadpool-redis", - "derive_more 0.99.18", + "derive_more 1.0.0", "dptree", "either", "futures", @@ -3062,7 +3062,7 @@ dependencies = [ "sqlx", "teloxide-core", "teloxide-macros", - "thiserror", + "thiserror 2.0.11", "tokio", "tokio-stream", "tokio-util", @@ -3072,12 +3072,12 @@ dependencies = [ [[package]] name = "teloxide-core" version = "0.10.1" -source = "git+https://github.com/teloxide/teloxide.git?rev=94db1757dc96116f4756a586fcbce3ac5ebd0c59#94db1757dc96116f4756a586fcbce3ac5ebd0c59" +source = "git+https://github.com/teloxide/teloxide.git?rev=c590976722378a3a02ad5f5dac06b30a4e013395#c590976722378a3a02ad5f5dac06b30a4e013395" dependencies = [ - "bitflags 1.3.2", + "bitflags", "bytes", "chrono", - "derive_more 0.99.18", + "derive_more 1.0.0", "either", "futures", "log", @@ -3092,7 +3092,7 @@ dependencies = [ "serde_with", "take_mut", "takecell", - "thiserror", + "thiserror 2.0.11", "tokio", "tokio-util", "url", @@ -3102,13 +3102,12 @@ dependencies = [ [[package]] name = "teloxide-macros" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2d33d809c3e7161a9ab18bedddf98821245014f0a78fa4d2c9430b2ec018c1" +source = "git+https://github.com/teloxide/teloxide.git?rev=c590976722378a3a02ad5f5dac06b30a4e013395#c590976722378a3a02ad5f5dac06b30a4e013395" dependencies = [ - "heck 0.4.1", + "heck", "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] @@ -3121,7 +3120,7 @@ dependencies = [ "chrono", "ctrlc", "dotenv", - "env_logger 0.11.5", + "env_logger 0.11.6", "futures-util", "gag", "lazy_static", @@ -3129,7 +3128,7 @@ dependencies = [ "mime", "mime_guess", "pretty_env_logger", - "rand", + "rand 0.9.0", "reqwest", "serde", "serde_json", @@ -3148,17 +3147,18 @@ checksum = "4a6bc538b4fd0adfd705c62a79db2eca5fad350347fb2e6af54358ea0c52095a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "tempfile" -version = "3.14.0" +version = "3.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" +checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" dependencies = [ "cfg-if", "fastrand", + "getrandom 0.3.1", "once_cell", "rustix", "windows-sys 0.59.0", @@ -3175,29 +3175,49 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.68" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "thiserror-impl", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "thiserror-impl" -version = "1.0.68" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -3216,9 +3236,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -3236,9 +3256,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -3251,9 +3271,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.1" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", @@ -3269,13 +3289,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -3290,20 +3310,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", - "rustls-pki-types", "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", @@ -3312,9 +3331,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -3323,6 +3342,27 @@ dependencies = [ "tokio", ] +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + [[package]] name = "tower-service" version = "0.3.3" @@ -3331,9 +3371,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -3343,20 +3383,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", ] @@ -3369,27 +3409,27 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[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 = "unicase" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-bidi" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" [[package]] name = "unicode-normalization" @@ -3412,12 +3452,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - [[package]] name = "untrusted" version = "0.9.0" @@ -3426,9 +3460,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -3456,11 +3490,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.11.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" dependencies = [ - "getrandom", + "getrandom 0.3.1", ] [[package]] @@ -3490,6 +3524,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasite" version = "0.1.0" @@ -3498,47 +3541,48 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3546,22 +3590,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-streams" @@ -3578,9 +3625,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -3636,6 +3683,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-link" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" + [[package]] name = "windows-registry" version = "0.2.0" @@ -3814,6 +3867,15 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags", +] + [[package]] name = "write16" version = "1.0.0" @@ -3828,9 +3890,9 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[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", @@ -3840,13 +3902,13 @@ 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.87", + "syn", "synstructure", ] @@ -3857,7 +3919,16 @@ 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.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf01143b2dd5d134f11f545cf9f1431b13b749695cb33bcce051e7568f99478" +dependencies = [ + "zerocopy-derive 0.8.21", ] [[package]] @@ -3868,27 +3939,38 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712c8386f4f4299382c9abee219bee7084f78fb939d88b6840fcc1320d5f6da2" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[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.87", + "syn", "synstructure", ] @@ -3917,32 +3999,32 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] name = "zstd" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.2.1" +version = "7.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +checksum = "f3051792fbdc2e1e143244dc28c60f73d8470e93f3f9cbd0ead44da5ed802722" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" +version = "2.0.14+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +checksum = "8fb060d4926e4ac3a3ad15d864e99ceb5f343c6b34f5bd6d81ae6ed417311be5" dependencies = [ "cc", "pkg-config", diff --git a/examples/album_bot/Cargo.toml b/examples/album_bot/Cargo.toml index baa1eb4..ea34aba 100644 --- a/examples/album_bot/Cargo.toml +++ b/examples/album_bot/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "94db1757dc96116f4756a586fcbce3ac5ebd0c59", features = ["macros"] } +teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "c590976722378a3a02ad5f5dac06b30a4e013395", features = ["macros"] } tokio = { version = "1.38", features = ["rt-multi-thread", "macros"] } dotenv = "0.15.0" log = "0.4" diff --git a/examples/album_bot/src/main.rs b/examples/album_bot/src/main.rs index 50589f3..ba1774a 100644 --- a/examples/album_bot/src/main.rs +++ b/examples/album_bot/src/main.rs @@ -1,15 +1,19 @@ //! This is a copy of the repo //! https://github.com/LasterAlex/AlbumTeloxideBot/blob/main/src/main.rs -use std::collections::HashMap; -use std::error::Error; -use std::sync::{Arc, Mutex}; +use std::{ + collections::HashMap, + error::Error, + sync::{Arc, Mutex}, +}; use dotenv::dotenv; -use teloxide::dispatching::UpdateHandler; -use teloxide::prelude::*; -use teloxide::types::{ - InputFile, InputMedia, InputMediaAudio, InputMediaDocument, InputMediaPhoto, InputMediaVideo, - UpdateKind, +use teloxide::{ + dispatching::UpdateHandler, + prelude::*, + types::{ + InputFile, InputMedia, InputMediaAudio, InputMediaDocument, InputMediaPhoto, + InputMediaVideo, UpdateKind, + }, }; use tokio::time::{sleep, Duration}; @@ -34,7 +38,7 @@ async fn get_album(msg: Message, album: AlbumStorage) -> Option> { .lock() .unwrap() .entry(msg.chat.id.to_string()) - .or_insert_with(Vec::new) // If there is no entry + .or_default() // If there is no entry .push(msg.clone()); // Record length @@ -101,11 +105,10 @@ async fn main() { async fn example_handler(bot: Bot, msg: Message, album_mutex: AlbumStorage) -> HandlerResult { let album = get_album(msg.clone(), album_mutex).await; // Get either all the messages, or // None, which means that it is not the last message in the album, and we chould return - let album_messages: Vec; // Uninitialized variable, so that scoping is correct - match album { - Some(album_unwrapped) => album_messages = album_unwrapped, + let album_messages: Vec = match album { + Some(album_unwrapped) => album_unwrapped, None => return Ok(()), // If not the last message, return - } + }; // Now we have all the media group messages in the album_messages variable // And parameter msg is the last message in the album @@ -159,10 +162,11 @@ async fn example_handler(bot: Bot, msg: Message, album_mutex: AlbumStorage) -> H #[cfg(test)] mod tests { - use super::*; use teloxide::dptree::deps; use teloxide_tests::{MockBot, MockMessagePhoto, MockMessageText}; + use super::*; + #[tokio::test] async fn test_get_one_message() { let mut bot = MockBot::new_with_distribution_function( diff --git a/examples/calculator_bot/Cargo.toml b/examples/calculator_bot/Cargo.toml index 3f1b183..861d2b5 100644 --- a/examples/calculator_bot/Cargo.toml +++ b/examples/calculator_bot/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "94db1757dc96116f4756a586fcbce3ac5ebd0c59", features = ["macros", "redis-storage", "cbor-serializer"] } +teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "c590976722378a3a02ad5f5dac06b30a4e013395", features = ["macros", "redis-storage", "cbor-serializer"] } tokio = { version = "1.38", features = ["rt-multi-thread", "macros"] } dotenv = "0.15.0" serde = { version = "1.0", features = ["derive"] } diff --git a/examples/calculator_bot/src/handler_tree.rs b/examples/calculator_bot/src/handler_tree.rs index 7a3235d..970fd5a 100644 --- a/examples/calculator_bot/src/handler_tree.rs +++ b/examples/calculator_bot/src/handler_tree.rs @@ -1,18 +1,21 @@ -use crate::{get_bot_storage, handlers::*, text, MyDialogue}; -use crate::{handlers::StartCommand, State}; -use dptree::case; use std::error::Error; -use teloxide::dispatching::dialogue::GetChatId; -use teloxide::dispatching::UpdateFilterExt; -use teloxide::prelude::*; + +use dptree::case; use teloxide::{ dispatching::{ - dialogue::{self, ErasedStorage}, - UpdateHandler, + dialogue::{self, ErasedStorage, GetChatId}, + UpdateFilterExt, UpdateHandler, }, + prelude::*, types::Update, }; +use crate::{ + get_bot_storage, + handlers::{StartCommand, *}, + text, MyDialogue, State, +}; + async fn check_if_the_state_is_ok(update: Update) -> bool { // This function doesn't have anything to do with tests, but i thought i would put it here, // because i've encountered that if you update the state, and the user is on that @@ -32,7 +35,7 @@ async fn check_if_the_state_is_ok(update: Update) -> bool { .await .unwrap(); dialogue.update(State::default()).await.unwrap(); - return false; + false } } } diff --git a/examples/calculator_bot/src/handlers.rs b/examples/calculator_bot/src/handlers.rs index 1525bd7..e902908 100644 --- a/examples/calculator_bot/src/handlers.rs +++ b/examples/calculator_bot/src/handlers.rs @@ -1,4 +1,3 @@ -use crate::{text, HandlerResult, MyDialogue, State}; use teloxide::{ dispatching::dialogue::GetChatId, macros::BotCommands, @@ -6,6 +5,8 @@ use teloxide::{ types::{InlineKeyboardButton, InlineKeyboardMarkup}, }; +use crate::{text, HandlerResult, MyDialogue, State}; + #[derive(BotCommands, Clone)] #[command(rename_rule = "lowercase")] pub enum StartCommand { diff --git a/examples/calculator_bot/src/main.rs b/examples/calculator_bot/src/main.rs index de1d9d0..e8f58c5 100644 --- a/examples/calculator_bot/src/main.rs +++ b/examples/calculator_bot/src/main.rs @@ -8,9 +8,10 @@ use std::error::Error; use dotenv::dotenv; use handler_tree::handler_tree; -use teloxide::dispatching::dialogue::serializer::Cbor; -use teloxide::dispatching::dialogue::{Dialogue, ErasedStorage, RedisStorage, Storage}; -use teloxide::prelude::*; +use teloxide::{ + dispatching::dialogue::{serializer::Cbor, Dialogue, ErasedStorage, RedisStorage, Storage}, + prelude::*, +}; pub type MyDialogue = Dialogue>; pub type HandlerResult = Result<(), Box>; diff --git a/examples/calculator_bot/src/tests.rs b/examples/calculator_bot/src/tests.rs index 89b595d..00f4ac0 100644 --- a/examples/calculator_bot/src/tests.rs +++ b/examples/calculator_bot/src/tests.rs @@ -1,8 +1,8 @@ -use crate::{get_bot_storage, handler_tree::handler_tree, text, State}; - use teloxide::dptree::deps; use teloxide_tests::{MockBot, MockCallbackQuery, MockMessagePhoto, MockMessageText}; +use crate::{get_bot_storage, handler_tree::handler_tree, text, State}; + #[tokio::test] async fn test_start() { let mut bot = MockBot::new(MockMessageText::new().text("/start"), handler_tree()); diff --git a/examples/deep_linking_bot/Cargo.toml b/examples/deep_linking_bot/Cargo.toml index 3fd2ded..dd942d9 100644 --- a/examples/deep_linking_bot/Cargo.toml +++ b/examples/deep_linking_bot/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "94db1757dc96116f4756a586fcbce3ac5ebd0c59", features = ["macros"] } +teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "c590976722378a3a02ad5f5dac06b30a4e013395", features = ["macros"] } tokio = { version = "1.38", features = ["rt-multi-thread", "macros"] } dotenv = "0.15.0" serde = { version = "1.0", features = ["derive"] } diff --git a/examples/deep_linking_bot/src/handler_tree.rs b/examples/deep_linking_bot/src/handler_tree.rs index 71c0a32..4c46e3a 100644 --- a/examples/deep_linking_bot/src/handler_tree.rs +++ b/examples/deep_linking_bot/src/handler_tree.rs @@ -1,10 +1,10 @@ -use crate::handlers::*; use dptree::case; -use teloxide::dispatching::dialogue::InMemStorage; -use teloxide::dispatching::{dialogue, UpdateFilterExt, UpdateHandler}; -use teloxide::prelude::*; +use teloxide::{ + dispatching::{dialogue, dialogue::InMemStorage, UpdateFilterExt, UpdateHandler}, + prelude::*, +}; -use crate::{StartCommand, State}; +use crate::{handlers::*, StartCommand, State}; pub fn handler_tree() -> UpdateHandler> { dialogue::enter::, State, _>() diff --git a/examples/deep_linking_bot/src/handlers.rs b/examples/deep_linking_bot/src/handlers.rs index a77b3f7..3898d86 100644 --- a/examples/deep_linking_bot/src/handlers.rs +++ b/examples/deep_linking_bot/src/handlers.rs @@ -1,6 +1,7 @@ -use crate::{add_deep_link, text, HandlerResult, MyDialogue, StartCommand, State}; use teloxide::{prelude::*, types::Me}; +use crate::{add_deep_link, text, HandlerResult, MyDialogue, StartCommand, State}; + pub async fn start( bot: Bot, msg: Message, diff --git a/examples/deep_linking_bot/src/main.rs b/examples/deep_linking_bot/src/main.rs index 194f14f..b384985 100644 --- a/examples/deep_linking_bot/src/main.rs +++ b/examples/deep_linking_bot/src/main.rs @@ -4,11 +4,11 @@ pub mod handlers; pub mod tests; pub mod text; +use std::error::Error; + use dptree::deps; use handler_tree::handler_tree; -use std::error::Error; -use teloxide::types::Me; -use teloxide::{dispatching::dialogue::InMemStorage, macros::BotCommands, prelude::*}; +use teloxide::{dispatching::dialogue::InMemStorage, macros::BotCommands, prelude::*, types::Me}; pub type MyDialogue = Dialogue>; pub type HandlerResult = Result<(), Box>; diff --git a/examples/deep_linking_bot/src/tests.rs b/examples/deep_linking_bot/src/tests.rs index 5a8b352..9d59dc6 100644 --- a/examples/deep_linking_bot/src/tests.rs +++ b/examples/deep_linking_bot/src/tests.rs @@ -1,7 +1,8 @@ -use crate::{add_deep_link, handler_tree::handler_tree, text, State}; use teloxide::{dispatching::dialogue::InMemStorage, dptree::deps}; use teloxide_tests::{MockBot, MockMessagePhoto, MockMessageText}; +use crate::{add_deep_link, handler_tree::handler_tree, text, State}; + #[tokio::test] async fn test_start() { // Just a regular start diff --git a/examples/file_download_bot/Cargo.toml b/examples/file_download_bot/Cargo.toml index 9aef32b..e93a5a5 100644 --- a/examples/file_download_bot/Cargo.toml +++ b/examples/file_download_bot/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "94db1757dc96116f4756a586fcbce3ac5ebd0c59", features = ["macros"] } +teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "c590976722378a3a02ad5f5dac06b30a4e013395", features = ["macros"] } tokio = { version = "1.38", features = ["rt-multi-thread", "macros"] } dotenv = "0.15.0" diff --git a/examples/file_download_bot/src/main.rs b/examples/file_download_bot/src/main.rs index bf75ec6..eadddb4 100644 --- a/examples/file_download_bot/src/main.rs +++ b/examples/file_download_bot/src/main.rs @@ -48,9 +48,10 @@ async fn main() { #[cfg(test)] mod tests { - use super::*; use teloxide_tests::{MockBot, MockMessageDocument, MockMessageText}; + use super::*; + #[tokio::test] async fn test_not_a_document() { let mut bot = MockBot::new(MockMessageText::new().text("Hi!"), handler_tree()); diff --git a/examples/hello_world_bot/Cargo.toml b/examples/hello_world_bot/Cargo.toml index 3b0668f..729ae0d 100644 --- a/examples/hello_world_bot/Cargo.toml +++ b/examples/hello_world_bot/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "94db1757dc96116f4756a586fcbce3ac5ebd0c59", features = ["macros"] } +teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "c590976722378a3a02ad5f5dac06b30a4e013395", features = ["macros"] } tokio = { version = "1.38", features = ["rt-multi-thread", "macros"] } dotenv = "0.15.0" diff --git a/examples/hello_world_bot/src/main.rs b/examples/hello_world_bot/src/main.rs index 934fb9b..8f15692 100644 --- a/examples/hello_world_bot/src/main.rs +++ b/examples/hello_world_bot/src/main.rs @@ -30,9 +30,10 @@ async fn main() { #[cfg(test)] mod tests { - use super::*; use teloxide_tests::{MockBot, MockMessageText}; + use super::*; + #[tokio::test] async fn test_hello_world() { // This is a message builder. You can check the docs for more info about mocked types diff --git a/examples/phrase_bot/Cargo.toml b/examples/phrase_bot/Cargo.toml index 91f4bea..6267b10 100644 --- a/examples/phrase_bot/Cargo.toml +++ b/examples/phrase_bot/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "94db1757dc96116f4756a586fcbce3ac5ebd0c59", features = ["macros", "redis-storage", "cbor-serializer"] } +teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "c590976722378a3a02ad5f5dac06b30a4e013395", features = ["macros", "redis-storage", "cbor-serializer"] } tokio = { version = "1.38", features = ["rt-multi-thread", "macros"] } dotenv = "0.15.0" serde = { version = "1.0", features = ["derive"] } diff --git a/examples/phrase_bot/src/db/mod.rs b/examples/phrase_bot/src/db/mod.rs index f7870a1..88c3130 100644 --- a/examples/phrase_bot/src/db/mod.rs +++ b/examples/phrase_bot/src/db/mod.rs @@ -2,9 +2,8 @@ //! that are used in the bot. pub mod models; pub mod schema; -use models::*; - use diesel::prelude::*; +use models::*; pub fn establish_connection() -> PgConnection { dotenv::dotenv().ok(); diff --git a/examples/phrase_bot/src/db/models.rs b/examples/phrase_bot/src/db/models.rs index 47a3885..dc0e54f 100644 --- a/examples/phrase_bot/src/db/models.rs +++ b/examples/phrase_bot/src/db/models.rs @@ -1,7 +1,8 @@ -use super::schema; use diesel::prelude::*; use serde::{Deserialize, Serialize}; +use super::schema; + #[derive(Queryable, Selectable)] #[diesel(table_name = schema::users)] #[diesel(check_for_backend(diesel::pg::Pg))] diff --git a/examples/phrase_bot/src/handlers/private.rs b/examples/phrase_bot/src/handlers/private.rs index 4071705..b75a07a 100644 --- a/examples/phrase_bot/src/handlers/private.rs +++ b/examples/phrase_bot/src/handlers/private.rs @@ -1,10 +1,10 @@ -use teloxide::prelude::*; -use teloxide::types::KeyboardRemove; -use teloxide::{macros::BotCommands, payloads::SendMessageSetters}; +use teloxide::{ + macros::BotCommands, payloads::SendMessageSetters, prelude::*, types::KeyboardRemove, +}; -use crate::db::models; -use crate::keyboards::menu_keyboard; -use crate::{db, keyboards, text, HandlerResult, MyDialogue, State}; +use crate::{ + db, db::models, keyboards, keyboards::menu_keyboard, text, HandlerResult, MyDialogue, State, +}; #[derive(BotCommands, Clone)] #[command(rename_rule = "lowercase")] @@ -228,13 +228,13 @@ pub async fn added_phrase( #[cfg(test)] mod tests { - use crate::{get_bot_storage, handler_tree::handler_tree}; - - use super::*; use dptree::deps; use teloxide::types::ReplyMarkup; use teloxide_tests::{MockBot, MockMessageDocument, MockMessageText, MockUser}; + use super::*; + use crate::{get_bot_storage, handler_tree::handler_tree}; + #[tokio::test] async fn test_start() { let mut bot = MockBot::new(MockMessageText::new().text("/start"), handler_tree()); diff --git a/examples/phrase_bot/src/handlers/public.rs b/examples/phrase_bot/src/handlers/public.rs index e540a38..51c80e2 100644 --- a/examples/phrase_bot/src/handlers/public.rs +++ b/examples/phrase_bot/src/handlers/public.rs @@ -51,9 +51,10 @@ pub async fn bot_phrase(bot: Bot, msg: Message) -> HandlerResult { #[cfg(test)] mod tests { - use crate::{db, handler_tree::handler_tree, text}; use teloxide_tests::{MockBot, MockGroupChat, MockMessageText, MockUser}; + use crate::{db, handler_tree::handler_tree, text}; + #[tokio::test] async fn test_phrase() { let chat = MockGroupChat::new().build(); diff --git a/examples/phrase_bot/src/main.rs b/examples/phrase_bot/src/main.rs index 652a968..a996982 100644 --- a/examples/phrase_bot/src/main.rs +++ b/examples/phrase_bot/src/main.rs @@ -1,17 +1,17 @@ pub mod db; pub mod handlers; pub mod resources; -use db::models::Phrase; -use resources::{handler_tree, keyboards, text}; - use std::error::Error; +use db::models::Phrase; use dotenv::dotenv; use handler_tree::handler_tree; use handlers::*; -use teloxide::dispatching::dialogue::serializer::Cbor; -use teloxide::dispatching::dialogue::{Dialogue, ErasedStorage, RedisStorage, Storage}; -use teloxide::prelude::*; +use resources::{handler_tree, keyboards, text}; +use teloxide::{ + dispatching::dialogue::{serializer::Cbor, Dialogue, ErasedStorage, RedisStorage, Storage}, + prelude::*, +}; pub type MyDialogue = Dialogue>; pub type HandlerResult = Result<(), Box>; diff --git a/examples/phrase_bot/src/resources/handler_tree.rs b/examples/phrase_bot/src/resources/handler_tree.rs index 883ff55..57b390c 100644 --- a/examples/phrase_bot/src/resources/handler_tree.rs +++ b/examples/phrase_bot/src/resources/handler_tree.rs @@ -1,18 +1,22 @@ -use crate::{get_bot_storage, keyboards, private::*, public::*, text, MyDialogue}; -use crate::{private::StartCommand, State}; -use dptree::{case, entry, filter}; use std::error::Error; -use teloxide::dispatching::dialogue::GetChatId; -use teloxide::dispatching::UpdateFilterExt; -use teloxide::prelude::*; + +use dptree::{case, entry, filter}; use teloxide::{ dispatching::{ - dialogue::{self, ErasedStorage}, - UpdateHandler, + dialogue::{self, ErasedStorage, GetChatId}, + UpdateFilterExt, UpdateHandler, }, + prelude::*, types::Update, }; +use crate::{ + get_bot_storage, keyboards, + private::{StartCommand, *}, + public::*, + text, MyDialogue, State, +}; + async fn check_if_the_state_is_ok(update: Update) -> bool { // This function doesn't have anything to do with tests, but i thought i would put it here, // because i've encountered that if you update the state, and the user is on that @@ -32,7 +36,7 @@ async fn check_if_the_state_is_ok(update: Update) -> bool { .await .unwrap(); dialogue.update(State::default()).await.unwrap(); - return false; + false } } } diff --git a/examples/phrase_bot/src/resources/text.rs b/examples/phrase_bot/src/resources/text.rs index d17b595..b7d1ad1 100644 --- a/examples/phrase_bot/src/resources/text.rs +++ b/examples/phrase_bot/src/resources/text.rs @@ -25,7 +25,7 @@ If you want to return, send /cancel"; pub const CANCELED: &str = "Canceled."; -pub fn delete_phrase(all_phrases: &Vec) -> String { +pub fn delete_phrase(all_phrases: &[models::Phrase]) -> String { format!( "These are your phrases: @@ -97,17 +97,17 @@ pub fn make_phrase_string(phrase: &models::Phrase) -> String { format!("{} - {} | {}", phrase.text, phrase.emoji, phrase.bot_text) } -pub fn list_all_phrases(phrases: &Vec) -> String { +pub fn list_all_phrases(phrases: &[models::Phrase]) -> String { phrases .iter() - .map(|phrase| make_phrase_string(phrase)) + .map(make_phrase_string) .enumerate() .map(|(i, phrase)| format!("{}. {}", i + 1, phrase)) .collect::>() .join("\n\n") } -pub fn profile(nickname: Option, phrases: &Vec) -> String { +pub fn profile(nickname: Option, phrases: &[models::Phrase]) -> String { format!( "Your nickname📜: {} diff --git a/teloxide_tests/Cargo.toml b/teloxide_tests/Cargo.toml index f617448..1ebb678 100644 --- a/teloxide_tests/Cargo.toml +++ b/teloxide_tests/Cargo.toml @@ -20,7 +20,7 @@ log = "0.4" pretty_env_logger = "0.5" url = "2.5.1" reqwest = "0.12.5" -teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "94db1757dc96116f4756a586fcbce3ac5ebd0c59", features = ["macros", "sqlite-storage-nativetls"] } +teloxide = { git = "https://github.com/teloxide/teloxide.git", rev = "c590976722378a3a02ad5f5dac06b30a4e013395", features = ["macros", "sqlite-storage-nativetls"] } tokio = { version = "1.38", features = ["rt-multi-thread", "macros"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" @@ -29,7 +29,7 @@ mime = "0.3.17" chrono = "0.4.38" actix-web-lab = "0.23.0" mime_guess = "2.0.5" -rand = "0.8.5" +rand = "0.9.0" actix-multipart = "0.7.2" lazy_static = "1.5.0" futures-util = "0.3" diff --git a/teloxide_tests/src/dataset/chat.rs b/teloxide_tests/src/dataset/chat.rs index 3aa0911..dda1757 100644 --- a/teloxide_tests/src/dataset/chat.rs +++ b/teloxide_tests/src/dataset/chat.rs @@ -1,9 +1,6 @@ -use teloxide::types::{ - Chat, ChatId, ChatKind, ChatLocation, ChatPermissions, ChatPhoto, ChatPrivate, ChatPublic, - Message, PublicChatChannel, PublicChatGroup, PublicChatKind, PublicChatSupergroup, True, *, -}; +use teloxide::types::*; -use super::{MockChatFullInfo, MockUser}; +use super::MockUser; use crate::proc_macros::Changeable; macro_rules! Chat { @@ -16,30 +13,14 @@ macro_rules! Chat { #[derive($($derive),*)] $pub struct $name { // This is basically a template pub id: ChatId, - pub photo: Option, - pub available_reactions: Option>, - pub pinned_message: Option>, - pub message_auto_delete_time: Option, - pub has_hidden_members: bool, - pub has_aggressive_anti_spam_enabled: bool, - pub chat_full_info: ChatFullInfo, $($fpub $field : $type,)* } impl $name { pub const ID: i64 = -12345678; // Make them into a constant cuz why not - pub const HAS_HIDDEN_MEMBERS: bool = false; - pub const AGGRESSIVE_ANTI_SPAM_ENABLED: bool = false; - pub(crate) fn new_chat($($field:$type,)*) -> Self{ + pub(crate) fn new_chat($($field:$type,)*) -> Self { Self { // To not repeat this over and over again id: ChatId(Self::ID), - photo: None, - available_reactions: None, - pinned_message: None, - message_auto_delete_time: None, - has_hidden_members: Self::HAS_HIDDEN_MEMBERS, - has_aggressive_anti_spam_enabled: Self::AGGRESSIVE_ANTI_SPAM_ENABLED, - chat_full_info: MockChatFullInfo::new().build(), $($field,)* } } @@ -48,20 +29,13 @@ macro_rules! Chat { Chat { id: self.id, kind: chat_kind, - available_reactions: self.available_reactions, - photo: self.photo, - pinned_message: self.pinned_message, - message_auto_delete_time: self.message_auto_delete_time, - has_hidden_members: self.has_hidden_members, - has_aggressive_anti_spam_enabled: self.has_aggressive_anti_spam_enabled, - chat_full_info: self.chat_full_info, } } } } } -macro_rules! PublicChat { // A specialization of Chat!, again, to not repeat myself +macro_rules! ChatPublic { // A specialization of Chat!, again, to not repeat myself ( #[derive($($derive:meta),*)] $pub:vis struct $name:ident { @@ -72,41 +46,30 @@ macro_rules! PublicChat { // A specialization of Chat!, again, to not repeat my #[derive($($derive),*)] $pub struct $name { pub title: Option, - pub description: Option, - pub invite_link: Option, - pub has_protected_content: Option, $($fpub $field : $type,)* } } impl $name { - pub(crate) fn new_public_chat($($field:$type,)*) -> Self { + pub(crate) fn new_chat_public($($field:$type,)*) -> Self { $name::new_chat( - None, - None, - None, None, $($field,)* ) } - pub(crate) fn build_public_chat(self, public_chat_kind: PublicChatKind) -> Chat { - self.clone().build_chat(ChatKind::Public(Box::new(ChatPublic { + pub(crate) fn build_chat_public(self, chat_public_kind: PublicChatKind) -> Chat { + self.clone().build_chat(ChatKind::Public(ChatPublic { title: self.title, - kind: public_chat_kind, - description: self.description, - invite_link: self.invite_link, - has_protected_content: self.has_protected_content, - }))) + kind: chat_public_kind, + })) } } } } -PublicChat! { +ChatPublic! { #[derive(Changeable, Clone)] - pub struct MockGroupChat { - pub permissions: Option, - } + pub struct MockGroupChat { } } impl MockGroupChat { @@ -121,7 +84,7 @@ impl MockGroupChat { /// ``` /// pub fn new() -> Self { - Self::new_public_chat(None) + Self::new_chat_public() } /// Builds the group chat @@ -134,23 +97,19 @@ impl MockGroupChat { /// ``` /// pub fn build(self) -> Chat { - self.clone() - .build_public_chat(PublicChatKind::Group(PublicChatGroup { - permissions: self.permissions, - })) + self.clone().build_chat_public(PublicChatKind::Group) } } -PublicChat! { +ChatPublic! { #[derive(Changeable, Clone)] pub struct MockChannelChat { - pub linked_chat_id: Option, pub username: Option, } } impl MockChannelChat { - /// Creates a new easily changable channel chat builder + /// Creates a new easily changable channel builder /// /// Example: /// ``` @@ -163,7 +122,7 @@ impl MockChannelChat { /// ``` /// pub fn new() -> Self { - Self::new_public_chat(None, None) + Self::new_chat_public(None) } /// Builds the channel chat @@ -178,36 +137,24 @@ impl MockChannelChat { /// pub fn build(self) -> Chat { self.clone() - .build_public_chat(PublicChatKind::Channel(PublicChatChannel { - linked_chat_id: self.linked_chat_id, + .build_chat_public(PublicChatKind::Channel(PublicChatChannel { username: self.username, })) } } -PublicChat! { +ChatPublic! { #[derive(Changeable, Clone)] pub struct MockSupergroupChat { pub username: Option, - pub active_usernames: Option>, pub is_forum: bool, - pub sticker_set_name: Option, - pub can_set_sticker_set: Option, - pub permissions: Option, - pub slow_mode_delay: Option, - pub linked_chat_id: Option, - pub location: Option, - pub join_to_send_messages: Option, - pub join_by_request: Option, - pub custom_emoji_sticker_set_name: Option, - pub unrestrict_boost_count: Option, } } impl MockSupergroupChat { pub const IS_FORUM: bool = false; - /// Creates a new easily changable supergroup chat builder + /// Creates a new easily changable supergroup chat full info builder /// /// Example: /// ``` @@ -218,21 +165,7 @@ impl MockSupergroupChat { /// ``` /// pub fn new() -> Self { - Self::new_public_chat( - None, - None, - Self::IS_FORUM, - None, - None, - None, - None, - None, - None, - None, - None, - None, - None, - ) + Self::new_chat_public(None, Self::IS_FORUM) } /// Builds the supergroup chat @@ -246,20 +179,9 @@ impl MockSupergroupChat { /// pub fn build(self) -> Chat { self.clone() - .build_public_chat(PublicChatKind::Supergroup(PublicChatSupergroup { + .build_chat_public(PublicChatKind::Supergroup(PublicChatSupergroup { username: self.username, - active_usernames: self.active_usernames, is_forum: self.is_forum, - sticker_set_name: self.sticker_set_name, - can_set_sticker_set: self.can_set_sticker_set, - permissions: self.permissions, - slow_mode_delay: self.slow_mode_delay, - linked_chat_id: self.linked_chat_id, - location: self.location, - join_to_send_messages: self.join_to_send_messages, - join_by_request: self.join_by_request, - custom_emoji_sticker_set_name: self.custom_emoji_sticker_set_name, - unrestrict_boost_count: self.unrestrict_boost_count, })) } } @@ -270,14 +192,6 @@ Chat! { pub username: Option, pub first_name: Option, pub last_name: Option, - pub bio: Option, - pub has_private_forwards: Option, - pub has_restricted_voice_and_video_messages: Option, - pub birthdate: Option, - pub business_intro: Option, - pub business_location: Option, - pub business_opening_hours: Option, - pub personal_chat: Option>, } } @@ -293,10 +207,7 @@ impl MockPrivateChat { /// ``` /// pub fn new() -> Self { - Self::new_chat( - None, None, None, None, None, None, None, None, None, None, None, - ) - .id(MockUser::ID as i64) + Self::new_chat(None, None, None).id(MockUser::ID as i64) } /// Builds the private chat @@ -313,14 +224,6 @@ impl MockPrivateChat { username: self.username, first_name: self.first_name, last_name: self.last_name, - bio: self.bio, - has_private_forwards: self.has_private_forwards, - has_restricted_voice_and_video_messages: self.has_restricted_voice_and_video_messages, - birthdate: self.birthdate, - business_intro: self.business_intro, - business_location: self.business_location, - business_opening_hours: self.business_opening_hours, - personal_chat: self.personal_chat, })) } } diff --git a/teloxide_tests/src/dataset/chat_full_info.rs b/teloxide_tests/src/dataset/chat_full_info.rs new file mode 100644 index 0000000..f739f17 --- /dev/null +++ b/teloxide_tests/src/dataset/chat_full_info.rs @@ -0,0 +1,371 @@ +use chrono::{DateTime, Utc}; +use teloxide::types::*; + +use super::MockUser; +use crate::proc_macros::Changeable; + +macro_rules! ChatFullInfo { + ( + #[derive($($derive:meta),*)] + $pub:vis struct $name:ident { + $($fpub:vis $field:ident : $type:ty,)* + } + ) => { + #[derive($($derive),*)] + $pub struct $name { // This is basically a template + pub id: ChatId, + pub photo: Option, + pub pinned_message: Option>, + pub message_auto_delete_time: Option, + pub has_hidden_members: bool, + pub has_aggressive_anti_spam_enabled: bool, + pub accent_color_id: Option, + pub background_custom_emoji_id: Option, + pub profile_accent_color_id: Option, + pub profile_background_custom_emoji_id: Option, + pub emoji_status_custom_emoji_id: Option, + pub emoji_status_expiration_date: Option>, + pub has_visible_history: bool, + pub max_reaction_count: u8, + $($fpub $field : $type,)* + } + impl $name { + pub const ID: i64 = -12345678; // Make them into a constant cuz why not + pub const HAS_HIDDEN_MEMBERS: bool = false; + pub const AGGRESSIVE_ANTI_SPAM_ENABLED: bool = false; + pub const HAS_VISIBLE_HISTORY: bool = true; + pub const MAX_REACTION_COUNT: u8 = 100; + + pub(crate) fn new_chat_full_info($($field:$type,)*) -> Self{ + Self { // To not repeat this over and over again + id: ChatId(Self::ID), + photo: None, + pinned_message: None, + message_auto_delete_time: None, + has_hidden_members: Self::HAS_HIDDEN_MEMBERS, + has_aggressive_anti_spam_enabled: Self::AGGRESSIVE_ANTI_SPAM_ENABLED, + accent_color_id: None, + background_custom_emoji_id: None, + profile_accent_color_id: None, + profile_background_custom_emoji_id: None, + emoji_status_custom_emoji_id: None, + emoji_status_expiration_date: None, + has_visible_history: Self::HAS_VISIBLE_HISTORY, + max_reaction_count: Self::MAX_REACTION_COUNT, + $($field,)* + } + } + + pub(crate) fn build_chat_full_info(self, chat_full_info_kind: ChatFullInfoKind) -> ChatFullInfo { + ChatFullInfo { + id: self.id, + photo: self.photo, + pinned_message: self.pinned_message, + message_auto_delete_time: self.message_auto_delete_time, + has_hidden_members: self.has_hidden_members, + has_aggressive_anti_spam_enabled: self.has_aggressive_anti_spam_enabled, + accent_color_id: self.accent_color_id, + background_custom_emoji_id: self.background_custom_emoji_id, + profile_accent_color_id: self.profile_accent_color_id, + profile_background_custom_emoji_id: self.profile_background_custom_emoji_id, + emoji_status_custom_emoji_id: self.emoji_status_custom_emoji_id, + emoji_status_expiration_date: self.emoji_status_expiration_date, + has_visible_history: self.has_visible_history, + max_reaction_count: self.max_reaction_count, + kind: chat_full_info_kind, + } + } + } + } +} + +macro_rules! ChatFullInfoPublic { // A specialization of Chat!, again, to not repeat myself + ( + #[derive($($derive:meta),*)] + $pub:vis struct $name:ident { + $($fpub:vis $field:ident : $type:ty,)* + } + ) => { + ChatFullInfo! { + #[derive($($derive),*)] + $pub struct $name { + pub title: Option, + pub description: Option, + pub invite_link: Option, + pub has_protected_content: bool, + pub available_reactions: Option>, + $($fpub $field : $type,)* + } + } + impl $name { + pub const HAS_PROTECTED_CONTENT: bool = false; + + pub(crate) fn new_chat_full_info_public($($field:$type,)*) -> Self { + $name::new_chat_full_info( + None, + None, + None, + Self::HAS_PROTECTED_CONTENT, + None, + $($field,)* + ) + } + + pub(crate) fn build_chat_full_info_public(self, chat_full_info_public_kind: ChatFullInfoPublicKind) -> ChatFullInfo { + self.clone().build_chat_full_info(ChatFullInfoKind::Public(Box::new(ChatFullInfoPublic { + title: self.title, + kind: chat_full_info_public_kind, + description: self.description, + invite_link: self.invite_link, + has_protected_content: self.has_protected_content, + available_reactions: self.available_reactions, + }))) + } + } + } +} + +ChatFullInfoPublic! { + #[derive(Changeable, Clone)] + pub struct MockChatFullInfoGroup { + pub permissions: Option, + } +} + +impl MockChatFullInfoGroup { + /// Creates a new easily changable group chat full info builder + /// + /// Example: + /// ``` + /// let chat = teloxide_tests::MockChatFullInfoGroup::new() + /// .id(-1234) + /// .build(); + /// assert_eq!(chat.id.0, -1234); + /// ``` + /// + pub fn new() -> Self { + Self::new_chat_full_info_public(None) + } + + /// Builds the group chat full info + /// + /// Example: + /// ``` + /// let mock_chat = teloxide_tests::MockChatFullInfoGroup::new(); + /// let chat = mock_chat.build(); + /// assert_eq!(chat.id.0, teloxide_tests::MockChatFullInfoGroup::ID); // ID is a default value + /// ``` + /// + pub fn build(self) -> ChatFullInfo { + self.clone() + .build_chat_full_info_public(ChatFullInfoPublicKind::Group(ChatFullInfoPublicGroup { + permissions: self.permissions, + })) + } +} + +ChatFullInfoPublic! { + #[derive(Changeable, Clone)] + pub struct MockChatFullInfoChannel { + pub username: Option, + pub linked_chat_id: Option, + } +} + +impl MockChatFullInfoChannel { + /// Creates a new easily changable channel chat full info builder + /// + /// Example: + /// ``` + /// let chat = teloxide_tests::MockChatFullInfoChannel::new() + /// .id(-1234) + /// .username("test_channel") + /// .build(); + /// assert_eq!(chat.id.0, -1234); + /// assert_eq!(chat.username(), Some("test_channel")); + /// ``` + /// + pub fn new() -> Self { + Self::new_chat_full_info_public(None, None) + } + + /// Builds the channel chat full info + /// + /// Example: + /// ``` + /// let mock_chat = teloxide_tests::MockChatFullInfoChannel::new(); + /// let chat = mock_chat.build(); + /// assert_eq!(chat.id.0, teloxide_tests::MockChatFullInfoChannel::ID); // ID is a default value + /// assert_eq!(chat.username(), None); + /// ``` + /// + pub fn build(self) -> ChatFullInfo { + self.clone() + .build_chat_full_info_public(ChatFullInfoPublicKind::Channel( + ChatFullInfoPublicChannel { + username: self.username, + linked_chat_id: self.linked_chat_id, + }, + )) + } +} + +ChatFullInfoPublic! { + #[derive(Changeable, Clone)] + pub struct MockChatFullInfoSupergroup { + pub username: Option, + pub active_usernames: Option>, + pub is_forum: bool, + pub sticker_set_name: Option, + pub can_set_sticker_set: bool, + pub custom_emoji_sticker_set_name: Option, + pub permissions: Option, + pub slow_mode_delay: Option, + pub unrestrict_boost_count: Option, + pub linked_chat_id: Option, + pub location: Option, + pub join_to_send_messages: bool, + pub join_by_request: bool, + } +} + +impl MockChatFullInfoSupergroup { + pub const IS_FORUM: bool = false; + pub const CAN_SET_STICKER_SET: bool = false; + pub const JOIN_TO_SEND_MESSAGES: bool = false; + pub const JOIN_BY_REQUEST: bool = false; + + /// Creates a new easily changable supergroup chat full info builder + /// + /// Example: + /// ``` + /// let chat = teloxide_tests::MockChatFullInfoSupergroup::new() + /// .id(-1234) + /// .build(); + /// assert_eq!(chat.id.0, -1234); + /// ``` + /// + pub fn new() -> Self { + Self::new_chat_full_info_public( + None, + None, + Self::IS_FORUM, + None, + Self::CAN_SET_STICKER_SET, + None, + None, + None, + None, + None, + None, + Self::JOIN_TO_SEND_MESSAGES, + Self::JOIN_BY_REQUEST, + ) + } + + /// Builds the supergroup chat + /// + /// Example: + /// ``` + /// let mock_chat = teloxide_tests::MockChatFullInfoSupergroup::new(); + /// let chat = mock_chat.build(); + /// assert_eq!(chat.id.0, teloxide_tests::MockChatFullInfoSupergroup::ID); // ID is a default value + /// ``` + /// + pub fn build(self) -> ChatFullInfo { + self.clone() + .build_chat_full_info_public(ChatFullInfoPublicKind::Supergroup( + ChatFullInfoPublicSupergroup { + username: self.username, + active_usernames: self.active_usernames, + is_forum: self.is_forum, + sticker_set_name: self.sticker_set_name, + can_set_sticker_set: self.can_set_sticker_set, + permissions: self.permissions, + slow_mode_delay: self.slow_mode_delay, + linked_chat_id: self.linked_chat_id, + location: self.location, + join_to_send_messages: self.join_to_send_messages, + join_by_request: self.join_by_request, + custom_emoji_sticker_set_name: self.custom_emoji_sticker_set_name, + unrestrict_boost_count: self.unrestrict_boost_count, + }, + )) + } +} + +ChatFullInfo! { + #[derive(Changeable, Clone)] + pub struct MockChatFullInfoPrivate { + pub username: Option, + pub first_name: Option, + pub last_name: Option, + pub bio: Option, + pub has_private_forwards: bool, + pub has_restricted_voice_and_video_messages: bool, + pub personal_chat: Option>, + pub birthdate: Option, + pub business_intro: Option, + pub business_location: Option, + pub business_opening_hours: Option, + } +} + +impl MockChatFullInfoPrivate { + pub const HAS_PRIVATE_FORWARDS: bool = false; + pub const HAS_RESTRICTED_VOICE_AND_VIDEO_MESSAGES: bool = false; + + /// Creates a new easily changable private chat full info builder + /// + /// Example: + /// ``` + /// let chat = teloxide_tests::MockChatFullInfoPrivate::new() + /// .id(-1234) + /// .build(); + /// assert_eq!(chat.id.0, -1234); + /// ``` + /// + pub fn new() -> Self { + Self::new_chat_full_info( + None, + None, + None, + None, + Self::HAS_PRIVATE_FORWARDS, + Self::HAS_RESTRICTED_VOICE_AND_VIDEO_MESSAGES, + None, + None, + None, + None, + None, + ) + .id(MockUser::ID as i64) + } + + /// Builds the private chat full info + /// + /// Example: + /// ``` + /// let mock_chat = teloxide_tests::MockChatFullInfoPrivate::new(); + /// let chat = mock_chat.build(); + /// assert_eq!(chat.id.0 as u64, teloxide_tests::MockUser::ID); // Private chats have the id of users + /// ``` + /// + pub fn build(self) -> ChatFullInfo { + self.clone() + .build_chat_full_info(ChatFullInfoKind::Private(Box::new(ChatFullInfoPrivate { + username: self.username, + first_name: self.first_name, + last_name: self.last_name, + bio: self.bio, + has_private_forwards: self.has_private_forwards, + has_restricted_voice_and_video_messages: self + .has_restricted_voice_and_video_messages, + birthdate: self.birthdate, + business_intro: self.business_intro, + business_location: self.business_location, + business_opening_hours: self.business_opening_hours, + personal_chat: self.personal_chat, + }))) + } +} diff --git a/teloxide_tests/src/dataset/message_common.rs b/teloxide_tests/src/dataset/message_common.rs index 00b343a..8316359 100644 --- a/teloxide_tests/src/dataset/message_common.rs +++ b/teloxide_tests/src/dataset/message_common.rs @@ -20,6 +20,7 @@ macro_rules! MessageCommon { // Rust was supposed to be used without inheritanc #[derive($($derive),*)] $pub struct $name { pub author_signature: Option, + pub effect_id: Option, pub forward_origin: Option, pub reply_to_message: Option>, pub external_reply: Option, @@ -50,6 +51,7 @@ macro_rules! MessageCommon { // Rust was supposed to be used without inheritanc None, None, None, + None, $name::IS_AUTOMATIC_FORWARD, $name::HAS_PROTECTED_CONTENT, $name::IS_FROM_OFFLINE, @@ -63,6 +65,7 @@ macro_rules! MessageCommon { // Rust was supposed to be used without inheritanc pub(crate) fn build_message_common(self, media_kind: MediaKind) -> Message { self.clone().build_message(MessageKind::Common(MessageCommon { author_signature: self.author_signature, + effect_id: self.effect_id, forward_origin: self.forward_origin, reply_to_message: self.reply_to_message, external_reply: self.external_reply, @@ -142,6 +145,7 @@ MessageCommon! { pub struct MockMessageAnimation { pub caption: Option, pub caption_entities: Vec, + pub show_caption_above_media: bool, pub has_media_spoiler: bool, // Animation pub width: u32, @@ -159,6 +163,7 @@ MessageCommon! { impl MockMessageAnimation { pub const HAS_MEDIA_SPOILER: bool = false; + pub const SHOW_CAPTION_ABOVE_MEDIA: bool = false; pub const WIDTH: u32 = 50; pub const HEIGHT: u32 = 50; pub const DURATION: Seconds = Seconds::from_seconds(60); @@ -180,6 +185,7 @@ impl MockMessageAnimation { Self::new_message_common( None, vec![], + Self::SHOW_CAPTION_ABOVE_MEDIA, Self::HAS_MEDIA_SPOILER, Self::WIDTH, Self::HEIGHT, @@ -207,6 +213,7 @@ impl MockMessageAnimation { .build_message_common(MediaKind::Animation(MediaAnimation { caption: self.caption, caption_entities: self.caption_entities, + show_caption_above_media: self.show_caption_above_media, has_media_spoiler: self.has_media_spoiler, animation: Animation { file: FileMeta { @@ -575,7 +582,7 @@ MessageCommon! { pub latitude: f64, pub longitude: f64, pub horizontal_accuracy: Option, - pub live_period: Option, + pub live_period: Option, pub heading: Option, pub proximity_alert_radius: Option, } @@ -629,6 +636,7 @@ MessageCommon! { pub caption: Option, pub caption_entities: Vec, pub media_group_id: Option, + pub show_caption_above_media: bool, pub has_media_spoiler: bool, pub photo: Vec, } @@ -636,6 +644,7 @@ MessageCommon! { impl MockMessagePhoto { pub const HAS_MEDIA_SPOILER: bool = false; + pub const SHOW_CAPTION_ABOVE_MEDIA: bool = false; /// Creates a new easily changable message photo builder /// @@ -654,6 +663,7 @@ impl MockMessagePhoto { None, vec![], None, + Self::SHOW_CAPTION_ABOVE_MEDIA, Self::HAS_MEDIA_SPOILER, vec![MockPhotoSize::new().build()], ) @@ -674,6 +684,7 @@ impl MockMessagePhoto { caption: self.caption, caption_entities: self.caption_entities, media_group_id: self.media_group_id, + show_caption_above_media: self.show_caption_above_media, has_media_spoiler: self.has_media_spoiler, photo: self.photo, })) @@ -685,6 +696,7 @@ MessageCommon! { pub struct MockMessagePoll { pub poll_id: String, pub question: String, + pub question_entities: Option>, pub options: Vec, pub is_closed: bool, pub total_voter_count: u32, @@ -723,6 +735,7 @@ impl MockMessagePoll { Self::new_message_common( Self::POLL_ID.to_string(), Self::QUESTION.to_string(), + None, vec![], Self::IS_CLOSED, Self::TOTAL_VOTER_COUNT, @@ -752,6 +765,7 @@ impl MockMessagePoll { poll: Poll { id: self.poll_id, question: self.question, + question_entities: self.question_entities, options: self.options, is_closed: self.is_closed, total_voter_count: self.total_voter_count, @@ -861,6 +875,7 @@ MessageCommon! { pub caption: Option, pub caption_entities: Vec, pub media_group_id: Option, + pub show_caption_above_media: bool, pub has_media_spoiler: bool, pub video: Video, } @@ -868,6 +883,7 @@ MessageCommon! { impl MockMessageVideo { pub const HAS_MEDIA_SPOILER: bool = false; + pub const SHOW_CAPTION_ABOVE_MEDIA: bool = false; /// Creates a new easily changable message video builder /// @@ -883,6 +899,7 @@ impl MockMessageVideo { None, vec![], None, + Self::SHOW_CAPTION_ABOVE_MEDIA, Self::HAS_MEDIA_SPOILER, MockVideo::new().build(), ) @@ -903,6 +920,7 @@ impl MockMessageVideo { caption: self.caption, caption_entities: self.caption_entities, media_group_id: self.media_group_id, + show_caption_above_media: self.show_caption_above_media, has_media_spoiler: self.has_media_spoiler, video: self.video, })) diff --git a/teloxide_tests/src/dataset/mod.rs b/teloxide_tests/src/dataset/mod.rs index b30a585..2ccdde5 100644 --- a/teloxide_tests/src/dataset/mod.rs +++ b/teloxide_tests/src/dataset/mod.rs @@ -1,19 +1,20 @@ //! A set of mocked structs for testing purposes. Read more in teloxide_tests crate. use std::sync::atomic::{AtomicI32, Ordering}; -use chrono::{DateTime, Utc}; use mime::Mime; use proc_macros::Changeable; use teloxide::types::{ - ChatFullInfo, ChatPhoto, FileMeta, LinkPreviewOptions, Location, Me, PhotoSize, Seconds, - Update, User, UserId, Video, + ChatPhoto, FileMeta, LinkPreviewOptions, LivePeriod, Location, Me, PhotoSize, Seconds, Update, + User, UserId, Video, }; pub mod chat; +pub mod chat_full_info; pub mod message; pub mod message_common; pub mod queries; pub use chat::*; +pub use chat_full_info::*; pub use message::*; pub use message_common::*; pub use queries::*; @@ -251,7 +252,7 @@ pub struct MockLocation { pub latitude: f64, pub longitude: f64, pub horizontal_accuracy: Option, - pub live_period: Option, + pub live_period: Option, pub heading: Option, pub proximity_alert_radius: Option, } @@ -433,62 +434,6 @@ impl MockVideo { } } -#[derive(Changeable, Clone)] -pub struct MockChatFullInfo { - pub accent_color_id: Option, - pub background_custom_emoji_id: Option, - pub profile_accent_color_id: Option, - pub profile_background_custom_emoji_id: Option, - pub emoji_status_custom_emoji_id: Option, - pub emoji_status_expiration_date: Option>, - pub has_visible_history: bool, -} - -impl MockChatFullInfo { - /// Creates a new easily changable chat full info builder - /// - /// # Examples - /// ``` - /// let chat_full_info = teloxide_tests::MockChatFullInfo::new() - /// .accent_color_id(1) - /// .build(); - /// assert_eq!(chat_full_info.accent_color_id, Some(1)); - /// ``` - /// - pub fn new() -> Self { - Self { - accent_color_id: None, - background_custom_emoji_id: None, - profile_accent_color_id: None, - profile_background_custom_emoji_id: None, - emoji_status_custom_emoji_id: None, - emoji_status_expiration_date: None, - has_visible_history: true, - } - } - - /// Builds the chat full info - /// - /// # Examples - /// ``` - /// let mock_chat_full_info = teloxide_tests::MockChatFullInfo::new(); - /// let chat_full_info = mock_chat_full_info.build(); - /// assert_eq!(chat_full_info.has_visible_history, true); - /// ``` - /// - pub fn build(self) -> ChatFullInfo { - ChatFullInfo { - accent_color_id: self.accent_color_id, - background_custom_emoji_id: self.background_custom_emoji_id, - profile_accent_color_id: self.profile_accent_color_id, - profile_background_custom_emoji_id: self.profile_background_custom_emoji_id, - emoji_status_custom_emoji_id: self.emoji_status_custom_emoji_id, - emoji_status_expiration_date: self.emoji_status_expiration_date, - has_visible_history: self.has_visible_history, - } - } -} - #[derive(Changeable, Clone)] pub struct MockLinkPreviewOptions { pub is_disabled: bool, diff --git a/teloxide_tests/src/dataset/tests.rs b/teloxide_tests/src/dataset/tests.rs index f6b3c06..4136cdb 100644 --- a/teloxide_tests/src/dataset/tests.rs +++ b/teloxide_tests/src/dataset/tests.rs @@ -1,6 +1,6 @@ use teloxide::{ dispatching::dialogue::GetChatId, - types::{ChatId, MessageEntity, MessageId, True, UpdateId, UserId}, + types::{ChatId, MessageEntity, MessageId, UpdateId, UserId}, }; use crate::{dataset::*, proc_macros::Changeable}; @@ -62,42 +62,61 @@ fn test_location() { #[test] fn test_public_group_chat() { - let chat = MockGroupChat::new() - .title("Test") + let chat = MockGroupChat::new().title("Test").id(-1234); + let chat_photo = MockChatPhoto::new().build(); + let chat_full_info = MockChatFullInfoGroup::new() + .title("Test2") .id(-1234) - .photo(MockChatPhoto::new().build()); + .photo(chat_photo.clone()); let chat_object = chat.build(); assert_eq!(chat_object.title(), Some("Test")); assert_eq!(chat_object.id, ChatId(-1234)); - assert_eq!(chat_object.photo, Some(MockChatPhoto::new().build())); + + let chat_full_info_object = chat_full_info.build(); + assert_eq!(chat_full_info_object.title(), Some("Test2")); + assert_eq!(chat_full_info_object.id, ChatId(-1234)); + assert_eq!(chat_full_info_object.photo, Some(chat_photo)); } #[test] fn test_supergroup_chat() { - let chat = MockSupergroupChat::new().join_by_request(True).id(-1234); + let chat = MockSupergroupChat::new().id(-1234); + let chat_full_info = MockChatFullInfoSupergroup::new() + .join_by_request(true) + .id(-1234); let chat_object = chat.build(); assert_eq!(chat_object.id, ChatId(-1234)); - assert_eq!(chat_object.join_by_request(), Some(True)); + + let chat_full_info_object = chat_full_info.build(); + assert_eq!(chat_full_info_object.id, ChatId(-1234)); + assert_eq!(chat_full_info_object.join_by_request(), true); } #[test] fn test_channel_chat() { - let chat = MockChannelChat::new() - .linked_chat_id(-12345) + let chat = MockChannelChat::new().username("test_channel").id(-1234); + let chat_full_info = MockChatFullInfoChannel::new() .username("test_channel") + .linked_chat_id(-12345) .id(-1234); let chat_object = chat.build(); assert_eq!(chat_object.id, ChatId(-1234)); - assert_eq!(chat_object.linked_chat_id(), Some(-12345)); assert_eq!(chat_object.username(), Some("test_channel")); + + let chat_full_info_object = chat_full_info.build(); + assert_eq!(chat_full_info_object.id, ChatId(-1234)); + assert_eq!(chat_full_info_object.username(), Some("test_channel")); + assert_eq!(chat_full_info_object.linked_chat_id(), Some(-12345)); } #[test] fn test_private_group_chat() { - let chat = MockPrivateChat::new() + let chat = MockPrivateChat::new().first_name("Test").id(1234); + + let chat_full_info = MockChatFullInfoPrivate::new() .first_name("Test") .id(1234) .bio("Test bio"); @@ -105,7 +124,11 @@ fn test_private_group_chat() { let chat_object = chat.build(); assert_eq!(chat_object.first_name(), Some("Test")); assert_eq!(chat_object.id, ChatId(1234)); - assert_eq!(chat_object.bio(), Some("Test bio")); + + let chat_full_info_object = chat_full_info.build(); + assert_eq!(chat_full_info_object.first_name(), Some("Test")); + assert_eq!(chat_full_info_object.id, ChatId(1234)); + assert_eq!(chat_full_info_object.bio(), Some("Test bio")); } // diff --git a/teloxide_tests/src/server/routes/copy_message.rs b/teloxide_tests/src/server/routes/copy_message.rs index 522770f..fc97efd 100644 --- a/teloxide_tests/src/server/routes/copy_message.rs +++ b/teloxide_tests/src/server/routes/copy_message.rs @@ -41,6 +41,7 @@ pub async fn copy_message( message.chat = chat; message.from = Some(me.user.clone()); + // FIXME: Use show_caption_above_media if let MessageKind::Common(ref mut common) = message.kind { common.forward_origin = None; common.external_reply = None; diff --git a/teloxide_tests/src/server/routes/edit_message_caption.rs b/teloxide_tests/src/server/routes/edit_message_caption.rs index 1856df3..2f53299 100644 --- a/teloxide_tests/src/server/routes/edit_message_caption.rs +++ b/teloxide_tests/src/server/routes/edit_message_caption.rs @@ -2,7 +2,7 @@ use std::sync::Mutex; use actix_web::{error::ErrorBadRequest, web, Responder}; use serde::Deserialize; -use teloxide::types::{MessageEntity, ParseMode, ReplyMarkup}; +use teloxide::types::{BusinessConnectionId, MessageEntity, ParseMode, ReplyMarkup}; use super::{check_if_message_exists, BodyChatId}; use crate::{ @@ -20,6 +20,7 @@ pub struct EditMessageCaptionBody { pub caption_entities: Option>, pub show_caption_above_media: Option, pub reply_markup: Option, + pub business_connection_id: Option, } pub async fn edit_message_caption( @@ -41,6 +42,11 @@ pub async fn edit_message_caption( "caption_entities", body.caption_entities.clone().unwrap_or_default(), ); + lock.messages.edit_message_field( + message_id, + "show_caption_above_media", + body.show_caption_above_media.unwrap_or(false), + ); let message = lock .messages diff --git a/teloxide_tests/src/server/routes/edit_message_reply_markup.rs b/teloxide_tests/src/server/routes/edit_message_reply_markup.rs index 5e624da..83538fa 100644 --- a/teloxide_tests/src/server/routes/edit_message_reply_markup.rs +++ b/teloxide_tests/src/server/routes/edit_message_reply_markup.rs @@ -2,7 +2,7 @@ use std::sync::Mutex; use actix_web::{error::ErrorBadRequest, web, Responder}; use serde::Deserialize; -use teloxide::types::ReplyMarkup; +use teloxide::types::{BusinessConnectionId, ReplyMarkup}; use super::BodyChatId; use crate::{ @@ -19,6 +19,7 @@ pub struct EditMessageReplyMarkupBody { pub message_id: Option, pub inline_message_id: Option, pub reply_markup: Option, + pub business_connection_id: Option, } pub async fn edit_message_reply_markup( diff --git a/teloxide_tests/src/server/routes/edit_message_text.rs b/teloxide_tests/src/server/routes/edit_message_text.rs index bfeeccf..cf03f20 100644 --- a/teloxide_tests/src/server/routes/edit_message_text.rs +++ b/teloxide_tests/src/server/routes/edit_message_text.rs @@ -3,7 +3,7 @@ use std::sync::Mutex; use actix_web::{error::ErrorBadRequest, web, Responder, ResponseError}; use serde::Deserialize; use teloxide::{ - types::{LinkPreviewOptions, MessageEntity, ParseMode, ReplyMarkup}, + types::{BusinessConnectionId, LinkPreviewOptions, MessageEntity, ParseMode, ReplyMarkup}, ApiError, }; @@ -23,6 +23,7 @@ pub struct EditMessageTextBody { pub entities: Option>, pub link_preview_options: Option, pub reply_markup: Option, + pub business_connection_id: Option, } pub async fn edit_message_text( diff --git a/teloxide_tests/src/server/routes/mod.rs b/teloxide_tests/src/server/routes/mod.rs index 51188bf..743a660 100644 --- a/teloxide_tests/src/server/routes/mod.rs +++ b/teloxide_tests/src/server/routes/mod.rs @@ -2,7 +2,7 @@ use std::{collections::HashMap, str::from_utf8}; use actix_web::{error::ResponseError, http::header::ContentType, HttpResponse}; use futures_util::{stream::StreamExt as _, TryStreamExt}; -use rand::distributions::{Alphanumeric, DistString}; +use rand::distr::{Alphanumeric, SampleString}; use serde::{Deserialize, Serialize}; use serde_json::json; use teloxide::{ @@ -247,10 +247,7 @@ pub async fn get_raw_multipart_fields( .enumerate() .map(|(i, s)| { if i == 0 { - format!( - "{s}{}", - Alphanumeric.sample_string(&mut rand::thread_rng(), 5) - ) + format!("{s}{}", Alphanumeric.sample_string(&mut rand::rng(), 5)) } else { s.to_string() } diff --git a/teloxide_tests/src/server/routes/pin_chat_message.rs b/teloxide_tests/src/server/routes/pin_chat_message.rs index 49aa157..a879ef5 100644 --- a/teloxide_tests/src/server/routes/pin_chat_message.rs +++ b/teloxide_tests/src/server/routes/pin_chat_message.rs @@ -2,6 +2,7 @@ use std::sync::Mutex; use actix_web::{error::ErrorBadRequest, web, Responder}; use serde::Deserialize; +use teloxide::types::BusinessConnectionId; use super::{check_if_message_exists, BodyChatId}; use crate::{server::routes::make_telegram_result, state::State}; @@ -11,6 +12,7 @@ pub struct PinChatMessageBody { pub chat_id: BodyChatId, pub message_id: i32, pub disable_notification: Option, + pub business_connection_id: Option, } pub async fn pin_chat_message( diff --git a/teloxide_tests/src/server/routes/send_animation.rs b/teloxide_tests/src/server/routes/send_animation.rs index fdb0c39..516ca41 100644 --- a/teloxide_tests/src/server/routes/send_animation.rs +++ b/teloxide_tests/src/server/routes/send_animation.rs @@ -3,9 +3,11 @@ use std::{collections::HashMap, str::FromStr, sync::Mutex}; use actix_multipart::Multipart; use actix_web::{error::ErrorBadRequest, web, Responder}; use mime::Mime; -use rand::distributions::{Alphanumeric, DistString}; +use rand::distr::{Alphanumeric, SampleString}; use serde::Deserialize; -use teloxide::types::{Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, Seconds}; +use teloxide::types::{ + BusinessConnectionId, Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, Seconds, +}; use super::{get_raw_multipart_fields, make_telegram_result, BodyChatId}; use crate::{ @@ -37,6 +39,9 @@ pub async fn send_animation( message.caption = body.caption.clone(); message.caption_entities = body.caption_entities.clone().unwrap_or_default(); message.has_media_spoiler = body.has_spoiler.unwrap_or_default(); + message.effect_id = body.message_effect_id.clone(); + message.show_caption_above_media = body.show_caption_above_media.unwrap_or(false); + message.business_connection_id = body.business_connection_id.clone(); if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); @@ -50,8 +55,8 @@ pub async fn send_animation( message.reply_markup = Some(markup); } - let file_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 16); - let file_unique_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 8); + let file_id = Alphanumeric.sample_string(&mut rand::rng(), 16); + let file_unique_id = Alphanumeric.sample_string(&mut rand::rng(), 8); message.file_name = Some(body.file_name.clone()); message.file_id = file_id.clone(); @@ -103,4 +108,5 @@ pub struct SendMessageAnimationBody { pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } diff --git a/teloxide_tests/src/server/routes/send_audio.rs b/teloxide_tests/src/server/routes/send_audio.rs index e506f13..a6a09ce 100644 --- a/teloxide_tests/src/server/routes/send_audio.rs +++ b/teloxide_tests/src/server/routes/send_audio.rs @@ -3,9 +3,11 @@ use std::{collections::HashMap, str::FromStr, sync::Mutex}; use actix_multipart::Multipart; use actix_web::{error::ErrorBadRequest, web, Responder}; use mime::Mime; -use rand::distributions::{Alphanumeric, DistString}; +use rand::distr::{Alphanumeric, SampleString}; use serde::Deserialize; -use teloxide::types::{Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, Seconds}; +use teloxide::types::{ + BusinessConnectionId, Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, Seconds, +}; use super::{get_raw_multipart_fields, make_telegram_result, BodyChatId}; use crate::{ @@ -34,6 +36,8 @@ pub async fn send_audio( message.from = Some(me.user.clone()); message.caption = body.caption.clone(); message.caption_entities = body.caption_entities.clone().unwrap_or_default(); + message.effect_id = body.message_effect_id.clone(); + message.business_connection_id = body.business_connection_id.clone(); if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); @@ -47,8 +51,8 @@ pub async fn send_audio( message.reply_markup = Some(markup); } - let file_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 16); - let file_unique_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 8); + let file_id = Alphanumeric.sample_string(&mut rand::rng(), 16); + let file_unique_id = Alphanumeric.sample_string(&mut rand::rng(), 8); message.file_id = file_id.clone(); message.file_unique_id = file_unique_id.clone(); @@ -92,4 +96,5 @@ pub struct SendMessageAudioBody { pub message_effect_id: Option, pub reply_parameters: Option, pub reply_markup: Option, + pub business_connection_id: Option, } diff --git a/teloxide_tests/src/server/routes/send_chat_action.rs b/teloxide_tests/src/server/routes/send_chat_action.rs index 8d87515..5f4c150 100644 --- a/teloxide_tests/src/server/routes/send_chat_action.rs +++ b/teloxide_tests/src/server/routes/send_chat_action.rs @@ -2,6 +2,7 @@ use std::sync::Mutex; use actix_web::{web, Responder}; use serde::Deserialize; +use teloxide::types::BusinessConnectionId; use super::BodyChatId; use crate::{server::routes::make_telegram_result, state::State}; @@ -11,6 +12,7 @@ pub struct SendChatActionBody { pub chat_id: BodyChatId, pub message_thread_id: Option, pub action: String, + pub business_connection_id: Option, } pub async fn send_chat_action( diff --git a/teloxide_tests/src/server/routes/send_contact.rs b/teloxide_tests/src/server/routes/send_contact.rs index 36f5eef..6bc0440 100644 --- a/teloxide_tests/src/server/routes/send_contact.rs +++ b/teloxide_tests/src/server/routes/send_contact.rs @@ -2,7 +2,7 @@ use std::sync::Mutex; use actix_web::{error::ErrorBadRequest, web, Responder}; use serde::Deserialize; -use teloxide::types::{Me, ReplyMarkup, ReplyParameters}; +use teloxide::types::{BusinessConnectionId, Me, ReplyMarkup, ReplyParameters}; use super::{make_telegram_result, BodyChatId}; use crate::{ @@ -24,6 +24,7 @@ pub struct SendMessageContactBody { pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } pub async fn send_contact( @@ -41,6 +42,8 @@ pub async fn send_contact( message.last_name = body.last_name.clone(); message.vcard = body.vcard.clone(); message.has_protected_content = body.protect_content.unwrap_or(false); + message.effect_id = body.message_effect_id.clone(); + message.business_connection_id = body.business_connection_id.clone(); if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); diff --git a/teloxide_tests/src/server/routes/send_dice.rs b/teloxide_tests/src/server/routes/send_dice.rs index 5346623..8e0cf90 100644 --- a/teloxide_tests/src/server/routes/send_dice.rs +++ b/teloxide_tests/src/server/routes/send_dice.rs @@ -2,7 +2,7 @@ use std::sync::Mutex; use actix_web::{error::ErrorBadRequest, web, Responder}; use serde::Deserialize; -use teloxide::types::{DiceEmoji, ReplyMarkup, ReplyParameters}; +use teloxide::types::{BusinessConnectionId, DiceEmoji, ReplyMarkup, ReplyParameters}; use super::{make_telegram_result, BodyChatId}; use crate::{ @@ -21,6 +21,7 @@ pub struct SendMessageDiceBody { pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } pub async fn send_dice( diff --git a/teloxide_tests/src/server/routes/send_document.rs b/teloxide_tests/src/server/routes/send_document.rs index 9dd0f58..6d848ee 100644 --- a/teloxide_tests/src/server/routes/send_document.rs +++ b/teloxide_tests/src/server/routes/send_document.rs @@ -3,9 +3,11 @@ use std::{collections::HashMap, str::FromStr, sync::Mutex}; use actix_multipart::Multipart; use actix_web::{error::ErrorBadRequest, web, Responder}; use mime::Mime; -use rand::distributions::{Alphanumeric, DistString}; +use rand::distr::{Alphanumeric, SampleString}; use serde::Deserialize; -use teloxide::types::{Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters}; +use teloxide::types::{ + BusinessConnectionId, Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, +}; use super::{get_raw_multipart_fields, make_telegram_result, BodyChatId}; use crate::{ @@ -35,6 +37,8 @@ pub async fn send_document( message.from = Some(me.user.clone()); message.caption = body.caption.clone(); message.caption_entities = body.caption_entities.clone().unwrap_or_default(); + message.effect_id = body.message_effect_id.clone(); + message.business_connection_id = body.business_connection_id.clone(); if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); @@ -48,8 +52,8 @@ pub async fn send_document( message.reply_markup = Some(markup); } - let file_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 16); - let file_unique_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 8); + let file_id = Alphanumeric.sample_string(&mut rand::rng(), 16); + let file_unique_id = Alphanumeric.sample_string(&mut rand::rng(), 8); message.file_name = Some(body.file_name.clone()); message.file_id = file_id.clone(); @@ -95,4 +99,5 @@ pub struct SendMessageDocumentBody { pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } diff --git a/teloxide_tests/src/server/routes/send_location.rs b/teloxide_tests/src/server/routes/send_location.rs index b0ae244..381d802 100644 --- a/teloxide_tests/src/server/routes/send_location.rs +++ b/teloxide_tests/src/server/routes/send_location.rs @@ -2,7 +2,7 @@ use std::sync::Mutex; use actix_web::{error::ErrorBadRequest, web, Responder}; use serde::Deserialize; -use teloxide::types::{Me, ReplyMarkup, ReplyParameters, Seconds}; +use teloxide::types::{BusinessConnectionId, LivePeriod, Me, ReplyMarkup, ReplyParameters}; use super::{make_telegram_result, BodyChatId}; use crate::{ @@ -17,7 +17,7 @@ pub struct SendMessageLocationBody { pub latitude: f64, pub longitude: f64, pub horizontal_accuracy: Option, - pub live_period: Option, + pub live_period: Option, pub heading: Option, pub proximity_alert_radius: Option, pub message_thread_id: Option, @@ -26,6 +26,7 @@ pub struct SendMessageLocationBody { pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } pub async fn send_location( @@ -44,6 +45,8 @@ pub async fn send_location( message.heading = body.heading; message.proximity_alert_radius = body.proximity_alert_radius; message.has_protected_content = body.protect_content.unwrap_or(false); + message.effect_id = body.message_effect_id.clone(); + message.business_connection_id = body.business_connection_id.clone(); if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); diff --git a/teloxide_tests/src/server/routes/send_media_group.rs b/teloxide_tests/src/server/routes/send_media_group.rs index 88cef1c..23b2d26 100644 --- a/teloxide_tests/src/server/routes/send_media_group.rs +++ b/teloxide_tests/src/server/routes/send_media_group.rs @@ -2,10 +2,13 @@ use std::{collections::HashMap, sync::Mutex}; use actix_multipart::Multipart; use actix_web::{error::ErrorBadRequest, web, Responder}; -use rand::distributions::{Alphanumeric, DistString}; +use rand::distr::{Alphanumeric, SampleString}; use serde::Deserialize; use serde_json::Value; -use teloxide::types::{Me, Message, MessageEntity, MessageId, ParseMode, ReplyParameters, Seconds}; +use teloxide::types::{ + BusinessConnectionId, Me, Message, MessageEntity, MessageId, ParseMode, ReplyParameters, + Seconds, +}; use super::{ get_raw_multipart_fields, make_telegram_result, Attachment, BodyChatId, MediaGroupInputMedia, @@ -34,6 +37,8 @@ pub async fn send_media_group( } let chat = body.chat_id.chat(); let protect_content = body.protect_content; + let message_effect_id = body.message_effect_id.clone(); + let business_connection_id = body.business_connection_id.clone(); let mut reply_to_message = None; if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); @@ -44,13 +49,13 @@ pub async fn send_media_group( .unwrap(), )); } - let media_group_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 16); + let media_group_id = Alphanumeric.sample_string(&mut rand::rng(), 16); let mut messages: Vec = vec![]; for media in &body.media { - let file_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 16); - let file_unique_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 8); + let file_id = Alphanumeric.sample_string(&mut rand::rng(), 16); + let file_unique_id = Alphanumeric.sample_string(&mut rand::rng(), 8); let last_id = lock.messages.max_message_id(); let message: Message; match media { @@ -67,6 +72,8 @@ pub async fn send_media_group( mock_message.performer = audio.performer.clone(); mock_message.title = audio.title.clone(); mock_message.duration = audio.duration.unwrap_or(Seconds::from_seconds(1)); + mock_message.effect_id = message_effect_id.clone(); + mock_message.business_connection_id = business_connection_id.clone(); mock_message.file_name = Some(audio.file_name.clone()); mock_message.file_id = file_id.clone(); @@ -93,6 +100,8 @@ pub async fn send_media_group( mock_message.caption_entities = document.caption_entities.clone().unwrap_or_default(); mock_message.media_group_id = Some(media_group_id.clone()); + mock_message.effect_id = message_effect_id.clone(); + mock_message.business_connection_id = business_connection_id.clone(); mock_message.file_name = Some(document.file_name.clone()); mock_message.file_id = file_id.clone(); @@ -118,6 +127,8 @@ pub async fn send_media_group( mock_message.caption = photo.caption.clone(); mock_message.caption_entities = photo.caption_entities.clone().unwrap_or_default(); mock_message.media_group_id = Some(media_group_id.clone()); + mock_message.effect_id = message_effect_id.clone(); + mock_message.business_connection_id = business_connection_id.clone(); let mut mock_photo = MockPhotoSize::new(); @@ -145,6 +156,8 @@ pub async fn send_media_group( mock_message.caption = video.caption.clone(); mock_message.caption_entities = video.caption_entities.clone().unwrap_or_default(); mock_message.media_group_id = Some(media_group_id.clone()); + mock_message.effect_id = message_effect_id.clone(); + mock_message.business_connection_id = business_connection_id.clone(); let mut mock_video = MockVideo::new(); @@ -190,6 +203,7 @@ pub struct SendMediaGroupBody { pub protect_content: Option, pub message_effect_id: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } impl SendMediaGroupBody { @@ -327,6 +341,9 @@ impl SendMediaGroupBody { reply_parameters: fields .get("reply_parameters") .map(|s| serde_json::from_str(s).unwrap()), + business_connection_id: fields + .get("business_connection_id") + .map(|s| serde_json::from_str(s).unwrap()), }) } } diff --git a/teloxide_tests/src/server/routes/send_message.rs b/teloxide_tests/src/server/routes/send_message.rs index 1147f4c..9cada8a 100644 --- a/teloxide_tests/src/server/routes/send_message.rs +++ b/teloxide_tests/src/server/routes/send_message.rs @@ -3,7 +3,8 @@ use std::sync::Mutex; use actix_web::{error::ErrorBadRequest, web, Responder}; use serde::Deserialize; use teloxide::types::{ - LinkPreviewOptions, Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, + BusinessConnectionId, LinkPreviewOptions, Me, MessageEntity, ParseMode, ReplyMarkup, + ReplyParameters, }; use super::{make_telegram_result, BodyChatId}; @@ -26,6 +27,7 @@ pub struct SendMessageTextBody { pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } pub async fn send_message( @@ -39,6 +41,8 @@ pub async fn send_message( MockMessageText::new().text(&body.text).chat(chat); message.from = Some(me.user.clone()); message.has_protected_content = body.protect_content.unwrap_or(false); + message.effect_id = body.message_effect_id.clone(); + message.business_connection_id = body.business_connection_id.clone(); message.entities = body.entities.clone().unwrap_or_default(); if let Some(reply_parameters) = &body.reply_parameters { diff --git a/teloxide_tests/src/server/routes/send_photo.rs b/teloxide_tests/src/server/routes/send_photo.rs index ad5ac7c..059b472 100644 --- a/teloxide_tests/src/server/routes/send_photo.rs +++ b/teloxide_tests/src/server/routes/send_photo.rs @@ -2,10 +2,11 @@ use std::{collections::HashMap, sync::Mutex}; use actix_multipart::Multipart; use actix_web::{error::ErrorBadRequest, web, Responder}; -use rand::distributions::{Alphanumeric, DistString}; +use rand::distr::{Alphanumeric, SampleString}; use serde::Deserialize; use teloxide::types::{ - LinkPreviewOptions, Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, + BusinessConnectionId, LinkPreviewOptions, Me, MessageEntity, ParseMode, ReplyMarkup, + ReplyParameters, }; use super::{get_raw_multipart_fields, make_telegram_result, BodyChatId}; @@ -36,6 +37,9 @@ pub async fn send_photo( message.has_protected_content = body.protect_content.unwrap_or(false); message.caption = body.caption.clone(); message.caption_entities = body.caption_entities.clone().unwrap_or_default(); + message.show_caption_above_media = body.show_caption_above_media.unwrap_or(false); + message.effect_id = body.message_effect_id.clone(); + message.business_connection_id = body.business_connection_id.clone(); if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); @@ -49,8 +53,8 @@ pub async fn send_photo( message.reply_markup = Some(markup); } - let file_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 16); - let file_unique_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 8); + let file_id = Alphanumeric.sample_string(&mut rand::rng(), 16); + let file_unique_id = Alphanumeric.sample_string(&mut rand::rng(), 8); message.photo = vec![MockPhotoSize::new() .file_id(file_id.clone()) @@ -86,7 +90,9 @@ pub struct SendMessagePhotoBody { pub link_preview_options: Option, pub disable_notification: Option, pub protect_content: Option, + pub show_caption_above_media: Option, pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } diff --git a/teloxide_tests/src/server/routes/send_poll.rs b/teloxide_tests/src/server/routes/send_poll.rs index 293c0d1..c7fb734 100644 --- a/teloxide_tests/src/server/routes/send_poll.rs +++ b/teloxide_tests/src/server/routes/send_poll.rs @@ -4,7 +4,8 @@ use actix_web::{error::ErrorBadRequest, web, Responder}; use chrono::DateTime; use serde::Deserialize; use teloxide::types::{ - Me, MessageEntity, ParseMode, PollOption, PollType, ReplyMarkup, ReplyParameters, Seconds, + BusinessConnectionId, InputPollOption, Me, MessageEntity, ParseMode, PollOption, PollType, + ReplyMarkup, ReplyParameters, Seconds, }; use super::{make_telegram_result, BodyChatId}; @@ -21,7 +22,7 @@ pub struct SendMessagePollBody { pub question: String, pub question_parse_mode: Option, pub question_entities: Option>, - pub options: Vec, + pub options: Vec, pub is_anonymous: Option, pub r#type: Option, pub allows_multiple_answers: Option, @@ -37,6 +38,7 @@ pub struct SendMessagePollBody { pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } pub async fn send_poll( @@ -50,12 +52,14 @@ pub async fn send_poll( MockMessagePoll::new().chat(chat); message.from = Some(me.user.clone()); message.has_protected_content = body.protect_content.unwrap_or(false); + message.business_connection_id = body.business_connection_id.clone(); message.question = body.question.clone(); let mut options = vec![]; for option in body.options.iter() { options.push(PollOption { - text: option.clone(), + text: option.text.clone(), + text_entities: None, voter_count: 0, }); } @@ -68,6 +72,8 @@ pub async fn send_poll( message.explanation_entities = body.explanation_entities.clone(); message.open_period = body.open_period; message.close_date = DateTime::from_timestamp(body.close_date.unwrap_or(0) as i64, 0); + message.effect_id = body.message_effect_id.clone(); + message.question_entities = body.question_entities.clone(); if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); diff --git a/teloxide_tests/src/server/routes/send_sticker.rs b/teloxide_tests/src/server/routes/send_sticker.rs index fb99446..4a04983 100644 --- a/teloxide_tests/src/server/routes/send_sticker.rs +++ b/teloxide_tests/src/server/routes/send_sticker.rs @@ -3,7 +3,7 @@ use std::{collections::HashMap, sync::Mutex}; use actix_multipart::Multipart; use actix_web::{error::ErrorBadRequest, web, Responder}; use serde::Deserialize; -use teloxide::types::{Me, ReplyMarkup, ReplyParameters}; +use teloxide::types::{BusinessConnectionId, Me, ReplyMarkup, ReplyParameters}; use super::{get_raw_multipart_fields, make_telegram_result, BodyChatId}; use crate::{ @@ -32,6 +32,8 @@ pub async fn send_sticker( message.from = Some(me.user.clone()); message.has_protected_content = body.protect_content.unwrap_or(false); message.emoji = body.emoji.clone(); + message.effect_id = body.message_effect_id.clone(); + message.business_connection_id = body.business_connection_id.clone(); // Idk how to get sticker kind and sticker format from this, sooooooooooo im not doing it, // ain't nobody testing that @@ -78,4 +80,5 @@ pub struct SendMessageStickerBody { pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } diff --git a/teloxide_tests/src/server/routes/send_venue.rs b/teloxide_tests/src/server/routes/send_venue.rs index d6f968b..af6b809 100644 --- a/teloxide_tests/src/server/routes/send_venue.rs +++ b/teloxide_tests/src/server/routes/send_venue.rs @@ -2,7 +2,7 @@ use std::sync::Mutex; use actix_web::{error::ErrorBadRequest, web, Responder}; use serde::Deserialize; -use teloxide::types::{Me, ReplyMarkup, ReplyParameters}; +use teloxide::types::{BusinessConnectionId, Me, ReplyMarkup, ReplyParameters}; use super::{make_telegram_result, BodyChatId}; use crate::{ @@ -28,6 +28,7 @@ pub struct SendMessageVenueBody { pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } pub async fn send_venue( @@ -51,6 +52,8 @@ pub async fn send_venue( message.foursquare_type = body.foursquare_type.clone(); message.google_place_id = body.google_place_id.clone(); message.google_place_type = body.google_place_type.clone(); + message.effect_id = body.message_effect_id.clone(); + message.business_connection_id = body.business_connection_id.clone(); if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); diff --git a/teloxide_tests/src/server/routes/send_video.rs b/teloxide_tests/src/server/routes/send_video.rs index c20eee7..efe8c10 100644 --- a/teloxide_tests/src/server/routes/send_video.rs +++ b/teloxide_tests/src/server/routes/send_video.rs @@ -3,9 +3,11 @@ use std::{collections::HashMap, str::FromStr, sync::Mutex}; use actix_multipart::Multipart; use actix_web::{error::ErrorBadRequest, web, Responder}; use mime::Mime; -use rand::distributions::{Alphanumeric, DistString}; +use rand::distr::{Alphanumeric, SampleString}; use serde::Deserialize; -use teloxide::types::{Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, Seconds}; +use teloxide::types::{ + BusinessConnectionId, Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, Seconds, +}; use super::{get_raw_multipart_fields, make_telegram_result, BodyChatId}; use crate::{ @@ -34,6 +36,9 @@ pub async fn send_video( message.has_protected_content = body.protect_content.unwrap_or(false); message.caption = body.caption.clone(); message.caption_entities = body.caption_entities.clone().unwrap_or_default(); + message.show_caption_above_media = body.show_caption_above_media.unwrap_or(false); + message.effect_id = body.message_effect_id.clone(); + message.business_connection_id = body.business_connection_id.clone(); if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); @@ -48,8 +53,8 @@ pub async fn send_video( message.reply_markup = Some(markup); } - let file_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 16); - let file_unique_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 8); + let file_id = Alphanumeric.sample_string(&mut rand::rng(), 16); + let file_unique_id = Alphanumeric.sample_string(&mut rand::rng(), 8); message.video = MockVideo::new() .file_id(file_id.clone()) @@ -98,4 +103,5 @@ pub struct SendMessageVideoBody { pub message_effect_id: Option, pub reply_markup: Option, pub reply_parameters: Option, + pub business_connection_id: Option, } diff --git a/teloxide_tests/src/server/routes/send_video_note.rs b/teloxide_tests/src/server/routes/send_video_note.rs index cd16777..3104812 100644 --- a/teloxide_tests/src/server/routes/send_video_note.rs +++ b/teloxide_tests/src/server/routes/send_video_note.rs @@ -2,9 +2,9 @@ use std::{collections::HashMap, sync::Mutex}; use actix_multipart::Multipart; use actix_web::{error::ErrorBadRequest, web, Responder}; -use rand::distributions::{Alphanumeric, DistString}; +use rand::distr::{Alphanumeric, SampleString}; use serde::Deserialize; -use teloxide::types::{Me, ReplyMarkup, ReplyParameters, Seconds}; +use teloxide::types::{BusinessConnectionId, Me, ReplyMarkup, ReplyParameters, Seconds}; use super::{get_raw_multipart_fields, make_telegram_result, BodyChatId}; use crate::{ @@ -45,14 +45,16 @@ pub async fn send_video_note( message.reply_markup = Some(markup); } - let file_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 16); - let file_unique_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 8); + let file_id = Alphanumeric.sample_string(&mut rand::rng(), 16); + let file_unique_id = Alphanumeric.sample_string(&mut rand::rng(), 8); message.file_id = file_id.clone(); message.file_unique_id = file_unique_id.clone(); message.duration = body.duration.unwrap_or(Seconds::from_seconds(0)); message.length = body.length.unwrap_or(100); message.file_size = body.file_data.bytes().len() as u32; + message.effect_id = body.message_effect_id.clone(); + message.business_connection_id = body.business_connection_id.clone(); let last_id = lock.messages.max_message_id(); let message = lock.messages.add_message(message.id(last_id + 1).build()); @@ -85,4 +87,5 @@ pub struct SendMessageVideoNoteBody { pub message_effect_id: Option, pub reply_parameters: Option, pub reply_markup: Option, + pub business_connection_id: Option, } diff --git a/teloxide_tests/src/server/routes/send_voice.rs b/teloxide_tests/src/server/routes/send_voice.rs index e088eb9..15a764e 100644 --- a/teloxide_tests/src/server/routes/send_voice.rs +++ b/teloxide_tests/src/server/routes/send_voice.rs @@ -3,9 +3,11 @@ use std::{collections::HashMap, str::FromStr, sync::Mutex}; use actix_multipart::Multipart; use actix_web::{error::ErrorBadRequest, web, Responder}; use mime::Mime; -use rand::distributions::{Alphanumeric, DistString}; +use rand::distr::{Alphanumeric, SampleString}; use serde::Deserialize; -use teloxide::types::{Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, Seconds}; +use teloxide::types::{ + BusinessConnectionId, Me, MessageEntity, ParseMode, ReplyMarkup, ReplyParameters, Seconds, +}; use super::{get_raw_multipart_fields, make_telegram_result, BodyChatId}; use crate::{ @@ -34,6 +36,7 @@ pub async fn send_voice( message.has_protected_content = body.protect_content.unwrap_or(false); message.caption = body.caption.clone(); message.caption_entities = body.caption_entities.clone().unwrap_or_default(); + message.business_connection_id = body.business_connection_id.clone(); if let Some(reply_parameters) = &body.reply_parameters { check_if_message_exists!(lock, reply_parameters.message_id.0); @@ -47,14 +50,15 @@ pub async fn send_voice( message.reply_markup = Some(markup); } - let file_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 16); - let file_unique_id = Alphanumeric.sample_string(&mut rand::thread_rng(), 8); + let file_id = Alphanumeric.sample_string(&mut rand::rng(), 16); + let file_unique_id = Alphanumeric.sample_string(&mut rand::rng(), 8); message.file_id = file_id.clone(); message.file_unique_id = file_unique_id.clone(); message.duration = body.duration.unwrap_or(Seconds::from_seconds(0)); message.file_size = body.file_data.bytes().len() as u32; message.mime_type = Some(Mime::from_str("audio/mp3").unwrap()); + message.effect_id = body.message_effect_id.clone(); let last_id = lock.messages.max_message_id(); let message = lock.messages.add_message(message.id(last_id + 1).build()); @@ -87,4 +91,5 @@ pub struct SendMessageVoiceBody { pub message_effect_id: Option, pub reply_parameters: Option, pub reply_markup: Option, + pub business_connection_id: Option, } diff --git a/teloxide_tests/src/server/routes/unpin_chat_message.rs b/teloxide_tests/src/server/routes/unpin_chat_message.rs index 652f3fe..5bdb1a6 100644 --- a/teloxide_tests/src/server/routes/unpin_chat_message.rs +++ b/teloxide_tests/src/server/routes/unpin_chat_message.rs @@ -2,6 +2,7 @@ use std::sync::Mutex; use actix_web::{error::ErrorBadRequest, web, Responder}; use serde::Deserialize; +use teloxide::types::BusinessConnectionId; use super::{check_if_message_exists, BodyChatId}; use crate::{server::routes::make_telegram_result, state::State}; @@ -10,6 +11,7 @@ use crate::{server::routes::make_telegram_result, state::State}; pub struct UnpinChatMessageBody { pub chat_id: BodyChatId, pub message_id: Option, + pub business_connection_id: Option, } pub async fn unpin_chat_message( diff --git a/teloxide_tests/src/tests.rs b/teloxide_tests/src/tests.rs index cdd15d6..87b3850 100644 --- a/teloxide_tests/src/tests.rs +++ b/teloxide_tests/src/tests.rs @@ -24,7 +24,7 @@ use teloxide::{ BotCommand, ChatAction, ChatPermissions, DiceEmoji, InlineKeyboardButton, InlineKeyboardMarkup, InputFile, InputMedia, InputMediaAudio, InputMediaDocument, InputMediaPhoto, InputMediaVideo, LabeledPrice, LinkPreviewOptions, Message, MessageEntity, - MessageId, PollOption, PollType, ReactionType, ReplyParameters, Seconds, Update, + MessageId, PollOption, PollType, ReactionType, ReplyParameters, Update, }, }; @@ -358,7 +358,7 @@ async fn handler( } AllCommands::Location => { bot.send_location(msg.chat.id, 1.0, 1.0) - .live_period(60) + .live_period(60.into()) .reply_parameters(reply_options) .await?; } @@ -379,7 +379,7 @@ async fn handler( bot.send_poll( msg.chat.id, "what is test", - vec!["test".to_string(), "not test".to_string()], + vec!["test".to_string().into(), "not test".to_string().into()], ) .type_(PollType::Quiz) .reply_parameters(reply_options) @@ -874,10 +874,7 @@ async fn test_send_location() { ); assert_eq!(last_sent_message.location().unwrap().latitude, 1.0); assert_eq!(last_sent_message.location().unwrap().longitude, 1.0); - assert_eq!( - last_sent_location.bot_request.live_period, - Some(Seconds::from_seconds(60)) - ); + assert_eq!(last_sent_location.bot_request.live_period, Some(60.into())); } #[tokio::test] @@ -947,10 +944,12 @@ async fn test_send_poll() { vec![ PollOption { text: "test".to_string(), + text_entities: None, voter_count: 0 }, PollOption { text: "not test".to_string(), + text_entities: None, voter_count: 0 } ],