diff --git a/Cargo.lock b/Cargo.lock index 45518452..5eb0a7c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,7 +24,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ "generic-array", - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "86b8f9420f797f2d9e935edf629310eb938a0d839f984e25327f3c7eed22300c" dependencies = [ "memchr", ] @@ -95,9 +95,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.71" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" +checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" [[package]] name = "anymap2" @@ -135,7 +135,7 @@ dependencies = [ "libc", "once_cell", "pipewire", - "rand 0.8.5", + "rand", "serde", "serde_repr", "tokio", @@ -171,6 +171,19 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-compression" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b74f44609f0f91493e3082d3734d98497e094777144380ea4db9f9905dd5b6" +dependencies = [ + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + [[package]] name = "async-executor" version = "1.5.1" @@ -180,7 +193,7 @@ dependencies = [ "async-lock", "async-task", "concurrent-queue", - "fastrand", + "fastrand 1.9.0", "futures-lite", "slab", ] @@ -214,17 +227,17 @@ dependencies = [ "log", "parking", "polling", - "rustix", + "rustix 0.37.23", "slab", - "socket2", + "socket2 0.4.9", "waker-fn", ] [[package]] name = "async-lock" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ "event-listener", ] @@ -248,7 +261,7 @@ dependencies = [ "cfg-if", "event-listener", "futures-lite", - "rustix", + "rustix 0.37.23", "signal-hook", "windows-sys", ] @@ -261,7 +274,17 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", +] + +[[package]] +name = "async-rx" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a30de4e5329a0947e389f738a6ca0d0b938fea5cb7baaeae7d72e243614468a2" +dependencies = [ + "futures-core", + "pin-project-lite", ] [[package]] @@ -310,7 +333,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] @@ -321,15 +344,21 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" [[package]] name = "async-trait" -version = "0.1.71" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] +[[package]] +name = "async_cell" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "834eee9ce518130a3b4d5af09ecc43e9d6b57ee76613f227a1ddd6b77c7a62bc" + [[package]] name = "atomic" version = "0.5.3" @@ -361,10 +390,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ "futures-core", - "getrandom 0.2.10", + "getrandom", "instant", "pin-project-lite", - "rand 0.8.5", + "rand", "tokio", ] @@ -383,12 +412,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.2" @@ -435,9 +458,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "bitmaps" @@ -456,7 +479,7 @@ dependencies = [ "cc", "cfg-if", "constant_time_eq", - "digest 0.10.7", + "digest", ] [[package]] @@ -465,15 +488,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -502,7 +516,7 @@ dependencies = [ "async-lock", "async-task", "atomic-waker", - "fastrand", + "fastrand 1.9.0", "futures-lite", "log", ] @@ -573,9 +587,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.79" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" +dependencies = [ + "libc", +] [[package]] name = "cexpr" @@ -588,9 +605,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c" +checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9" dependencies = [ "smallvec", "target-lexicon", @@ -707,9 +724,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.7.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" [[package]] name = "const_panic" @@ -819,7 +836,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core 0.6.4", + "rand_core", "typenum", ] @@ -834,18 +851,31 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +version = "4.0.0" +source = "git+https://github.com/dalek-cryptography/curve25519-dalek/?rev=e44d4b5903106dde0e5b28a2580061de7dfe8a9f#e44d4b5903106dde0e5b28a2580061de7dfe8a9f" dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "platforms", + "rustc_version", "serde", "subtle", "zeroize", ] +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.0" +source = "git+https://github.com/dalek-cryptography/curve25519-dalek/?rev=e44d4b5903106dde0e5b28a2580061de7dfe8a9f#e44d4b5903106dde0e5b28a2580061de7dfe8a9f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + [[package]] name = "darling" version = "0.14.4" @@ -938,11 +968,25 @@ dependencies = [ [[package]] name = "der" -version = "0.5.1" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" dependencies = [ "const-oid", + "der_derive", + "flagset", + "zeroize", +] + +[[package]] +name = "der_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fe87ce4529967e0ba1dcf8450bab64d97dfd5010a6256187ffe2e43e6f0e049" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", ] [[package]] @@ -987,22 +1031,13 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - [[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "crypto-common", "subtle", ] @@ -1036,7 +1071,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] @@ -1047,34 +1082,33 @@ checksum = "e8cf7d61e627a3b49af8f24f47e57f3788cdd7a0e4f17cd79fda5ada87f08578" [[package]] name = "ed25519" -version = "1.5.3" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +checksum = "5fb04eee5d9d907f29e80ee6b0e78f7e2c82342c63e3580d8c4f69d9d5aad963" dependencies = [ + "pkcs8", "serde", "signature", ] [[package]] name = "ed25519-dalek" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +version = "2.0.0-rc.3" +source = "git+https://github.com/dalek-cryptography/curve25519-dalek/?rev=e44d4b5903106dde0e5b28a2580061de7dfe8a9f#e44d4b5903106dde0e5b28a2580061de7dfe8a9f" dependencies = [ "curve25519-dalek", "ed25519", - "rand 0.7.3", + "rand_core", "serde", - "serde_bytes", - "sha2 0.9.9", + "sha2", "zeroize", ] [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "encoding_rs" @@ -1103,7 +1137,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] @@ -1114,9 +1148,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" dependencies = [ "errno-dragonfly", "libc", @@ -1157,9 +1191,9 @@ dependencies = [ [[package]] name = "eyeball" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40db066b8b21f8f8e49746cee2bfdcceb8d675cb3e2ff5fd7c7d86aadf69b6f5" +checksum = "78a7b57c052e83f2bd8d756fc379132e43d3786f3767856026ee3757868f099f" dependencies = [ "futures-core", "readlock", @@ -1167,14 +1201,27 @@ dependencies = [ [[package]] name = "eyeball-im" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c21fb87d8fd4bdb2e140007b79d350ad93c574989abd2be322a0534054e68a67" +checksum = "4d999ff633cd7243e8b9efc2a1e35846517f16ce4c3c87a70e0a829d8fb29af3" dependencies = [ "futures-core", "imbl", "tokio", "tokio-util", + "tracing", +] + +[[package]] +name = "eyeball-im-util" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a51602d13a284f2241af1d8dc020dd22f49a6bbbf420a5eccbea6c399069a45" +dependencies = [ + "eyeball-im", + "futures-core", + "imbl", + "pin-project-lite", ] [[package]] @@ -1198,6 +1245,12 @@ dependencies = [ "instant", ] +[[package]] +name = "fastrand" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" + [[package]] name = "fdeflate" version = "0.3.0" @@ -1207,6 +1260,12 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "fiat-crypto" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" + [[package]] name = "field-offset" version = "0.3.6" @@ -1217,6 +1276,12 @@ dependencies = [ "rustc_version", ] +[[package]] +name = "flagset" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda653ca797810c02f7ca4b804b40b8b95ae046eb989d356bce17919a8c25499" + [[package]] name = "flate2" version = "1.0.26" @@ -1275,10 +1340,10 @@ name = "fractal" version = "5.0.0-beta1" dependencies = [ "ashpd", - "async-stream", "djb_hash", "eyeball-im", - "futures", + "futures-channel", + "futures-util", "geo-uri", "gettext-rs", "gst-plugin-gtk4", @@ -1290,7 +1355,7 @@ dependencies = [ "gtk4", "html-escape", "html2pango", - "image 0.24.6", + "image 0.24.7", "indexmap 2.0.0", "libadwaita", "libshumate", @@ -1303,7 +1368,7 @@ dependencies = [ "oo7", "pulldown-cmark", "qrcode", - "rand 0.8.5", + "rand", "regex", "rmp-serde", "rqrr", @@ -1329,21 +1394,6 @@ dependencies = [ "new_debug_unreachable", ] -[[package]] -name = "futures" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - [[package]] name = "futures-channel" version = "0.3.28" @@ -1351,7 +1401,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", - "futures-sink", ] [[package]] @@ -1383,7 +1432,7 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ - "fastrand", + "fastrand 1.9.0", "futures-core", "futures-io", "memchr", @@ -1400,7 +1449,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] @@ -1433,6 +1482,15 @@ dependencies = [ "slab", ] +[[package]] +name = "fuzzy-matcher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" +dependencies = [ + "thread_local", +] + [[package]] name = "g2gen" version = "1.0.1" @@ -1626,19 +1684,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - [[package]] name = "getrandom" version = "0.2.10" @@ -2261,7 +2306,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] @@ -2354,7 +2399,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2429,9 +2474,9 @@ dependencies = [ [[package]] name = "image" -version = "0.24.6" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" dependencies = [ "bytemuck", "byteorder", @@ -2454,7 +2499,7 @@ checksum = "c2806b69cd9f4664844027b64465eacb444c67c1db9c778e341adff0c25cdb0d" dependencies = [ "bitmaps", "imbl-sized-chunks", - "rand_core 0.6.4", + "rand_core", "rand_xoshiro", "serde", "version_check", @@ -2563,9 +2608,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jpeg-decoder" @@ -2605,31 +2650,24 @@ dependencies = [ [[package]] name = "konst" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9a8bb6c7c71d151b25936b03e012a4c00daea99e3a3797c6ead66b0a0d55e2" +checksum = "030400e39b2dff8beaa55986a17e0014ad657f569ca92426aafcb5e8e71faee7" dependencies = [ "const_panic", "konst_kernel", - "konst_proc_macros", "typewit", ] [[package]] name = "konst_kernel" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55d2ab266022e7309df89ed712bddc753e3a3c395c3ced1bb2e4470ec2a8146d" +checksum = "3376133edc39f027d551eb77b077c2865a0ef252b2e7d0dd6b6dc303db95d8b5" dependencies = [ "typewit", ] -[[package]] -name = "konst_proc_macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e28ab1dc35e09d60c2b8c90d12a9a8d9666c876c10a3739a3196db0103b6043" - [[package]] name = "kv-log-macro" version = "1.0.7" @@ -2791,6 +2829,12 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +[[package]] +name = "linux-raw-sys" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" + [[package]] name = "locale_config" version = "0.3.0" @@ -2905,7 +2949,7 @@ dependencies = [ [[package]] name = "matrix-sdk" version = "0.6.2" -source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=1dea482e4399aaca5e96611e732ed06c3de2d4a6#1dea482e4399aaca5e96611e732ed06c3de2d4a6" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=4643bae28445e058080896a280083b32fd403146#4643bae28445e058080896a280083b32fd403146" dependencies = [ "anymap2", "async-stream", @@ -2918,12 +2962,13 @@ dependencies = [ "event-listener", "eyeball", "eyeball-im", + "eyeball-im-util", "futures-core", "futures-util", "gloo-timers", "http", "hyper", - "image 0.24.6", + "image 0.24.7", "imbl", "matrix-sdk-base", "matrix-sdk-common", @@ -2931,7 +2976,7 @@ dependencies = [ "matrix-sdk-sqlite", "mime", "mime2ext", - "rand 0.8.5", + "rand", "reqwest", "ruma", "serde", @@ -2949,10 +2994,10 @@ dependencies = [ [[package]] name = "matrix-sdk-base" version = "0.6.1" -source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=1dea482e4399aaca5e96611e732ed06c3de2d4a6#1dea482e4399aaca5e96611e732ed06c3de2d4a6" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=4643bae28445e058080896a280083b32fd403146#4643bae28445e058080896a280083b32fd403146" dependencies = [ "async-trait", - "bitflags 2.3.3", + "bitflags 2.4.0", "dashmap", "eyeball", "futures-util", @@ -2971,7 +3016,7 @@ dependencies = [ [[package]] name = "matrix-sdk-common" version = "0.6.0" -source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=1dea482e4399aaca5e96611e732ed06c3de2d4a6#1dea482e4399aaca5e96611e732ed06c3de2d4a6" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=4643bae28445e058080896a280083b32fd403146#4643bae28445e058080896a280083b32fd403146" dependencies = [ "futures-core", "futures-util", @@ -2987,13 +3032,13 @@ dependencies = [ [[package]] name = "matrix-sdk-crypto" version = "0.6.0" -source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=1dea482e4399aaca5e96611e732ed06c3de2d4a6#1dea482e4399aaca5e96611e732ed06c3de2d4a6" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=4643bae28445e058080896a280083b32fd403146#4643bae28445e058080896a280083b32fd403146" dependencies = [ "aes", "async-std", "async-trait", "atomic", - "base64 0.21.2", + "base64", "byteorder", "cfg-if", "ctr", @@ -3001,17 +3046,18 @@ dependencies = [ "eyeball", "futures-core", "futures-util", + "hkdf", "hmac", "itertools 0.11.0", "matrix-sdk-common", "matrix-sdk-qrcode", "pbkdf2 0.11.0", - "rand 0.8.5", + "rand", "rmp-serde", "ruma", "serde", "serde_json", - "sha2 0.10.7", + "sha2", "thiserror", "tokio", "tokio-stream", @@ -3024,12 +3070,12 @@ dependencies = [ [[package]] name = "matrix-sdk-indexeddb" version = "0.2.0" -source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=1dea482e4399aaca5e96611e732ed06c3de2d4a6#1dea482e4399aaca5e96611e732ed06c3de2d4a6" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=4643bae28445e058080896a280083b32fd403146#4643bae28445e058080896a280083b32fd403146" dependencies = [ "anyhow", "async-trait", - "base64 0.21.2", - "getrandom 0.2.10", + "base64", + "getrandom", "gloo-utils", "indexed_db_futures", "js-sys", @@ -3049,7 +3095,7 @@ dependencies = [ [[package]] name = "matrix-sdk-qrcode" version = "0.4.0" -source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=1dea482e4399aaca5e96611e732ed06c3de2d4a6#1dea482e4399aaca5e96611e732ed06c3de2d4a6" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=4643bae28445e058080896a280083b32fd403146#4643bae28445e058080896a280083b32fd403146" dependencies = [ "byteorder", "qrcode", @@ -3061,7 +3107,7 @@ dependencies = [ [[package]] name = "matrix-sdk-sqlite" version = "0.1.0" -source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=1dea482e4399aaca5e96611e732ed06c3de2d4a6#1dea482e4399aaca5e96611e732ed06c3de2d4a6" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=4643bae28445e058080896a280083b32fd403146#4643bae28445e058080896a280083b32fd403146" dependencies = [ "async-trait", "deadpool-sqlite", @@ -3083,19 +3129,19 @@ dependencies = [ [[package]] name = "matrix-sdk-store-encryption" version = "0.2.0" -source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=1dea482e4399aaca5e96611e732ed06c3de2d4a6#1dea482e4399aaca5e96611e732ed06c3de2d4a6" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=4643bae28445e058080896a280083b32fd403146#4643bae28445e058080896a280083b32fd403146" dependencies = [ "blake3", "chacha20poly1305", "displaydoc", - "getrandom 0.2.10", + "getrandom", "hmac", "pbkdf2 0.11.0", - "rand 0.8.5", + "rand", "rmp-serde", "serde", "serde_json", - "sha2 0.10.7", + "sha2", "thiserror", "zeroize", ] @@ -3103,16 +3149,21 @@ dependencies = [ [[package]] name = "matrix-sdk-ui" version = "0.6.0" -source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=1dea482e4399aaca5e96611e732ed06c3de2d4a6#1dea482e4399aaca5e96611e732ed06c3de2d4a6" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=4643bae28445e058080896a280083b32fd403146#4643bae28445e058080896a280083b32fd403146" dependencies = [ "async-once-cell", + "async-rx", "async-std", + "async-stream", "async-trait", + "async_cell", "chrono", "eyeball", "eyeball-im", + "eyeball-im-util", "futures-core", "futures-util", + "fuzzy-matcher", "imbl", "indexmap 2.0.0", "itertools 0.11.0", @@ -3128,6 +3179,7 @@ dependencies = [ "thiserror", "tokio", "tracing", + "unicode-normalization", ] [[package]] @@ -3215,7 +3267,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" dependencies = [ - "getrandom 0.2.10", + "getrandom", ] [[package]] @@ -3313,7 +3365,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand 0.8.5", + "rand", "serde", "smallvec", "zeroize", @@ -3374,9 +3426,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" dependencies = [ "autocfg", ] @@ -3445,7 +3497,7 @@ dependencies = [ "byteorder", "cbc", "cipher 0.4.4", - "digest 0.10.7", + "digest", "dirs", "futures-util", "hkdf", @@ -3454,9 +3506,9 @@ dependencies = [ "num-bigint-dig", "once_cell", "pbkdf2 0.12.2", - "rand 0.8.5", + "rand", "serde", - "sha2 0.10.7", + "sha2", "tokio", "tracing", "zbus", @@ -3471,9 +3523,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.55" +version = "0.10.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" +checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e" dependencies = [ "bitflags 1.3.2", "cfg-if", @@ -3492,7 +3544,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] @@ -3503,9 +3555,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.90" +version = "0.9.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" +checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac" dependencies = [ "cc", "libc", @@ -3606,15 +3658,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" dependencies = [ "base64ct", - "rand_core 0.6.4", + "rand_core", "subtle", ] [[package]] name = "paste" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b27ab7be369122c218afc2079489cdcb4b517c0a3fc386ff11e1fedfcc2b35" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pbkdf2" @@ -3622,10 +3674,10 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.7", + "digest", "hmac", "password-hash", - "sha2 0.10.7", + "sha2", ] [[package]] @@ -3634,7 +3686,7 @@ version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "digest 0.10.7", + "digest", "hmac", ] @@ -3686,7 +3738,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" dependencies = [ "phf_shared 0.10.0", - "rand 0.8.5", + "rand", ] [[package]] @@ -3696,7 +3748,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" dependencies = [ "phf_shared 0.11.2", - "rand 0.8.5", + "rand", ] [[package]] @@ -3709,7 +3761,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] @@ -3732,29 +3784,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" [[package]] name = "pin-utils" @@ -3793,9 +3845,20 @@ dependencies = [ [[package]] name = "pkcs7" -version = "0.3.0" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d79178be066405e0602bf3035946edef6b11b3f9dde46dfe5f8bfd7dea4b77e7" +dependencies = [ + "der", + "spki", + "x509-cert", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f7364e6d0e236473de91e042395d71e0e64715f99a60620b014a4a4c7d1619b" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ "der", "spki", @@ -3807,6 +3870,12 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +[[package]] +name = "platforms" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" + [[package]] name = "png" version = "0.17.9" @@ -3901,9 +3970,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.64" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] @@ -3964,26 +4033,13 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.29" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" +checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -3991,18 +4047,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha", + "rand_core", ] [[package]] @@ -4012,16 +4058,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", + "rand_core", ] [[package]] @@ -4030,16 +4067,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", + "getrandom", ] [[package]] @@ -4048,7 +4076,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" dependencies = [ - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -4103,16 +4131,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.10", + "getrandom", "redox_syscall 0.2.16", "thiserror", ] [[package]] name = "regex" -version = "1.9.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" dependencies = [ "aho-corasick", "memchr", @@ -4122,9 +4150,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" dependencies = [ "aho-corasick", "memchr", @@ -4143,7 +4171,8 @@ version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ - "base64 0.21.2", + "async-compression", + "base64", "bytes", "encoding_rs", "futures-core", @@ -4185,9 +4214,9 @@ checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" [[package]] name = "rmp" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" dependencies = [ "byteorder", "num-traits", @@ -4196,9 +4225,9 @@ dependencies = [ [[package]] name = "rmp-serde" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b13be192e0220b8afb7222aa5813cb62cc269ebb5cac346ca6487681d2913e" +checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" dependencies = [ "byteorder", "rmp", @@ -4212,14 +4241,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a8b87d1f9f69bb1a6c77e20fd303f9617b2b68dcff87cd9bcbfff2ced4b8a0b" dependencies = [ "g2p", - "image 0.24.6", + "image 0.24.7", "lru", ] [[package]] name = "ruma" version = "0.8.2" -source = "git+https://github.com/ruma/ruma.git?rev=a641adb4287267ba9c4778ac1ee83b4ecab11e26#a641adb4287267ba9c4778ac1ee83b4ecab11e26" +source = "git+https://github.com/ruma/ruma.git?rev=f1772ae5bc1d849655498f51b0fec7b0ef10e339#f1772ae5bc1d849655498f51b0fec7b0ef10e339" dependencies = [ "assign", "js_int", @@ -4233,7 +4262,7 @@ dependencies = [ [[package]] name = "ruma-client-api" version = "0.16.2" -source = "git+https://github.com/ruma/ruma.git?rev=a641adb4287267ba9c4778ac1ee83b4ecab11e26#a641adb4287267ba9c4778ac1ee83b4ecab11e26" +source = "git+https://github.com/ruma/ruma.git?rev=f1772ae5bc1d849655498f51b0fec7b0ef10e339#f1772ae5bc1d849655498f51b0fec7b0ef10e339" dependencies = [ "assign", "bytes", @@ -4250,12 +4279,12 @@ dependencies = [ [[package]] name = "ruma-common" version = "0.11.3" -source = "git+https://github.com/ruma/ruma.git?rev=a641adb4287267ba9c4778ac1ee83b4ecab11e26#a641adb4287267ba9c4778ac1ee83b4ecab11e26" +source = "git+https://github.com/ruma/ruma.git?rev=f1772ae5bc1d849655498f51b0fec7b0ef10e339#f1772ae5bc1d849655498f51b0fec7b0ef10e339" dependencies = [ - "base64 0.21.2", + "base64", "bytes", "form_urlencoded", - "getrandom 0.2.10", + "getrandom", "html5ever", "http", "indexmap 2.0.0", @@ -4266,7 +4295,7 @@ dependencies = [ "percent-encoding", "phf 0.11.2", "pulldown-cmark", - "rand 0.8.5", + "rand", "regex", "ruma-identifiers-validation", "ruma-macros", @@ -4283,7 +4312,7 @@ dependencies = [ [[package]] name = "ruma-federation-api" version = "0.7.1" -source = "git+https://github.com/ruma/ruma.git?rev=a641adb4287267ba9c4778ac1ee83b4ecab11e26#a641adb4287267ba9c4778ac1ee83b4ecab11e26" +source = "git+https://github.com/ruma/ruma.git?rev=f1772ae5bc1d849655498f51b0fec7b0ef10e339#f1772ae5bc1d849655498f51b0fec7b0ef10e339" dependencies = [ "js_int", "ruma-common", @@ -4294,7 +4323,7 @@ dependencies = [ [[package]] name = "ruma-identifiers-validation" version = "0.9.1" -source = "git+https://github.com/ruma/ruma.git?rev=a641adb4287267ba9c4778ac1ee83b4ecab11e26#a641adb4287267ba9c4778ac1ee83b4ecab11e26" +source = "git+https://github.com/ruma/ruma.git?rev=f1772ae5bc1d849655498f51b0fec7b0ef10e339#f1772ae5bc1d849655498f51b0fec7b0ef10e339" dependencies = [ "js_int", "thiserror", @@ -4303,7 +4332,7 @@ dependencies = [ [[package]] name = "ruma-macros" version = "0.11.3" -source = "git+https://github.com/ruma/ruma.git?rev=a641adb4287267ba9c4778ac1ee83b4ecab11e26#a641adb4287267ba9c4778ac1ee83b4ecab11e26" +source = "git+https://github.com/ruma/ruma.git?rev=f1772ae5bc1d849655498f51b0fec7b0ef10e339#f1772ae5bc1d849655498f51b0fec7b0ef10e339" dependencies = [ "once_cell", "proc-macro-crate", @@ -4311,14 +4340,14 @@ dependencies = [ "quote", "ruma-identifiers-validation", "serde", - "syn 2.0.25", + "syn 2.0.28", "toml", ] [[package]] name = "ruma-push-gateway-api" version = "0.7.1" -source = "git+https://github.com/ruma/ruma.git?rev=a641adb4287267ba9c4778ac1ee83b4ecab11e26#a641adb4287267ba9c4778ac1ee83b4ecab11e26" +source = "git+https://github.com/ruma/ruma.git?rev=f1772ae5bc1d849655498f51b0fec7b0ef10e339#f1772ae5bc1d849655498f51b0fec7b0ef10e339" dependencies = [ "js_int", "ruma-common", @@ -4371,21 +4400,34 @@ dependencies = [ "errno", "io-lifetimes", "libc", - "linux-raw-sys", + "linux-raw-sys 0.3.8", + "windows-sys", +] + +[[package]] +name = "rustix" +version = "0.38.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" +dependencies = [ + "bitflags 2.4.0", + "errno", + "libc", + "linux-raw-sys 0.4.5", "windows-sys", ] [[package]] name = "rustversion" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "schannel" @@ -4398,9 +4440,9 @@ dependencies = [ [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "secular" @@ -4413,9 +4455,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -4426,9 +4468,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ "core-foundation-sys", "libc", @@ -4436,44 +4478,44 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" [[package]] name = "serde" -version = "1.0.171" +version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" +checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.11" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a16be4fe5320ade08736447e3198294a5ea9a6d44dde6f35f0a5e06859c427a" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.171" +version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" +checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] name = "serde_html_form" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7d9b8af723e4199801a643c622daa7aae8cf4a772dc2b3efcb3a95add6cb91a" +checksum = "cde65b75f2603066b78d6fa239b2c07b43e06ead09435f60554d3912962b4a3c" dependencies = [ "form_urlencoded", "indexmap 2.0.0", @@ -4484,9 +4526,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.102" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5062a995d481b2308b6064e9af76011f2921c35f97b0468811ed9f6cd91dfed" +checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" dependencies = [ "itoa", "ryu", @@ -4495,13 +4537,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d89a8107374290037607734c0b73a85db7ed80cae314b3c5791f192a496e731" +checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] @@ -4533,20 +4575,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", + "digest", ] [[package]] @@ -4557,7 +4586,7 @@ checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -4577,9 +4606,9 @@ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "signal-hook" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" dependencies = [ "libc", "signal-hook-registry", @@ -4596,15 +4625,15 @@ dependencies = [ [[package]] name = "signature" -version = "1.6.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" [[package]] name = "simd-adler32" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "siphasher" @@ -4637,6 +4666,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "sourceview5" version = "0.6.1" @@ -4690,10 +4729,11 @@ dependencies = [ [[package]] name = "spki" -version = "0.5.4" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" dependencies = [ + "base64ct", "der", ] @@ -4776,9 +4816,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.25" +version = "2.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e3fc8c0c74267e2df136e5e5fb656a464158aa57624053375eb9c8c6e25ae2" +checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" dependencies = [ "proc-macro2", "quote", @@ -4800,9 +4840,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.9" +version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8e77cb757a61f51b947ec4a7e3646efd825b73561db1c232a8ccb639e611a0" +checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "temp-dir" @@ -4812,15 +4852,14 @@ checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab" [[package]] name = "tempfile" -version = "3.6.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651" dependencies = [ - "autocfg", "cfg-if", - "fastrand", + "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix", + "rustix 0.38.8", "windows-sys", ] @@ -4837,22 +4876,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.43" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.43" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] @@ -4867,9 +4906,9 @@ dependencies = [ [[package]] name = "tiff" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" dependencies = [ "flate2", "jpeg-decoder", @@ -4904,11 +4943,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "2d3ce25f50619af8b0aec2eb23deebe84249e19e2ddd393a6e16e3300a6dadfd" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -4916,7 +4954,7 @@ dependencies = [ "num_cpus", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.3", "tokio-macros", "tracing", "windows-sys", @@ -4930,7 +4968,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] @@ -5004,9 +5042,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.19.13" +version = "0.19.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f8751d9c1b03c6500c387e96f81f815a4f8e72d142d2d4a9ffa6fedd51ddee7" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" dependencies = [ "indexmap 2.0.0", "serde", @@ -5062,7 +5100,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] @@ -5114,9 +5152,9 @@ checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "typewit" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4061a10d4d8f3081a8ccc025182afd8434302d8d4b4503ec6d8510d09df08c2d" +checksum = "3e5cee357cc77d1e02f10a3e6c4e13b8462fafab05998b62d331b7d9485589ff" [[package]] name = "uds_windows" @@ -5134,7 +5172,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13a3aaa69b04e5b66cc27309710a569ea23593612387d67daaf102e73aa974fd" dependencies = [ - "rand 0.8.5", + "rand", ] [[package]] @@ -5154,9 +5192,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unicode-normalization" @@ -5209,11 +5247,11 @@ checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1" [[package]] name = "uuid" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d023da39d1fde5a8a3fe1f3e01ca9632ada0a63e9797de55a879d6e2236277be" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" dependencies = [ - "getrandom 0.2.10", + "getrandom", "wasm-bindgen", ] @@ -5250,23 +5288,25 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "vodozemac" version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d1b4c112e19e1f9361e34c7a40d30bd7f1de0fec43b83f2f8383d6eee9f561" +source = "git+https://github.com/matrix-org/vodozemac/?rev=e3b658526f6f1dd0a9065c1c96346b796712c425#e3b658526f6f1dd0a9065c1c96346b796712c425" dependencies = [ "aes", "arrayvec", - "base64 0.13.1", + "base64", "cbc", + "curve25519-dalek", "ed25519-dalek", + "getrandom", "hkdf", "hmac", "matrix-pickle", "pkcs7", "prost", - "rand 0.7.3", + "rand", "serde", + "serde_bytes", "serde_json", - "sha2 0.10.7", + "sha2", "subtle", "thiserror", "x25519-dalek", @@ -5288,12 +5328,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.10.0+wasi-snapshot-preview1" @@ -5327,7 +5361,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", "wasm-bindgen-shared", ] @@ -5361,7 +5395,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5506,9 +5540,9 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winnow" -version = "0.5.0" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7" +checksum = "5504cc7644f4b593cbc05c4a55bf9bd4e94b867c3c0bd440934174d50482427d" dependencies = [ "memchr", ] @@ -5524,15 +5558,26 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "1.2.0" -source = "git+https://github.com/A6GibKm/x25519-dalek?rev=9f19028c34107eea87d37bcee2eb2b350ec34cfe#9f19028c34107eea87d37bcee2eb2b350ec34cfe" +version = "2.0.0-rc.3" +source = "git+https://github.com/dalek-cryptography/curve25519-dalek/?rev=e44d4b5903106dde0e5b28a2580061de7dfe8a9f#e44d4b5903106dde0e5b28a2580061de7dfe8a9f" dependencies = [ "curve25519-dalek", - "rand_core 0.5.1", + "rand_core", "serde", "zeroize", ] +[[package]] +name = "x509-cert" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25eefca1d99701da3a57feb07e5079fc62abba059fc139e98c13bbb250f3ef29" +dependencies = [ + "const-oid", + "der", + "spki", +] + [[package]] name = "xdg-home" version = "1.0.0" @@ -5575,7 +5620,7 @@ dependencies = [ "nix", "once_cell", "ordered-stream", - "rand 0.8.5", + "rand", "serde", "serde_repr", "sha1", @@ -5632,7 +5677,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.28", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 6e5cfee7..ea0134ae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,10 +26,10 @@ ashpd = { version = "0.4", default-features = false, features = [ "tracing", "tokio", ] } -async-stream = "0.3" djb_hash = "0.1" eyeball-im = "0.2" -futures = "0.3" +futures-channel = "0.3" +futures-util = "0.3" geo-uri = "0.2" gettext-rs = { version = "0.7", features = ["gettext-system"] } gst = { version = "0.20", package = "gstreamer" } @@ -78,7 +78,7 @@ features = ["v4_10"] [dependencies.matrix-sdk] git = "https://github.com/matrix-org/matrix-rust-sdk.git" -rev = "1dea482e4399aaca5e96611e732ed06c3de2d4a6" +rev = "4643bae28445e058080896a280083b32fd403146" features = [ "socks", "sso-login", @@ -89,14 +89,14 @@ features = [ [dependencies.matrix-sdk-ui] git = "https://github.com/matrix-org/matrix-rust-sdk.git" -rev = "1dea482e4399aaca5e96611e732ed06c3de2d4a6" +rev = "4643bae28445e058080896a280083b32fd403146" default-features = false features = ["e2e-encryption", "native-tls"] [dependencies.ruma] # version = "0.8.2" git = "https://github.com/ruma/ruma.git" -rev = "a641adb4287267ba9c4778ac1ee83b4ecab11e26" +rev = "f1772ae5bc1d849655498f51b0fec7b0ef10e339" features = [ "unstable-unspecified", "client-api-c", @@ -117,8 +117,3 @@ version = "0.3" [dependencies.sourceview] package = "sourceview5" version = "0.6" - -# FIXME: Remove when matrix-sdk dependencies don't pin zeroize (conflict with oo7) -[patch.crates-io.x25519-dalek] -git = "https://github.com/A6GibKm/x25519-dalek" -rev = "9f19028c34107eea87d37bcee2eb2b350ec34cfe" diff --git a/src/components/auth_dialog.rs b/src/components/auth_dialog.rs index a66d8880..19706da0 100644 --- a/src/components/auth_dialog.rs +++ b/src/components/auth_dialog.rs @@ -308,7 +308,7 @@ impl AuthDialog { /// Lets the user complete the current stage. async fn show_and_wait_for_response(&self) -> Result<(), AuthError> { - let (sender, receiver) = futures::channel::oneshot::channel(); + let (sender, receiver) = futures_channel::oneshot::channel(); let sender = Cell::new(Some(sender)); let handler_id = self.connect_response(move |_, response| { diff --git a/src/contrib/qr_code_scanner/camera_paintable.rs b/src/contrib/qr_code_scanner/camera_paintable.rs index 445005b2..2185d42a 100644 --- a/src/contrib/qr_code_scanner/camera_paintable.rs +++ b/src/contrib/qr_code_scanner/camera_paintable.rs @@ -207,7 +207,7 @@ impl CameraPaintable { let paintable = sink.property::("paintable"); // Workaround: we wait for the first frame so that we don't show a black frame - let (sender, receiver) = futures::channel::oneshot::channel(); + let (sender, receiver) = futures_channel::oneshot::channel(); let sender = Cell::new(Some(sender)); paintable.connect_invalidate_contents(move |_| { diff --git a/src/login/advanced_dialog.rs b/src/login/advanced_dialog.rs index e39f405f..862d4d9f 100644 --- a/src/login/advanced_dialog.rs +++ b/src/login/advanced_dialog.rs @@ -96,7 +96,7 @@ impl LoginAdvancedDialog { } pub async fn run_future(&self) { - let (sender, receiver) = futures::channel::oneshot::channel(); + let (sender, receiver) = futures_channel::oneshot::channel(); let sender = Cell::new(Some(sender)); self.connect_close_request(move |_| { diff --git a/src/session/model/room/mod.rs b/src/session/model/room/mod.rs index ab269d26..47e94d9d 100644 --- a/src/session/model/room/mod.rs +++ b/src/session/model/room/mod.rs @@ -368,12 +368,7 @@ impl Room { let matrix_room = self.matrix_room(); - let handle = spawn_tokio!(async move { - match matrix_room { - MatrixRoom::Left(room) => room.forget().await, - _ => unimplemented!(), - } - }); + let handle = spawn_tokio!(async move { matrix_room.forget().await }); match handle.await.unwrap() { Ok(_) => { @@ -453,170 +448,182 @@ impl Room { self.set_category_internal(category); let handle = spawn_tokio!(async move { - match matrix_room { - MatrixRoom::Invited(room) => match category { + match matrix_room.state() { + RoomState::Invited => match category { RoomType::Invited => {} RoomType::Favorite => { - if let Some(tags) = room.tags().await? { + if let Some(tags) = matrix_room.tags().await? { if !tags.contains_key(&TagName::Favorite) { - room.set_tag(TagName::Favorite, TagInfo::new()).await?; + matrix_room + .set_tag(TagName::Favorite, TagInfo::new()) + .await?; } if tags.contains_key(&TagName::LowPriority) { - room.remove_tag(TagName::LowPriority).await?; + matrix_room.remove_tag(TagName::LowPriority).await?; } } - room.accept_invitation().await?; + matrix_room.join().await?; } RoomType::Normal => { - if let Some(tags) = room.tags().await? { + if let Some(tags) = matrix_room.tags().await? { if tags.contains_key(&TagName::Favorite) { - room.remove_tag(TagName::Favorite).await?; + matrix_room.remove_tag(TagName::Favorite).await?; } if tags.contains_key(&TagName::LowPriority) { - room.remove_tag(TagName::LowPriority).await?; + matrix_room.remove_tag(TagName::LowPriority).await?; } } - if room.is_direct().await.unwrap_or_default() { - room.set_is_direct(false).await?; + if matrix_room.is_direct().await.unwrap_or_default() { + matrix_room.set_is_direct(false).await?; } - room.accept_invitation().await?; + matrix_room.join().await?; } RoomType::LowPriority => { - if let Some(tags) = room.tags().await? { + if let Some(tags) = matrix_room.tags().await? { if tags.contains_key(&TagName::Favorite) { - room.remove_tag(TagName::Favorite).await?; + matrix_room.remove_tag(TagName::Favorite).await?; } if !tags.contains_key(&TagName::LowPriority) { - room.set_tag(TagName::LowPriority, TagInfo::new()).await?; + matrix_room + .set_tag(TagName::LowPriority, TagInfo::new()) + .await?; } } - room.accept_invitation().await?; + matrix_room.join().await?; } RoomType::Left => { - room.reject_invitation().await?; + matrix_room.leave().await?; } RoomType::Outdated => unimplemented!(), RoomType::Space => unimplemented!(), RoomType::Direct => { - if !room.is_direct().await.unwrap_or_default() { - room.set_is_direct(true).await?; + if !matrix_room.is_direct().await.unwrap_or_default() { + matrix_room.set_is_direct(true).await?; } - if let Some(tags) = room.tags().await? { + if let Some(tags) = matrix_room.tags().await? { if tags.contains_key(&TagName::Favorite) { - room.remove_tag(TagName::Favorite).await?; + matrix_room.remove_tag(TagName::Favorite).await?; } if tags.contains_key(&TagName::LowPriority) { - room.remove_tag(TagName::LowPriority).await?; + matrix_room.remove_tag(TagName::LowPriority).await?; } } - room.accept_invitation().await?; + matrix_room.join().await?; } }, - MatrixRoom::Joined(room) => match category { + RoomState::Joined => match category { RoomType::Invited => {} RoomType::Favorite => { - room.set_tag(TagName::Favorite, TagInfo::new()).await?; + matrix_room + .set_tag(TagName::Favorite, TagInfo::new()) + .await?; if previous_category == RoomType::LowPriority { - room.remove_tag(TagName::LowPriority).await?; + matrix_room.remove_tag(TagName::LowPriority).await?; } } RoomType::Normal => { - if room.is_direct().await.unwrap_or_default() { - room.set_is_direct(false).await?; + if matrix_room.is_direct().await.unwrap_or_default() { + matrix_room.set_is_direct(false).await?; } match previous_category { RoomType::Favorite => { - room.remove_tag(TagName::Favorite).await?; + matrix_room.remove_tag(TagName::Favorite).await?; } RoomType::LowPriority => { - room.remove_tag(TagName::LowPriority).await?; + matrix_room.remove_tag(TagName::LowPriority).await?; } _ => {} } } RoomType::LowPriority => { - room.set_tag(TagName::LowPriority, TagInfo::new()).await?; + matrix_room + .set_tag(TagName::LowPriority, TagInfo::new()) + .await?; if previous_category == RoomType::Favorite { - room.remove_tag(TagName::Favorite).await?; + matrix_room.remove_tag(TagName::Favorite).await?; } } RoomType::Left => { - room.leave().await?; + matrix_room.leave().await?; } RoomType::Outdated => unimplemented!(), RoomType::Space => unimplemented!(), RoomType::Direct => { - if !room.is_direct().await.unwrap_or_default() { - room.set_is_direct(true).await?; + if !matrix_room.is_direct().await.unwrap_or_default() { + matrix_room.set_is_direct(true).await?; } - if let Some(tags) = room.tags().await? { + if let Some(tags) = matrix_room.tags().await? { if tags.contains_key(&TagName::LowPriority) { - room.remove_tag(TagName::LowPriority).await?; + matrix_room.remove_tag(TagName::LowPriority).await?; } if tags.contains_key(&TagName::Favorite) { - room.remove_tag(TagName::Favorite).await?; + matrix_room.remove_tag(TagName::Favorite).await?; } } } }, - MatrixRoom::Left(room) => match category { + RoomState::Left => match category { RoomType::Invited => {} RoomType::Favorite => { - if let Some(tags) = room.tags().await? { + if let Some(tags) = matrix_room.tags().await? { if !tags.contains_key(&TagName::Favorite) { - room.set_tag(TagName::Favorite, TagInfo::new()).await?; + matrix_room + .set_tag(TagName::Favorite, TagInfo::new()) + .await?; } if tags.contains_key(&TagName::LowPriority) { - room.remove_tag(TagName::LowPriority).await?; + matrix_room.remove_tag(TagName::LowPriority).await?; } } - room.join().await?; + matrix_room.join().await?; } RoomType::Normal => { - if let Some(tags) = room.tags().await? { + if let Some(tags) = matrix_room.tags().await? { if tags.contains_key(&TagName::Favorite) { - room.remove_tag(TagName::Favorite).await?; + matrix_room.remove_tag(TagName::Favorite).await?; } if tags.contains_key(&TagName::LowPriority) { - room.remove_tag(TagName::LowPriority).await?; + matrix_room.remove_tag(TagName::LowPriority).await?; } } - room.join().await?; + matrix_room.join().await?; } RoomType::LowPriority => { - if let Some(tags) = room.tags().await? { + if let Some(tags) = matrix_room.tags().await? { if tags.contains_key(&TagName::Favorite) { - room.remove_tag(TagName::Favorite).await?; + matrix_room.remove_tag(TagName::Favorite).await?; } if !tags.contains_key(&TagName::LowPriority) { - room.set_tag(TagName::LowPriority, TagInfo::new()).await?; + matrix_room + .set_tag(TagName::LowPriority, TagInfo::new()) + .await?; } } - room.join().await?; + matrix_room.join().await?; } RoomType::Left => {} RoomType::Outdated => unimplemented!(), RoomType::Space => unimplemented!(), RoomType::Direct => { - if !room.is_direct().await.unwrap_or_default() { - room.set_is_direct(true).await?; + if !matrix_room.is_direct().await.unwrap_or_default() { + matrix_room.set_is_direct(true).await?; } - if let Some(tags) = room.tags().await? { + if let Some(tags) = matrix_room.tags().await? { if tags.contains_key(&TagName::LowPriority) { - room.remove_tag(TagName::LowPriority).await?; + matrix_room.remove_tag(TagName::LowPriority).await?; } if tags.contains_key(&TagName::Favorite) { - room.remove_tag(TagName::Favorite).await?; + matrix_room.remove_tag(TagName::Favorite).await?; } } - room.join().await?; + matrix_room.join().await?; } }, } @@ -645,8 +652,8 @@ impl Room { let matrix_room = self.matrix_room(); - match matrix_room { - MatrixRoom::Joined(_) => { + match matrix_room.state() { + RoomState::Joined => { if matrix_room.is_space() { self.set_category_internal(RoomType::Space); } else { @@ -678,8 +685,8 @@ impl Room { ); } } - MatrixRoom::Invited(_) => self.set_category_internal(RoomType::Invited), - MatrixRoom::Left(_) => self.set_category_internal(RoomType::Left), + RoomState::Invited => self.set_category_internal(RoomType::Invited), + RoomState::Left => self.set_category_internal(RoomType::Left), }; } @@ -688,7 +695,8 @@ impl Room { } fn setup_typing(&self) { - let MatrixRoom::Joined(matrix_room) = self.matrix_room() else { + let matrix_room = self.matrix_room(); + if matrix_room.state() != RoomState::Joined { return; }; @@ -1258,7 +1266,8 @@ impl Room { /// Redact `redacted_event_id` in this room because of `reason`. pub fn redact(&self, redacted_event_id: OwnedEventId, reason: Option) { - let MatrixRoom::Joined(matrix_room) = self.matrix_room() else { + let matrix_room = self.matrix_room(); + if matrix_room.state() != RoomState::Joined { return; }; @@ -1281,7 +1290,8 @@ impl Room { } pub fn send_typing_notification(&self, is_typing: bool) { - let MatrixRoom::Joined(matrix_room) = self.matrix_room() else { + let matrix_room = self.matrix_room(); + if matrix_room.state() != RoomState::Joined { return; }; @@ -1313,12 +1323,12 @@ impl Room { pub async fn accept_invite(&self) -> MatrixResult<()> { let matrix_room = self.matrix_room(); - let MatrixRoom::Invited(matrix_room) = matrix_room else { + if matrix_room.state() != RoomState::Invited { error!("Can’t accept invite, because this room isn’t an invited room"); return Ok(()); - }; + } - let handle = spawn_tokio!(async move { matrix_room.accept_invitation().await }); + let handle = spawn_tokio!(async move { matrix_room.join().await }); match handle.await.unwrap() { Ok(_) => Ok(()), Err(error) => { @@ -1331,12 +1341,12 @@ impl Room { pub async fn reject_invite(&self) -> MatrixResult<()> { let matrix_room = self.matrix_room(); - let MatrixRoom::Invited(matrix_room) = matrix_room else { + if matrix_room.state() != RoomState::Invited { error!("Can’t reject invite, because this room isn’t an invited room"); return Ok(()); - }; + } - let handle = spawn_tokio!(async move { matrix_room.reject_invitation().await }); + let handle = spawn_tokio!(async move { matrix_room.leave().await }); match handle.await.unwrap() { Ok(_) => Ok(()), Err(error) => { @@ -1500,7 +1510,8 @@ impl Room { body: &str, info: AttachmentInfo, ) { - let MatrixRoom::Joined(matrix_room) = self.matrix_room() else { + let matrix_room = self.matrix_room(); + if matrix_room.state() != RoomState::Joined { return; }; @@ -1544,17 +1555,18 @@ impl Room { /// Returns `Ok(())` if all the invites are sent successfully, otherwise /// returns the list of users who could not be invited. pub async fn invite<'a>(&self, users: &'a [User]) -> Result<(), Vec<&'a User>> { - let MatrixRoom::Joined(matrix_room) = self.matrix_room() else { + let matrix_room = self.matrix_room(); + if matrix_room.state() != RoomState::Joined { error!("Can’t invite users, because this room isn’t a joined room"); return Ok(()); - }; + } let user_ids: Vec = users.iter().map(|user| user.user_id()).collect(); let handle = spawn_tokio!(async move { let invitations = user_ids .iter() .map(|user_id| matrix_room.invite_user_by_id(user_id)); - futures::future::join_all(invitations).await + futures_util::future::join_all(invitations).await }); let mut failed_invites = Vec::new(); diff --git a/src/session/model/room/timeline/mod.rs b/src/session/model/room/timeline/mod.rs index 8e211937..edbf062f 100644 --- a/src/session/model/room/timeline/mod.rs +++ b/src/session/model/room/timeline/mod.rs @@ -4,7 +4,7 @@ mod virtual_item; use std::{collections::HashMap, sync::Arc}; use eyeball_im::VectorDiff; -use futures::StreamExt; +use futures_util::StreamExt; use gtk::{gio, glib, glib::clone, prelude::*, subclass::prelude::*}; use log::{error, warn}; use matrix_sdk::Error as MatrixError; @@ -515,7 +515,7 @@ impl Timeline { self.imp().timeline.set(matrix_timeline.clone()).unwrap(); - let (mut sender, mut receiver) = futures::channel::mpsc::channel(100); + let (mut sender, mut receiver) = futures_channel::mpsc::channel(100); let (values, timeline_stream) = matrix_timeline.subscribe().await; if !values.is_empty() { @@ -548,7 +548,7 @@ impl Timeline { let room_id = self.room().room_id().to_owned(); let matrix_timeline = self.matrix_timeline(); - let (mut sender, mut receiver) = futures::channel::mpsc::channel(8); + let (mut sender, mut receiver) = futures_channel::mpsc::channel(8); let stream = matrix_timeline.back_pagination_status(); let fut = stream.for_each(move |status| { diff --git a/src/session/model/room_list.rs b/src/session/model/room_list.rs index 79812670..f9f1847f 100644 --- a/src/session/model/room_list.rs +++ b/src/session/model/room_list.rs @@ -161,7 +161,7 @@ impl RoomList { if let Some(room) = self.get(room_id) { Some(room) } else { - let (sender, receiver) = futures::channel::oneshot::channel(); + let (sender, receiver) = futures_channel::oneshot::channel(); let room_id = room_id.to_owned(); let sender = Cell::new(Some(sender)); diff --git a/src/session/model/session.rs b/src/session/model/session.rs index c99b9117..c706410d 100644 --- a/src/session/model/session.rs +++ b/src/session/model/session.rs @@ -1,7 +1,7 @@ use std::{collections::HashSet, time::Duration}; use adw::{prelude::*, subclass::prelude::*}; -use futures::StreamExt; +use futures_util::StreamExt; use gettextrs::gettext; use gtk::{ self, gio, glib, diff --git a/src/session/view/content/room_details/general_page/mod.rs b/src/session/view/content/room_details/general_page/mod.rs index 640d807c..5d837aac 100644 --- a/src/session/view/content/room_details/general_page/mod.rs +++ b/src/session/view/content/room_details/general_page/mod.rs @@ -8,7 +8,7 @@ use gtk::{ CompositeTemplate, }; use log::error; -use matrix_sdk::room::Room as MatrixRoom; +use matrix_sdk::RoomState; use ruma::{ assign, events::{ @@ -238,10 +238,11 @@ impl GeneralPage { async fn change_avatar(&self, file: gio::File) { let room = self.room(); - let MatrixRoom::Joined(matrix_room) = room.matrix_room() else { + let matrix_room = room.matrix_room(); + if matrix_room.state() != RoomState::Joined { error!("Cannot change avatar of room not joined"); return; - }; + } let imp = self.imp(); let avatar = &imp.avatar; @@ -300,10 +301,11 @@ impl GeneralPage { async fn remove_avatar(&self) { let room = self.room(); - let MatrixRoom::Joined(matrix_room) = room.matrix_room() else { + let matrix_room = room.matrix_room(); + if matrix_room.state() != RoomState::Joined { error!("Cannot remove avatar of room not joined"); return; - }; + } let imp = self.imp(); let avatar = &*imp.avatar; @@ -488,10 +490,11 @@ impl GeneralPage { return; } - let MatrixRoom::Joined(matrix_room) = room.matrix_room() else { + let matrix_room = room.matrix_room(); + if matrix_room.state() != RoomState::Joined { error!("Cannot change name or topic of room not joined"); return; - }; + } if name_changed { let matrix_room = matrix_room.clone(); diff --git a/src/session/view/content/room_details/history_viewer/timeline.rs b/src/session/view/content/room_details/history_viewer/timeline.rs index 0f3dc6fa..c4a40bdf 100644 --- a/src/session/view/content/room_details/history_viewer/timeline.rs +++ b/src/session/view/content/room_details/history_viewer/timeline.rs @@ -31,7 +31,7 @@ mod imp { sync::Arc, }; - use futures::lock::Mutex; + use futures_util::lock::Mutex; use once_cell::{sync::Lazy, unsync::OnceCell}; use super::*; diff --git a/src/session/view/content/room_details/invite_subpage/invitee_list.rs b/src/session/view/content/room_details/invite_subpage/invitee_list.rs index ae95ab7c..433d0d82 100644 --- a/src/session/view/content/room_details/invite_subpage/invitee_list.rs +++ b/src/session/view/content/room_details/invite_subpage/invitee_list.rs @@ -34,7 +34,7 @@ mod imp { collections::HashMap, }; - use futures::future::AbortHandle; + use futures_util::future::AbortHandle; use glib::subclass::Signal; use once_cell::{sync::Lazy, unsync::OnceCell}; @@ -330,7 +330,7 @@ impl InviteeList { client.send(request, None).await }); - let (future, handle) = futures::future::abortable(handle); + let (future, handle) = futures_util::future::abortable(handle); if let Some(abort_handle) = self.imp().abort_handle.replace(Some(handle)) { abort_handle.abort(); diff --git a/src/session/view/content/room_history/attachment_dialog.rs b/src/session/view/content/room_history/attachment_dialog.rs index 4e8d36d1..622fcc15 100644 --- a/src/session/view/content/room_history/attachment_dialog.rs +++ b/src/session/view/content/room_history/attachment_dialog.rs @@ -97,7 +97,7 @@ impl AttachmentDialog { /// Returns `gtk::ResponseType::Ok` if the user clicked on send, otherwise /// returns `gtk::ResponseType::Cancel`. pub async fn run_future(&self) -> gtk::ResponseType { - let (sender, receiver) = futures::channel::oneshot::channel(); + let (sender, receiver) = futures_channel::oneshot::channel(); let sender = Cell::new(Some(sender)); let handler_id = self.connect_close_request( diff --git a/src/session/view/content/room_history/message_row/content.rs b/src/session/view/content/room_history/message_row/content.rs index 788e4475..8cd2dc09 100644 --- a/src/session/view/content/room_history/message_row/content.rs +++ b/src/session/view/content/room_history/message_row/content.rs @@ -140,7 +140,7 @@ impl MessageContent { reply.set_related_content_sender(sender.upcast_ref()); build_content( reply.related_content(), - TimelineItemContent::Message(related_content.message().clone()), + related_content.content().clone(), ContentFormat::Compact, sender, &room, diff --git a/src/session/view/content/room_history/mod.rs b/src/session/view/content/room_history/mod.rs index b8f3e743..df97730a 100644 --- a/src/session/view/content/room_history/mod.rs +++ b/src/session/view/content/room_history/mod.rs @@ -16,7 +16,7 @@ use ashpd::{ desktop::location::{Accuracy, LocationProxy}, WindowIdentifier, }; -use futures::TryFutureExt; +use futures_util::TryFutureExt; use geo_uri::GeoUri; use gettextrs::gettext; use gtk::{ @@ -1036,7 +1036,7 @@ impl RoomHistory { // We want to be listening for new locations whenever the session is up // otherwise we might lose the first response and will have to wait for a future // update by geoclue - let (_, location) = futures::try_join!( + let (_, location) = futures_util::try_join!( proxy.start(&session, &identifier).into_future(), proxy.receive_location_updated().into_future() )?; diff --git a/src/session/view/create_dm_dialog/dm_user.rs b/src/session/view/create_dm_dialog/dm_user.rs index 9850dbc0..b47d272e 100644 --- a/src/session/view/create_dm_dialog/dm_user.rs +++ b/src/session/view/create_dm_dialog/dm_user.rs @@ -150,7 +150,7 @@ impl DmUser { async fn create_dm( client: matrix_sdk::Client, other_user: ruma::OwnedUserId, -) -> Result { +) -> Result { let request = assign!(create_room::v3::Request::new(), { is_direct: true, diff --git a/src/session/view/create_dm_dialog/dm_user_list.rs b/src/session/view/create_dm_dialog/dm_user_list.rs index 603c4f81..7fff4046 100644 --- a/src/session/view/create_dm_dialog/dm_user_list.rs +++ b/src/session/view/create_dm_dialog/dm_user_list.rs @@ -27,7 +27,7 @@ mod imp { collections::HashMap, }; - use futures::future::AbortHandle; + use futures_util::future::AbortHandle; use once_cell::sync::Lazy; use super::*; @@ -187,7 +187,7 @@ impl DmUserList { let search_term_clone = search_term.clone(); let handle = spawn_tokio!(async move { client.search_users(&search_term_clone, 20).await }); - let (future, handle) = futures::future::abortable(handle); + let (future, handle) = futures_util::future::abortable(handle); if let Some(abort_handle) = self.imp().abort_handle.replace(Some(handle)) { abort_handle.abort(); diff --git a/src/utils/media.rs b/src/utils/media.rs index 60b7c643..ec45231d 100644 --- a/src/utils/media.rs +++ b/src/utils/media.rs @@ -125,7 +125,7 @@ async fn get_gstreamer_media_info(file: &gio::File) -> Option