diff --git a/.sqlx/query-2e29a510d084df7db649c02a7b1a335b9690b70c640a7820c298559c9b007f28.json b/.sqlx/query-2e29a510d084df7db649c02a7b1a335b9690b70c640a7820c298559c9b007f28.json index 1412e31..3a5cc38 100644 --- a/.sqlx/query-2e29a510d084df7db649c02a7b1a335b9690b70c640a7820c298559c9b007f28.json +++ b/.sqlx/query-2e29a510d084df7db649c02a7b1a335b9690b70c640a7820c298559c9b007f28.json @@ -6,7 +6,7 @@ { "name": "arrived_at!", "ordinal": 0, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "from_id: _", @@ -41,7 +41,7 @@ { "name": "quote_arrived_at: _", "ordinal": 7, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "quote_from_id: _", @@ -91,12 +91,12 @@ true, true, false, + false, true, true, true, true, - true, - true, + null, false ] }, diff --git a/.sqlx/query-6b840f0eb971e19e45726b9e3fd1be08acc54f19db63fd7f0404e0dc5c50f4be.json b/.sqlx/query-6b840f0eb971e19e45726b9e3fd1be08acc54f19db63fd7f0404e0dc5c50f4be.json index b5b3745..e1b65c8 100644 --- a/.sqlx/query-6b840f0eb971e19e45726b9e3fd1be08acc54f19db63fd7f0404e0dc5c50f4be.json +++ b/.sqlx/query-6b840f0eb971e19e45726b9e3fd1be08acc54f19db63fd7f0404e0dc5c50f4be.json @@ -6,7 +6,7 @@ { "name": "arrived_at!", "ordinal": 0, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "from_id: _", @@ -41,7 +41,7 @@ { "name": "quote_arrived_at: _", "ordinal": 7, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "quote_from_id: _", @@ -91,12 +91,12 @@ true, true, false, + false, true, true, true, true, - true, - true, + null, false ] }, diff --git a/.sqlx/query-91d45ef1f3eed83def5241fa027573bc217fad6419b52bcad53b899de7fe6cf4.json b/.sqlx/query-91d45ef1f3eed83def5241fa027573bc217fad6419b52bcad53b899de7fe6cf4.json index c087f85..1b91ba9 100644 --- a/.sqlx/query-91d45ef1f3eed83def5241fa027573bc217fad6419b52bcad53b899de7fe6cf4.json +++ b/.sqlx/query-91d45ef1f3eed83def5241fa027573bc217fad6419b52bcad53b899de7fe6cf4.json @@ -21,7 +21,7 @@ { "name": "group_revision", "ordinal": 3, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "group_members: _", diff --git a/.sqlx/query-a88ae3a5fcf95d51012882212b5a9ca20aace2261befc099e641b8d0ba692b29.json b/.sqlx/query-a88ae3a5fcf95d51012882212b5a9ca20aace2261befc099e641b8d0ba692b29.json index d6f7344..fc22525 100644 --- a/.sqlx/query-a88ae3a5fcf95d51012882212b5a9ca20aace2261befc099e641b8d0ba692b29.json +++ b/.sqlx/query-a88ae3a5fcf95d51012882212b5a9ca20aace2261befc099e641b8d0ba692b29.json @@ -6,7 +6,7 @@ { "name": "arrived_at", "ordinal": 0, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "from_id: _", @@ -41,7 +41,7 @@ { "name": "quote_arrived_at: _", "ordinal": 7, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "quote_from_id: _", @@ -71,7 +71,7 @@ { "name": "edit", "ordinal": 13, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "edited: _", diff --git a/.sqlx/query-b7bacc9256317c39f23ed805754917a6c50e61a2b17e6983f330c339cb23d442.json b/.sqlx/query-b7bacc9256317c39f23ed805754917a6c50e61a2b17e6983f330c339cb23d442.json index f74b6e5..2895e8e 100644 --- a/.sqlx/query-b7bacc9256317c39f23ed805754917a6c50e61a2b17e6983f330c339cb23d442.json +++ b/.sqlx/query-b7bacc9256317c39f23ed805754917a6c50e61a2b17e6983f330c339cb23d442.json @@ -21,7 +21,7 @@ { "name": "group_revision", "ordinal": 3, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "group_members: _", diff --git a/Cargo.lock b/Cargo.lock index 2ca8814..4f8453e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -81,7 +81,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", "once_cell", "version_check", "zerocopy", @@ -215,7 +214,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" dependencies = [ - "event-listener 5.3.1", + "event-listener", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -282,7 +281,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.3.1", + "event-listener", "event-listener-strategy", "pin-project-lite", ] @@ -300,7 +299,7 @@ dependencies = [ "async-task", "blocking", "cfg-if", - "event-listener 5.3.1", + "event-listener", "futures-lite", "rustix", "tracing", @@ -315,7 +314,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -344,20 +343,20 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "async-tungstenite" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3609af4bbf701ddaf1f6bb4e6257dff4ff8932327d0e685d3f653724c258b1ac" +checksum = "c5359381fd414fbdb272c48f2111c16cb0bb3447bfacd59311ff3736da9f6664" dependencies = [ "futures-io", "futures-util", @@ -640,12 +639,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "checked_int_cast" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" - [[package]] name = "chrono" version = "0.4.38" @@ -727,10 +720,10 @@ version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -762,13 +755,14 @@ checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "compact_str" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f" +checksum = "6050c3a16ddab2e412160b31f2c871015704239bca62f72f6e5f0be631d3f644" dependencies = [ "castaway", "cfg-if", "itoa", + "rustversion", "ryu", "static_assertions", ] @@ -968,16 +962,16 @@ checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crossterm" -version = "0.27.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" +checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ "bitflags 2.6.0", "crossterm_winapi", "futures-core", - "libc", - "mio 0.8.11", + "mio", "parking_lot 0.12.3", + "rustix", "signal-hook", "signal-hook-mio", "winapi", @@ -1041,7 +1035,7 @@ source = "git+https://github.com/signalapp/curve25519-dalek?tag=signal-curve2551 dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1100,7 +1094,7 @@ checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1111,7 +1105,7 @@ checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1176,7 +1170,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1266,7 +1260,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1312,12 +1306,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - [[package]] name = "event-listener" version = "5.3.1" @@ -1335,7 +1323,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.3.1", + "event-listener", "pin-project-lite", ] @@ -1423,7 +1411,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1537,7 +1525,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1644,7 +1632,7 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "gurk" -version = "0.5.1" +version = "0.5.2-dev" dependencies = [ "aho-corasick", "anyhow", @@ -1663,7 +1651,7 @@ dependencies = [ "hostname", "image", "insta", - "itertools 0.12.1", + "itertools 0.13.0", "libsqlite3-sys", "log-panics", "mime_guess", @@ -1703,20 +1691,20 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", - "http 0.2.12", + "http", "indexmap", "slab", "tokio", - "tokio-util 0.7.11", + "tokio-util", "tracing", ] @@ -1751,23 +1739,23 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.8.4" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" dependencies = [ "hashbrown", ] [[package]] name = "headers" -version = "0.3.9" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" dependencies = [ "base64 0.21.7", "bytes", "headers-core", - "http 0.2.12", + "http", "httpdate", "mime", "sha1", @@ -1775,11 +1763,11 @@ dependencies = [ [[package]] name = "headers-core" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http 0.2.12", + "http", ] [[package]] @@ -1796,15 +1784,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "heck" version = "0.5.0" @@ -1875,9 +1854,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -1885,24 +1864,25 @@ dependencies = [ ] [[package]] -name = "http" -version = "1.1.0" +name = "http-body" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "fnv", - "itoa", + "http", ] [[package]] -name = "http-body" -version = "0.4.6" +name = "http-body-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", - "http 0.2.12", + "futures-util", + "http", + "http-body", "pin-project-lite", ] @@ -1920,55 +1900,73 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.30" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", "h2", - "http 0.2.12", + "http", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] name = "hyper-rustls" -version = "0.25.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399c78f9338483cb7e630c8474b07268983c6bd5acee012e4211f9f7bb21b070" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", - "http 0.2.12", + "http", "hyper", + "hyper-util", "log", - "rustls 0.22.4", - "rustls-native-certs", + "rustls", "rustls-pki-types", "tokio", "tokio-rustls", + "tower-service", ] [[package]] name = "hyper-timeout" -version = "0.4.1" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" +dependencies = [ + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", "hyper", "pin-project-lite", + "socket2", "tokio", - "tokio-io-timeout", + "tower", + "tower-service", + "tracing", ] [[package]] @@ -2019,9 +2017,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown", @@ -2050,6 +2048,16 @@ dependencies = [ "similar", ] +[[package]] +name = "instability" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b23a0c8dfe501baac4adf6ebbfa6eddf8f0c07f56b058cc1288017e32397846c" +dependencies = [ + "quote", + "syn 2.0.77", +] + [[package]] name = "instant" version = "0.1.13" @@ -2188,7 +2196,7 @@ dependencies = [ [[package]] name = "libsignal-core" version = "0.1.0" -source = "git+https://github.com/signalapp/libsignal?tag=v0.51.1#2e2896fc235efa293213dd5f0aff4b1f8528bab2" +source = "git+https://github.com/signalapp/libsignal?tag=v0.56.1#e46841ea2c1ad03bc5113eba267ac1543689d031" dependencies = [ "num_enum", "uuid", @@ -2197,7 +2205,7 @@ dependencies = [ [[package]] name = "libsignal-protocol" version = "0.1.0" -source = "git+https://github.com/signalapp/libsignal?tag=v0.51.1#2e2896fc235efa293213dd5f0aff4b1f8528bab2" +source = "git+https://github.com/signalapp/libsignal?tag=v0.56.1#e46841ea2c1ad03bc5113eba267ac1543689d031" dependencies = [ "aes", "aes-gcm-siv", @@ -2211,7 +2219,7 @@ dependencies = [ "hkdf", "hmac", "indexmap", - "itertools 0.12.1", + "itertools 0.13.0", "libsignal-core", "log", "num_enum", @@ -2233,12 +2241,12 @@ dependencies = [ [[package]] name = "libsignal-service" version = "0.1.0" -source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=86dd9da99b254c2127fb60c366df426d60318097#86dd9da99b254c2127fb60c366df426d60318097" +source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=5470ce6a2#5470ce6a272416d8274cd273017cc14bdbf2568e" dependencies = [ "aes", "aes-gcm", "async-trait", - "base64 0.21.7", + "base64 0.22.1", "bincode", "bytes", "cbc", @@ -2268,19 +2276,21 @@ dependencies = [ [[package]] name = "libsignal-service-hyper" version = "0.1.0" -source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=86dd9da99b254c2127fb60c366df426d60318097#86dd9da99b254c2127fb60c366df426d60318097" +source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=5470ce6a2#5470ce6a272416d8274cd273017cc14bdbf2568e" dependencies = [ "async-trait", "async-tungstenite", "bytes", "futures", "headers", + "http-body-util", "hyper", "hyper-rustls", "hyper-timeout", + "hyper-util", "libsignal-service", "mpart-async", - "rustls-pemfile 2.1.3", + "rustls-pemfile", "serde", "serde_json", "thiserror", @@ -2293,9 +2303,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.27.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" dependencies = [ "cc", "openssl-sys", @@ -2446,18 +2456,6 @@ dependencies = [ "adler2", ] -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.48.0", -] - [[package]] name = "mio" version = "1.0.2" @@ -2466,20 +2464,21 @@ checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi 0.3.9", "libc", + "log", "wasi", "windows-sys 0.52.0", ] [[package]] name = "mpart-async" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ea6ab2359d45d2401bd7ba5ce5a67582f2abb872ea9ec17f78efb6ac3591864" +checksum = "f9bdeb8c63325c5d4ec66dff19cc42c5416b5bb27b2f555b3b9debdbe2d40d9b" dependencies = [ "bytes", "futures-core", "futures-util", - "http 0.2.12", + "http", "httparse", "log", "memchr", @@ -2489,7 +2488,7 @@ dependencies = [ "rand", "thiserror", "tokio", - "tokio-util 0.6.10", + "tokio-util", ] [[package]] @@ -2620,23 +2619,23 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.6.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.6.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -2769,9 +2768,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.3" +version = "0.36.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" dependencies = [ "memchr", ] @@ -2943,7 +2942,7 @@ checksum = "7459127d7a18cb202d418e4b7df1103ffd6d82a106e9b2091c250624c2ace70d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3043,7 +3042,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3140,7 +3139,7 @@ dependencies = [ [[package]] name = "poksho" version = "0.7.0" -source = "git+https://github.com/signalapp/libsignal?tag=v0.51.1#2e2896fc235efa293213dd5f0aff4b1f8528bab2" +source = "git+https://github.com/signalapp/libsignal?tag=v0.56.1#e46841ea2c1ad03bc5113eba267ac1543689d031" dependencies = [ "curve25519-dalek", "hmac", @@ -3247,9 +3246,9 @@ checksum = "94e851c7654eed9e68d7d27164c454961a616cf8c203d500607ef22c737b51bb" [[package]] name = "presage" version = "0.6.2" -source = "git+https://github.com/whisperfish/presage?rev=67d98a3cb021dd365a671be067abc69deb71c736#67d98a3cb021dd365a671be067abc69deb71c736" +source = "git+https://github.com/whisperfish/presage?rev=c5cb55f7dee55f4ba344dde570c62d289ced58a7#c5cb55f7dee55f4ba344dde570c62d289ced58a7" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "futures", "hex", "libsignal-service", @@ -3267,7 +3266,7 @@ dependencies = [ [[package]] name = "presage-store-cipher" version = "0.1.0" -source = "git+https://github.com/whisperfish/presage?rev=67d98a3cb021dd365a671be067abc69deb71c736#67d98a3cb021dd365a671be067abc69deb71c736" +source = "git+https://github.com/whisperfish/presage?rev=c5cb55f7dee55f4ba344dde570c62d289ced58a7#c5cb55f7dee55f4ba344dde570c62d289ced58a7" dependencies = [ "blake3", "chacha20poly1305", @@ -3284,10 +3283,10 @@ dependencies = [ [[package]] name = "presage-store-sled" version = "0.6.0-dev" -source = "git+https://github.com/whisperfish/presage?rev=67d98a3cb021dd365a671be067abc69deb71c736#67d98a3cb021dd365a671be067abc69deb71c736" +source = "git+https://github.com/whisperfish/presage?rev=c5cb55f7dee55f4ba344dde570c62d289ced58a7#c5cb55f7dee55f4ba344dde570c62d289ced58a7" dependencies = [ "async-trait", - "base64 0.21.7", + "base64 0.22.1", "chrono", "fs_extra", "log", @@ -3310,17 +3309,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.76", -] - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "syn 2.0.77", ] [[package]] @@ -3329,7 +3318,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.22.20", + "toml_edit", ] [[package]] @@ -3343,9 +3332,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.6" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +checksum = "3b2ecbe40f08db5c006b5764a2645f7f3f141ce756412ac9e1dd6087e6d32995" dependencies = [ "bytes", "prost-derive", @@ -3353,13 +3342,13 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.12.6" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +checksum = "f8650aabb6c35b860610e9cff5dc1af886c9e25073b7b1712a68972af4281302" dependencies = [ "bytes", - "heck 0.5.0", - "itertools 0.12.1", + "heck", + "itertools 0.13.0", "log", "multimap", "once_cell", @@ -3368,28 +3357,28 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.76", + "syn 2.0.77", "tempfile", ] [[package]] name = "prost-derive" -version = "0.12.6" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +checksum = "acf0c195eebb4af52c752bec4f52f645da98b6e92077a04110c7f349477ae5ac" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "prost-types" -version = "0.12.6" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +checksum = "60caa6738c7369b940c3d49246a8d1749323674c65cb13010134f5c9bad5b519" dependencies = [ "prost", ] @@ -3416,7 +3405,7 @@ checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae" [[package]] name = "qr2term" version = "0.3.1" -source = "git+https://github.com/boxdot/qr2term-rs?rev=ed8ae7f#ed8ae7fe3a115578820fd54955f8aac8e4df374a" +source = "git+https://github.com/boxdot/qr2term-rs?rev=e69db9e#e69db9ef49eef3d2efbaa18a4b4895fe53d8853c" dependencies = [ "crossterm", "qrcode", @@ -3424,12 +3413,9 @@ dependencies = [ [[package]] name = "qrcode" -version = "0.12.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d2f1455f3630c6e5107b4f2b94e74d76dea80736de0981fd27644216cff57f" -dependencies = [ - "checked_int_cast", -] +checksum = "d68782463e408eb1e668cf6152704bd856c78c5b6417adaee3203d8f4c1fc9ec" [[package]] name = "quick-xml" @@ -3512,19 +3498,20 @@ dependencies = [ [[package]] name = "ratatui" -version = "0.26.3" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f44c9e68fd46eda15c646fbb85e1040b657a58cdc8c98db1d97a55930d991eef" +checksum = "fdef7f9be5c0122f890d58bdf4d964349ba6a6161f705907526d891efabba57d" dependencies = [ "bitflags 2.6.0", "cassowary", "compact_str", "crossterm", - "itertools 0.12.1", + "instability", + "itertools 0.13.0", "lru", "paste", - "stability", "strum", + "strum_macros", "unicode-segmentation", "unicode-truncate", "unicode-width", @@ -3678,9 +3665,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] @@ -3700,51 +3687,32 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.12" +version = "0.23.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "log", + "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.7", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.1.3" @@ -3761,16 +3729,6 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "rustls-webpki" version = "0.102.7" @@ -3824,16 +3782,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "security-framework" version = "2.11.1" @@ -3880,7 +3828,7 @@ checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3903,7 +3851,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3915,6 +3863,18 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + [[package]] name = "sha1" version = "0.10.6" @@ -3955,7 +3915,7 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-crypto" version = "0.1.0" -source = "git+https://github.com/signalapp/libsignal?tag=v0.51.1#2e2896fc235efa293213dd5f0aff4b1f8528bab2" +source = "git+https://github.com/signalapp/libsignal?tag=v0.56.1#e46841ea2c1ad03bc5113eba267ac1543689d031" dependencies = [ "aes", "cbc", @@ -3986,7 +3946,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" dependencies = [ "libc", - "mio 0.8.11", + "mio", "signal-hook", ] @@ -4057,6 +4017,9 @@ name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +dependencies = [ + "serde", +] [[package]] name = "smawk" @@ -4105,9 +4068,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" +checksum = "fcfa89bea9500db4a0d038513d7a060566bfc51d46d1c014847049a45cce85e8" dependencies = [ "sqlx-core", "sqlx-macros", @@ -4118,11 +4081,10 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" +checksum = "d06e2f2bd861719b1f3f0c7dbe1d80c30bf59e76cf019f07d9014ed7eefb8e08" dependencies = [ - "ahash", "atoi", "byteorder", "bytes", @@ -4130,12 +4092,13 @@ dependencies = [ "crc", "crossbeam-queue", "either", - "event-listener 2.5.3", + "event-listener", "futures-channel", "futures-core", "futures-intrusive", "futures-io", "futures-util", + "hashbrown", "hashlink", "hex", "indexmap", @@ -4144,8 +4107,8 @@ dependencies = [ "once_cell", "paste", "percent-encoding", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", + "rustls", + "rustls-pemfile", "serde", "serde_json", "sha2", @@ -4162,26 +4125,26 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" +checksum = "2f998a9defdbd48ed005a89362bd40dd2117502f15294f61c8d47034107dbbdc" dependencies = [ "proc-macro2", "quote", "sqlx-core", "sqlx-macros-core", - "syn 1.0.109", + "syn 2.0.77", ] [[package]] name = "sqlx-macros-core" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" +checksum = "3d100558134176a2629d46cec0c8891ba0be8910f7896abfdb75ef4ab6f4e7ce" dependencies = [ "dotenvy", "either", - "heck 0.4.1", + "heck", "hex", "once_cell", "proc-macro2", @@ -4193,7 +4156,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 1.0.109", + "syn 2.0.77", "tempfile", "tokio", "url", @@ -4201,12 +4164,12 @@ dependencies = [ [[package]] name = "sqlx-mysql" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" +checksum = "936cac0ab331b14cb3921c62156d913e4c15b74fb6ec0f3146bd4ef6e4fb3c12" dependencies = [ "atoi", - "base64 0.21.7", + "base64 0.22.1", "bitflags 2.6.0", "byteorder", "bytes", @@ -4245,12 +4208,12 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" +checksum = "9734dbce698c67ecf67c442f768a5e90a49b2a4d61a9f1d59f73874bd4cf0710" dependencies = [ "atoi", - "base64 0.21.7", + "base64 0.22.1", "bitflags 2.6.0", "byteorder", "chrono", @@ -4285,9 +4248,9 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" +checksum = "a75b419c3c1b1697833dd927bdc4c6545a620bc1bbafabd44e1efbe9afcd337e" dependencies = [ "atoi", "chrono", @@ -4301,23 +4264,13 @@ dependencies = [ "log", "percent-encoding", "serde", + "serde_urlencoded", "sqlx-core", "tracing", "url", - "urlencoding", "uuid", ] -[[package]] -name = "stability" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" -dependencies = [ - "quote", - "syn 2.0.76", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -4362,11 +4315,11 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "rustversion", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -4388,9 +4341,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.76" +version = "2.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" dependencies = [ "proc-macro2", "quote", @@ -4460,7 +4413,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -4542,30 +4495,20 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.3" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", "libc", - "mio 1.0.2", + "mio", "pin-project-lite", "socket2", "tokio-macros", "windows-sys 0.52.0", ] -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-macros" version = "2.4.0" @@ -4574,16 +4517,16 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "tokio-rustls" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.22.4", + "rustls", "rustls-pki-types", "tokio", ] @@ -4599,20 +4542,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.11" @@ -4635,7 +4564,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.20", + "toml_edit", ] [[package]] @@ -4649,28 +4578,38 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ "indexmap", + "serde", + "serde_spanned", "toml_datetime", - "winnow 0.5.40", + "winnow", ] [[package]] -name = "toml_edit" -version = "0.22.20" +name = "tower" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.18", + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "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" @@ -4709,7 +4648,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -4779,18 +4718,18 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.21.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.1.0", + "http", "httparse", "log", "rand", - "rustls 0.22.4", + "rustls", "rustls-pki-types", "sha1", "thiserror", @@ -4914,12 +4853,6 @@ dependencies = [ "serde", ] -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - [[package]] name = "utf-8" version = "0.7.6" @@ -5013,7 +4946,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "wasm-bindgen-shared", ] @@ -5035,7 +4968,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5131,9 +5064,12 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.4" +version = "0.26.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "weezl" @@ -5232,7 +5168,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5243,7 +5179,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5412,15 +5348,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "0.6.18" @@ -5560,7 +5487,7 @@ dependencies = [ "async-trait", "blocking", "enumflags2", - "event-listener 5.3.1", + "event-listener", "futures-core", "futures-sink", "futures-util", @@ -5587,10 +5514,10 @@ version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "zvariant_utils", ] @@ -5623,7 +5550,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5643,13 +5570,13 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "zkcredential" version = "0.1.0" -source = "git+https://github.com/signalapp/libsignal?tag=v0.51.1#2e2896fc235efa293213dd5f0aff4b1f8528bab2" +source = "git+https://github.com/signalapp/libsignal?tag=v0.56.1#e46841ea2c1ad03bc5113eba267ac1543689d031" dependencies = [ "cfg-if", "curve25519-dalek", @@ -5668,7 +5595,7 @@ dependencies = [ [[package]] name = "zkgroup" version = "0.9.0" -source = "git+https://github.com/signalapp/libsignal?tag=v0.51.1#2e2896fc235efa293213dd5f0aff4b1f8528bab2" +source = "git+https://github.com/signalapp/libsignal?tag=v0.56.1#e46841ea2c1ad03bc5113eba267ac1543689d031" dependencies = [ "aes-gcm-siv", "bincode", @@ -5713,10 +5640,10 @@ version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "zvariant_utils", ] @@ -5728,5 +5655,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] diff --git a/Cargo.toml b/Cargo.toml index c6fdfad..e63a8b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gurk" description = "Signal messenger client for terminal" -version = "0.5.1" +version = "0.5.2-dev" authors = ["boxdot "] edition = "2021" keywords = ["signal", "tui"] @@ -28,11 +28,11 @@ debug = true dev = ["prost", "base64"] [dependencies] -presage = { git = "https://github.com/whisperfish/presage", rev = "67d98a3cb021dd365a671be067abc69deb71c736" } -presage-store-sled = { git = "https://github.com/whisperfish/presage", rev = "67d98a3cb021dd365a671be067abc69deb71c736" } +presage = { git = "https://github.com/whisperfish/presage", rev = "c5cb55f7dee55f4ba344dde570c62d289ced58a7" } +presage-store-sled = { git = "https://github.com/whisperfish/presage", rev = "c5cb55f7dee55f4ba344dde570c62d289ced58a7" } # dev feature dependencies -prost = { version = "0.12.0", optional = true } +prost = { version = "0.13.0", optional = true } base64 = { version = "0.22.0", optional = true } aho-corasick = "1.0.0" @@ -41,15 +41,15 @@ arboard = { version = "3.2.0", features = ["wayland-data-control"] } async-trait = "0.1.58" chrono = { version = "0.4.22", default-features = false, features = ["serde"] } clap = { version = "4.0.19", features = ["derive"] } -crossterm = { version = "0.27.0", features = ["event-stream"] } +crossterm = { version = "0.28.1", features = ["event-stream"] } dirs = "5.0.0" emojis = "0.6.1" futures-channel = "0.3.25" hex = "0.4.3" hostname = "0.4.0" image = { version = "0.25.0", default-features = false, features = ["png"] } -itertools = "0.12.0" -libsqlite3-sys = { version = "0.27.0", features = ["bundled-sqlcipher-vendored-openssl"] } +itertools = "0.13.0" +libsqlite3-sys = { version = "0.30.1", features = ["bundled-sqlcipher-vendored-openssl"] } log-panics = "2.1.0" mime_guess = "2.0.4" notify-rust = "4.5.10" @@ -57,14 +57,14 @@ once_cell = "1.18.0" opener = "0.7.0" phonenumber = "0.3.6" postcard = { version = "1.0.4", features = ["alloc"] } -qr2term = { git = "https://github.com/boxdot/qr2term-rs", rev = "ed8ae7f" } -ratatui = "0.26.0" +qr2term = "0.3.1" +ratatui = "0.28.1" rayon = "1.7.0" regex = "1.9.5" scopeguard = "1.1.0" serde = { version = "1.0.147", features = ["derive"] } serde_json = "1.0.87" -sqlx = { version = "0.7.4", features = ["sqlite", "runtime-tokio-rustls", "uuid", "chrono"] } +sqlx = { version = "0.8.1", features = ["sqlite", "runtime-tokio-rustls", "uuid", "chrono"] } textwrap = "0.16.0" thiserror = "1.0.40" thread_local = "1.1.7" @@ -107,3 +107,6 @@ harness = false # signal-protocol uses a fork of this library via the patch mechanism of cargo. # Since it is not transitive, we have to add the patch here explicitly. "curve25519-dalek" = { git = 'https://github.com/signalapp/curve25519-dalek', tag = 'signal-curve25519-4.1.3' } +# upgrade crossterm 0.27 -> 0.28 #34 +# +"qr2term" = { git = "https://github.com/boxdot/qr2term-rs", rev = "e69db9e" } diff --git a/src/dev.rs b/src/dev.rs index 6c2b3b9..feb6204 100644 --- a/src/dev.rs +++ b/src/dev.rs @@ -21,6 +21,8 @@ pub struct ContentBase64 { struct MetadataDef { #[serde(with = "ServiceAddressDef")] sender: ServiceAddress, + #[serde(with = "ServiceAddressDef", default = "default_destination")] + destination: ServiceAddress, sender_device: u32, timestamp: u64, needs_receipt: bool, @@ -43,10 +45,18 @@ pub enum ServiceIdTypeDef { PhoneNumberIdentity, } +fn default_destination() -> ServiceAddress { + ServiceAddress { + uuid: Uuid::nil(), + identity: ServiceIdType::AccountIdentity, + } +} + impl From for MetadataDef { fn from(metadata: Metadata) -> Self { Self { sender: metadata.sender, + destination: metadata.destination, sender_device: metadata.sender_device, timestamp: metadata.timestamp, needs_receipt: metadata.needs_receipt, diff --git a/src/main.rs b/src/main.rs index f94e30a..86ef185 100644 --- a/src/main.rs +++ b/src/main.rs @@ -287,7 +287,7 @@ async fn run_single_threaded(relink: bool) -> anyhow::Result<()> { let col = event.column; let row = event.row; if let Some(channel_idx) = - ui::coords_within_channels_view(terminal.get_frame().size(), col, row) + ui::coords_within_channels_view(terminal.get_frame().area(), col, row) .map(|(_, row)| row as usize) .filter(|&idx| idx < app.channels.items.len()) { @@ -297,7 +297,7 @@ async fn run_single_threaded(relink: bool) -> anyhow::Result<()> { } MouseEventKind::ScrollUp => { if event.column - < terminal.get_frame().size().width / ui::CHANNEL_VIEW_RATIO as u16 + < terminal.get_frame().area().width / ui::CHANNEL_VIEW_RATIO as u16 { app.select_previous_channel() } else { @@ -306,7 +306,7 @@ async fn run_single_threaded(relink: bool) -> anyhow::Result<()> { } MouseEventKind::ScrollDown => { if event.column - < terminal.get_frame().size().width / ui::CHANNEL_VIEW_RATIO as u16 + < terminal.get_frame().area().width / ui::CHANNEL_VIEW_RATIO as u16 { app.select_next_channel() } else { diff --git a/src/storage/sql/encoding.rs b/src/storage/sql/encoding.rs index 48befe8..735ddab 100644 --- a/src/storage/sql/encoding.rs +++ b/src/storage/sql/encoding.rs @@ -2,7 +2,6 @@ use serde::de::DeserializeOwned; use serde::Serialize; -use sqlx::database::HasArguments; use sqlx::encode::IsNull; use sqlx::error::BoxDynError; use sqlx::sqlite::SqliteValueRef; @@ -25,7 +24,10 @@ impl Decode<'_, Sqlite> for ChannelId { } impl<'q> Encode<'q, Sqlite> for &'q ChannelId { - fn encode_by_ref(&self, buf: &mut >::ArgumentBuffer) -> IsNull { + fn encode_by_ref( + &self, + buf: &mut ::ArgumentBuffer<'q>, + ) -> Result { match self { ChannelId::User(uuid) => uuid.encode(buf), ChannelId::Group(bytes) => Encode::<'_, Sqlite>::encode(bytes.as_slice(), buf), @@ -56,11 +58,14 @@ impl Decode<'_, Sqlite> for BlobData { } impl<'q, T: Serialize> Encode<'q, Sqlite> for BlobData { - fn encode_by_ref(&self, buf: &mut >::ArgumentBuffer) -> IsNull { + fn encode_by_ref( + &self, + buf: &mut ::ArgumentBuffer<'q>, + ) -> Result { if let Some(bytes) = postcard::to_allocvec(&self.0).ok_logged() { Encode::<'_, Sqlite>::encode(bytes, buf) } else { - IsNull::Yes + Ok(IsNull::Yes) } } } diff --git a/src/ui/draw.rs b/src/ui/draw.rs index 71a420b..7e6b9a0 100644 --- a/src/ui/draw.rs +++ b/src/ui/draw.rs @@ -35,7 +35,7 @@ pub fn draw(f: &mut Frame, app: &mut App) { Constraint::Percentage(15), ]) .direction(Direction::Horizontal) - .split(f.size()); + .split(f.area()); draw_help(f, app, chunks[1]); return; } @@ -48,7 +48,7 @@ pub fn draw(f: &mut Frame, app: &mut App) { .as_ref(), ) .direction(Direction::Horizontal) - .split(f.size()); + .split(f.area()); draw_channels(f, app, chunks[0]); draw_chat(f, app, chunks[1]); @@ -59,7 +59,7 @@ pub fn draw(f: &mut Frame, app: &mut App) { } fn draw_select_channel_popup(f: &mut Frame, select_channel: &mut SelectChannel) { - let area = centered_rect(60, 60, f.size()); + let area = centered_rect(60, 60, f.area()); let chunks = Layout::default() .constraints([Constraint::Length(1 + 2), Constraint::Min(0)].as_ref()) .direction(Direction::Vertical) @@ -72,10 +72,10 @@ fn draw_select_channel_popup(f: &mut Frame, select_channel: &mut SelectChannel) ); f.render_widget(input, chunks[0]); let cursor = &select_channel.input.cursor; - f.set_cursor( + f.set_cursor_position(( chunks[0].x + cursor.col as u16 + 1, chunks[0].y + cursor.line as u16 + 1, - ); + )); let items: Vec<_> = select_channel.filtered_names().map(ListItem::new).collect(); match select_channel.state.selected() { Some(idx) if items.len() <= idx => { @@ -201,10 +201,10 @@ fn draw_chat(f: &mut Frame, app: &mut App, area: Rect) { .block(Block::default().borders(Borders::ALL).title(title)); f.render_widget(input, chunks[1]); if !app.select_channel.is_shown { - f.set_cursor( + f.set_cursor_position(( chunks[1].x + cursor.col as u16 + 1, // +1 for frame chunks[1].y + cursor.line as u16 + 1, // +1 for frame - ); + )); } }