From 190fdeef6b18f5f57af5909becde10c5665ba88e Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 16 Jul 2025 09:30:55 +0100 Subject: chore: cargo update in prep for upgrade rust-nostr --- Cargo.lock | 579 ++++++++++++++++++++++++++--------------------------- src/lib/git/mod.rs | 4 +- tests/ngit_send.rs | 4 +- 3 files changed, 290 insertions(+), 297 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6ddc005..8269d2e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" @@ -49,9 +49,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -64,36 +64,36 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] @@ -175,9 +175,9 @@ checksum = "ef49f5882e4b6afaac09ad239a4f8c70a24b8f2b0897edb1f706008efd109cf4" [[package]] name = "auth-git2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d55eead120c93036f531829cf9b85830a474e75ce71169680879d28078321ddc" +checksum = "4888bf91cce63baf1670512d0f12b5d636179a4abbad6504812ac8ab124b3efe" dependencies = [ "dirs", "git2", @@ -186,15 +186,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", "cfg-if", @@ -213,9 +213,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.7.3" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" [[package]] name = "bech32" @@ -225,9 +225,9 @@ checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" [[package]] name = "bip39" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" +checksum = "43d193de1f7487df1914d3a568b772458861d33f9c54249612cc2893d6915054" dependencies = [ "bitcoin_hashes 0.13.0", "serde", @@ -275,9 +275,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" dependencies = [ "serde", ] @@ -313,9 +313,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "byteorder" @@ -340,9 +340,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.21" +version = "1.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0" +checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" dependencies = [ "jobserver", "libc", @@ -351,9 +351,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "cfg_aliases" @@ -398,9 +398,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.37" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" +checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" dependencies = [ "clap_builder", "clap_derive", @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.37" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" +checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" dependencies = [ "anstream", "anstyle", @@ -420,9 +420,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.32" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" dependencies = [ "heck", "proc-macro2", @@ -432,15 +432,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "comma" @@ -559,7 +559,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -614,12 +614,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -780,15 +780,15 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "js-sys", @@ -810,7 +810,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "libc", "libgit2-sys", "log", @@ -833,9 +833,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" [[package]] name = "heck" @@ -849,7 +849,7 @@ version = "0.20.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d4f449bab7320c56003d37732a917e18798e2f1709d80263face2b4f9436ddb" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "byteorder", "heed-traits", "heed-types", @@ -973,11 +973,10 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.5" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "futures-util", "http 1.3.1", "hyper", "hyper-util", @@ -986,22 +985,26 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots", + "webpki-roots 1.0.1", ] [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" dependencies = [ + "base64", "bytes", "futures-channel", + "futures-core", "futures-util", "http 1.3.1", "http-body", "hyper", + "ipnet", "libc", + "percent-encoding", "pin-project-lite", "socket2", "tokio", @@ -1011,21 +1014,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -1034,31 +1038,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -1066,67 +1050,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "idna" version = "1.0.3" @@ -1140,9 +1111,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -1150,9 +1121,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", "hashbrown", @@ -1193,12 +1164,33 @@ dependencies = [ "web-sys", ] +[[package]] +name = "io-uring" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "ipnet" version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1217,7 +1209,7 @@ version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", "libc", ] @@ -1233,15 +1225,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.172" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libgit2-sys" -version = "0.18.1+1.9.0" +version = "0.18.2+1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1dcb20f84ffcdd825c7a311ae347cce604a6f084a767dec4a4929829645290e" +checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222" dependencies = [ "cc", "libc", @@ -1253,11 +1245,11 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "libc", ] @@ -1295,9 +1287,9 @@ checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lmdb-master-sys" @@ -1312,9 +1304,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -1333,35 +1325,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" [[package]] -name = "memchr" -version = "2.7.4" +name = "lru-slab" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] -name = "mime" -version = "0.3.17" +name = "memchr" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] @@ -1454,7 +1446,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "libc", ] @@ -1577,6 +1569,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "opaque-debug" version = "0.3.1" @@ -1591,18 +1589,18 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-src" -version = "300.5.0+3.5.0" +version = "300.5.1+3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ce546f549326b0e6052b649198487d91320875da901e7bd11a06d1ee3f9c2f" +checksum = "735230c832b28c000e3bc117119e6466a663ec73506bc0a9907ea4187508e42a" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.108" +version = "0.9.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", @@ -1629,9 +1627,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -1639,9 +1637,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", @@ -1779,9 +1777,18 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + +[[package]] +name = "potential_utf" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] [[package]] name = "ppv-lite86" @@ -1842,9 +1849,9 @@ checksum = "d68782463e408eb1e668cf6152704bd856c78c5b6417adaee3203d8f4c1fc9ec" [[package]] name = "quinn" -version = "0.11.7" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" +checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" dependencies = [ "bytes", "cfg_aliases", @@ -1862,12 +1869,13 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.11" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b" +checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" dependencies = [ "bytes", - "getrandom 0.3.2", + "getrandom 0.3.3", + "lru-slab", "rand 0.9.1", "ring", "rustc-hash", @@ -1882,9 +1890,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" +checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" dependencies = [ "cfg_aliases", "libc", @@ -1905,9 +1913,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" @@ -1965,7 +1973,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", ] [[package]] @@ -2001,11 +2009,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -2050,30 +2058,25 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ "base64", "bytes", "futures-core", - "futures-util", "http 1.3.1", "http-body", "http-body-util", "hyper", "hyper-rustls", "hyper-util", - "ipnet", "js-sys", "log", - "mime", - "once_cell", "percent-encoding", "pin-project-lite", "quinn", "rustls", - "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", @@ -2081,15 +2084,14 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-rustls", - "tokio-socks", "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots", - "windows-registry", + "webpki-roots 1.0.1", ] [[package]] @@ -2120,9 +2122,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" [[package]] name = "rustc-hash" @@ -2141,22 +2143,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "rustls" -version = "0.23.27" +version = "0.23.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" +checksum = "2491382039b29b9b11ff08b76ff6c97cf287671dbb74f0be44bda389fffe9bd1" dependencies = [ "once_cell", "ring", @@ -2166,29 +2168,21 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "rustls-pki-types" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" dependencies = [ "web-time", + "zeroize", ] [[package]] name = "rustls-webpki" -version = "0.103.2" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7149975849f1abb3832b246010ef62ccc80d3a76169517ada7188252b9cfb437" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ "ring", "rustls-pki-types", @@ -2197,9 +2191,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" @@ -2245,9 +2239,9 @@ dependencies = [ [[package]] name = "sdd" -version = "3.0.8" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "584e070911c7017da6cb2eb0788d09f43d789029b5877d3e5ecc8acf86ceee21" +checksum = "62f5557d2bbddd5afd236ba7856b0e494f5acc7ce805bb0774cc5674b20a06b4" [[package]] name = "secp256k1" @@ -2419,24 +2413,21 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2480,9 +2471,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.101" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -2520,12 +2511,12 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.19.1" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.3", "once_cell", "rustix", "windows-sys 0.59.0", @@ -2613,9 +2604,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -2638,17 +2629,19 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.0" +version = "1.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", + "slab", "socket2", "tokio-macros", "windows-sys 0.52.0", @@ -2712,7 +2705,7 @@ dependencies = [ "tokio", "tokio-rustls", "tungstenite 0.26.2", - "webpki-roots", + "webpki-roots 0.26.11", ] [[package]] @@ -2730,6 +2723,24 @@ dependencies = [ "tower-service", ] +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.1", + "bytes", + "futures-util", + "http 1.3.1", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -2755,9 +2766,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", @@ -2766,9 +2777,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", ] @@ -2831,18 +2842,18 @@ checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] name = "unicode-width" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" [[package]] name = "universal-hash" @@ -2890,12 +2901,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -2949,9 +2954,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" @@ -3055,9 +3060,18 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.10" +version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37493cadf42a2a939ed404698ded7fb378bf301b5011f973361779a3a74f8c93" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.1", +] + +[[package]] +name = "webpki-roots" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8782dd5a41a24eed3a4f40b606249b3e236ca61adf1f25ea4d45c73de122b502" dependencies = [ "rustls-pki-types", ] @@ -3084,41 +3098,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-link" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - -[[package]] -name = "windows-registry" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" -dependencies = [ - "windows-result", - "windows-strings", - "windows-targets 0.53.0", -] - -[[package]] -name = "windows-result" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -3137,6 +3116,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -3155,9 +3143,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.0" +version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" dependencies = [ "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", @@ -3271,26 +3259,20 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -3300,9 +3282,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", @@ -3312,18 +3294,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", @@ -3357,11 +3339,22 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" dependencies = [ "yoke", "zerofrom", @@ -3370,9 +3363,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", diff --git a/src/lib/git/mod.rs b/src/lib/git/mod.rs index 0256457..5bdb30a 100644 --- a/src/lib/git/mod.rs +++ b/src/lib/git/mod.rs @@ -1271,7 +1271,7 @@ mod tests { +some content1\n\\ \ No newline at end of file\n\ --\n\ - libgit2 1.9.0\n\ + libgit2 1.9.1\n\ \n\ ", git_repo.make_patch_from_commit(&oid_to_sha1(&oid), &None)?, @@ -1307,7 +1307,7 @@ mod tests { +some content1\n\\ \ No newline at end of file\n\ --\n\ - libgit2 1.9.0\n\ + libgit2 1.9.1\n\ \n\ ", git_repo.make_patch_from_commit(&oid_to_sha1(&oid), &Some((3, 5)))?, diff --git a/tests/ngit_send.rs b/tests/ngit_send.rs index 629454b..0337a6e 100644 --- a/tests/ngit_send.rs +++ b/tests/ngit_send.rs @@ -321,7 +321,7 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ +some content\n\\ \ No newline at end of file\n\ --\n\ - libgit2 1.9.0\n\ + libgit2 1.9.1\n\ \n\ ", ); @@ -347,7 +347,7 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ +some content\n\\ \ No newline at end of file\n\ --\n\ - libgit2 1.9.0\n\ + libgit2 1.9.1\n\ \n\ ", ); -- cgit v1.2.3 From b01908c12af958726347018bcdc952751f8c8e17 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 16 Jul 2025 09:32:23 +0100 Subject: chore: cargo upgrade command available after `cargo install cargo-edit` and it bumps packages with no-breaking changes in Cargo.toml --- Cargo.toml | 32 ++++++++++++++++---------------- test_utils/Cargo.toml | 14 +++++++------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 41353c6..4311dd7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,37 +12,37 @@ keywords = ["nostr", "git"] categories = ["command-line-utilities","development-tools"] [dependencies] -anyhow = "1.0.75" -async-trait = "0.1.73" -auth-git2 = "0.5.4" +anyhow = "1.0.98" +async-trait = "0.1.88" +auth-git2 = "0.5.8" chacha20poly1305 = "0.10.1" -clap = { version = "4.3.19", features = ["derive"] } -console = "0.15.7" +clap = { version = "4.5.41", features = ["derive"] } +console = "0.15.11" dialoguer = "0.11.0" directories = "6.0.0" -futures = "0.3.28" +futures = "0.3.31" git2 = "0.20.2" -indicatif = "0.17.7" +indicatif = "0.17.11" nostr = { version = "0.41.0", features = ["nip05", "nip49"] } nostr-connect = "0.41.0" nostr-database = "0.41.0" nostr-lmdb = "0.41.0" nostr-relay-pool = "0.41.0" nostr-sdk = "0.41.0" -passwords = "3.1.13" +passwords = "3.1.16" qrcode = { version = "0.14.1", default-features = false } scrypt = "0.11.0" -serde = { version = "1.0.181", features = ["derive"] } -serde_json = "1.0.105" -serde_yaml = "0.9.27" -tokio = { version = "1.40.0", features = ["full"] } +serde = { version = "1.0.219", features = ["derive"] } +serde_json = "1.0.140" +serde_yaml = "0.9.34" +tokio = { version = "1.46.1", features = ["full"] } urlencoding = "2.1.3" -zeroize = "1.6.0" +zeroize = "1.8.1" [dev-dependencies] -assert_cmd = "2.0.12" +assert_cmd = "2.0.17" mockall = "0.13.1" -once_cell = "1.18.0" +once_cell = "1.21.3" serial_test = "3.2.0" test_utils = { path = "test_utils" } @@ -69,4 +69,4 @@ path = "src/bin/git_remote_nostr/main.rs" [profile.release] lto = true -strip = "symbols" \ No newline at end of file +strip = "symbols" diff --git a/test_utils/Cargo.toml b/test_utils/Cargo.toml index 2001733..8cdb9d5 100644 --- a/test_utils/Cargo.toml +++ b/test_utils/Cargo.toml @@ -4,21 +4,21 @@ version = "0.1.0" edition = "2021" [dependencies] -anyhow = "1.0.75" -assert_cmd = "2.0.12" +anyhow = "1.0.98" +assert_cmd = "2.0.17" dialoguer = "0.11.0" directories = "6.0.0" -futures = "0.3.28" +futures = "0.3.31" git2 = "0.20.2" nostr = "0.41.0" nostr-database = "0.41.0" nostr-lmdb = "0.41.0" nostr-sdk = "0.41.0" -once_cell = "1.18.0" +once_cell = "1.21.3" rand = "0.8" rexpect = { git = "https://github.com/rust-cli/rexpect.git", rev = "9eb61dd" } simple-websockets = { git = "https://github.com/DanConwayDev/simple-websockets", branch= "auto-release-port" } -strip-ansi-escapes = "0.2.0" -tokio = { version = "1.40.0", features = ["full"] } +strip-ansi-escapes = "0.2.1" +tokio = { version = "1.46.1", features = ["full"] } tungstenite = "0.20.1" -sha2 = "0.10" \ No newline at end of file +sha2 = "0.10" -- cgit v1.2.3 From 04e7aaf905eda270aedde8c2ca9228ec90e9905f Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 16 Jul 2025 09:39:00 +0100 Subject: chore: bump console indicatif as the breaking changes don't impact ngit --- Cargo.lock | 37 +++++++++++++++++++++++++------------ Cargo.toml | 4 ++-- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8269d2e..40ac76f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -461,6 +461,19 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "console" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e09ced7ebbccb63b4c65413d821f2e00ce54c5ca4514ddc6b3c892fdbcbc69d" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "unicode-width", + "windows-sys 0.60.2", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -508,7 +521,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" dependencies = [ - "console", + "console 0.15.11", "shell-words", "tempfile", "thiserror 1.0.69", @@ -1131,14 +1144,14 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.17.11" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" +checksum = "70a646d946d06bedbbc4cac4c218acf4bbf2d87757a784857025f4d447e4e1cd" dependencies = [ - "console", - "number_prefix", + "console 0.16.0", "portable-atomic", "unicode-width", + "unit-prefix", "web-time", ] @@ -1413,7 +1426,7 @@ dependencies = [ "auth-git2", "chacha20poly1305", "clap", - "console", + "console 0.16.0", "dialoguer", "directories", "futures", @@ -1548,12 +1561,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "object" version = "0.36.7" @@ -2855,6 +2862,12 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" +[[package]] +name = "unit-prefix" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "323402cff2dd658f39ca17c789b502021b3f18707c91cdf22e3838e1b4023817" + [[package]] name = "universal-hash" version = "0.5.1" diff --git a/Cargo.toml b/Cargo.toml index 4311dd7..2b7b529 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,12 +17,12 @@ async-trait = "0.1.88" auth-git2 = "0.5.8" chacha20poly1305 = "0.10.1" clap = { version = "4.5.41", features = ["derive"] } -console = "0.15.11" +console = "0.16.0" dialoguer = "0.11.0" directories = "6.0.0" futures = "0.3.31" git2 = "0.20.2" -indicatif = "0.17.11" +indicatif = "0.18.0" nostr = { version = "0.41.0", features = ["nip05", "nip49"] } nostr-connect = "0.41.0" nostr-database = "0.41.0" -- cgit v1.2.3 From 9340ff9678424e95fd5fa2643128eb31e2386108 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 16 Jul 2025 09:45:23 +0100 Subject: chore: bump rust-nostr v42 no breaking changes this time! --- Cargo.lock | 37 +++++++++++++++---------------------- Cargo.toml | 12 ++++++------ test_utils/Cargo.toml | 8 ++++---- 3 files changed, 25 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 40ac76f..b45930a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1333,9 +1333,9 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "lru" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" +checksum = "9f8cc7106155f10bdf99a6f379688f543ad6596a415375b36a59a054ceda1198" [[package]] name = "lru-slab" @@ -1404,12 +1404,6 @@ dependencies = [ "getrandom 0.2.16", ] -[[package]] -name = "negentropy" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e664971378a3987224f7a0e10059782035e89899ae403718ee07de85bec42afe" - [[package]] name = "negentropy" version = "0.5.0" @@ -1466,9 +1460,9 @@ dependencies = [ [[package]] name = "nostr" -version = "0.41.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95d3f2f0d564cce3ebe09bb1343af67d88c60108cedc518a307dfdf6e3f503b6" +checksum = "d193102a62a22b61f9a61b9df54fb19ebab8c1763d088fbb9a6f0f57000fba2d" dependencies = [ "aes", "base64", @@ -1492,9 +1486,9 @@ dependencies = [ [[package]] name = "nostr-connect" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387abe557e3e43f7704f3c77a9d728de0987108a7f0b5de84f2948310ada11b1" +checksum = "29bcce69dcfe07f399cba2f304b2b0662764eaf35b8e227049c063b1d2ec37d0" dependencies = [ "async-utility", "nostr", @@ -1505,9 +1499,9 @@ dependencies = [ [[package]] name = "nostr-database" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de6dc456a11d26f99a932b6531d94c20cb2e274ada6eab1d2438e2fb9c944af5" +checksum = "b6aafe85dc7c039c399796043b76009fa744c3a45ac073a023932f7b7d91b1e7" dependencies = [ "flatbuffers", "lru", @@ -1517,9 +1511,9 @@ dependencies = [ [[package]] name = "nostr-lmdb" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0f371f08cef23050bd15deef5fbb34cb24a96314c47462d0b2b9ce7f0902ef1" +checksum = "ed36ce93b11d1dea86b50f26a5bcd7317f237915eeed3948cf52c036ba52872a" dependencies = [ "async-utility", "heed", @@ -1531,16 +1525,15 @@ dependencies = [ [[package]] name = "nostr-relay-pool" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23994b7a613540de50d0b6ac5fcdfeb65d814b0dc5630875d3e1d3e8f05e8c7c" +checksum = "df4d5628d2444349570fb185b0c2d92cfdb7e68d62b13bf3e8a4348b5de7430b" dependencies = [ "async-utility", "async-wsocket", "atomic-destructor", "lru", - "negentropy 0.3.1", - "negentropy 0.5.0", + "negentropy", "nostr", "nostr-database", "tokio", @@ -1549,9 +1542,9 @@ dependencies = [ [[package]] name = "nostr-sdk" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58d201c49818ef560a67f9c26c415007da38b007943e7d1644ac55aa98c55a42" +checksum = "a1e928ba9ac2695fbe10b8aefda59f2abfeb23c10a0e86a0b3e0f6a27bb274a2" dependencies = [ "async-utility", "nostr", diff --git a/Cargo.toml b/Cargo.toml index 2b7b529..249fb02 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,12 +23,12 @@ directories = "6.0.0" futures = "0.3.31" git2 = "0.20.2" indicatif = "0.18.0" -nostr = { version = "0.41.0", features = ["nip05", "nip49"] } -nostr-connect = "0.41.0" -nostr-database = "0.41.0" -nostr-lmdb = "0.41.0" -nostr-relay-pool = "0.41.0" -nostr-sdk = "0.41.0" +nostr = { version = "0.42.2", features = ["nip05", "nip49"] } +nostr-connect = "0.42.0" +nostr-database = "0.42.0" +nostr-lmdb = "0.42.0" +nostr-relay-pool = "0.42.0" +nostr-sdk = "0.42.0" passwords = "3.1.16" qrcode = { version = "0.14.1", default-features = false } scrypt = "0.11.0" diff --git a/test_utils/Cargo.toml b/test_utils/Cargo.toml index 8cdb9d5..5d631b8 100644 --- a/test_utils/Cargo.toml +++ b/test_utils/Cargo.toml @@ -10,10 +10,10 @@ dialoguer = "0.11.0" directories = "6.0.0" futures = "0.3.31" git2 = "0.20.2" -nostr = "0.41.0" -nostr-database = "0.41.0" -nostr-lmdb = "0.41.0" -nostr-sdk = "0.41.0" +nostr = "0.42.2" +nostr-database = "0.42.0" +nostr-lmdb = "0.42.0" +nostr-sdk = "0.42.0" once_cell = "1.21.3" rand = "0.8" rexpect = { git = "https://github.com/rust-cli/rexpect.git", rev = "9eb61dd" } -- cgit v1.2.3 From 6e041a3626f04e591d5c22f71d3e4ab2b03bd7bb Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 16 Jul 2025 09:49:47 +0100 Subject: bump: cargo upgrade --incompatible upgrade packages with potentially incomaptible updates breaking changes don't impact ngit --- Cargo.lock | 21 +++++++++++++++++++-- test_utils/Cargo.toml | 4 ++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b45930a..04e14a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2553,13 +2553,13 @@ dependencies = [ "nostr-lmdb", "nostr-sdk", "once_cell", - "rand 0.8.5", + "rand 0.9.1", "rexpect", "sha2", "simple-websockets", "strip-ansi-escapes", "tokio", - "tungstenite 0.20.1", + "tungstenite 0.27.0", ] [[package]] @@ -2828,6 +2828,23 @@ dependencies = [ "utf-8", ] +[[package]] +name = "tungstenite" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" +dependencies = [ + "bytes", + "data-encoding", + "http 1.3.1", + "httparse", + "log", + "rand 0.9.1", + "sha1", + "thiserror 2.0.12", + "utf-8", +] + [[package]] name = "typenum" version = "1.18.0" diff --git a/test_utils/Cargo.toml b/test_utils/Cargo.toml index 5d631b8..8602416 100644 --- a/test_utils/Cargo.toml +++ b/test_utils/Cargo.toml @@ -15,10 +15,10 @@ nostr-database = "0.42.0" nostr-lmdb = "0.42.0" nostr-sdk = "0.42.0" once_cell = "1.21.3" -rand = "0.8" +rand = "0.9" rexpect = { git = "https://github.com/rust-cli/rexpect.git", rev = "9eb61dd" } simple-websockets = { git = "https://github.com/DanConwayDev/simple-websockets", branch= "auto-release-port" } strip-ansi-escapes = "0.2.1" tokio = { version = "1.46.1", features = ["full"] } -tungstenite = "0.20.1" +tungstenite = "0.27.0" sha2 = "0.10" -- cgit v1.2.3 From 092b9606ff2b721d858a5c7b2b27a2f9942b4bc4 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 16 Jul 2025 10:10:41 +0100 Subject: chore: nix flake update required running: `cargo fix --allow-dirty --allow-staged` `cargo clippy --fix --allow-dirty -- -D warnings` to fix problems and then manually fixing some too --- flake.lock | 12 ++++++------ src/lib/client.rs | 3 +-- src/lib/git/mod.rs | 7 ++----- src/lib/git/nostr_url.rs | 8 ++++---- src/lib/login/fresh.rs | 8 ++++---- test_utils/src/lib.rs | 10 +++++----- test_utils/src/relay.rs | 2 +- tests/git_remote_nostr/list.rs | 23 +++++++++++------------ tests/git_remote_nostr/push.rs | 12 ++++++------ tests/ngit_list.rs | 12 ++++-------- tests/ngit_login.rs | 18 ++++++++---------- tests/ngit_send.rs | 3 +-- 12 files changed, 53 insertions(+), 65 deletions(-) diff --git a/flake.lock b/flake.lock index b89753c..6b8a5ab 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1746141548, - "narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=", + "lastModified": 1752480373, + "narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f02fddb8acef29a8b32f10a335d44828d7825b78", + "rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08", "type": "github" }, "original": { @@ -62,11 +62,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1746153335, - "narHash": "sha256-vwKelhJJS8haCdH3t8uf96VFao7/YzJahPG5JLTO1PU=", + "lastModified": 1752633862, + "narHash": "sha256-Bj7ozT1+5P7NmvDcuAXJvj56txcXuAhk3Vd9FdWFQzk=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "ebc7823c3ffde594c7733113042b72694d996de9", + "rev": "8668ca94858206ac3db0860a9dec471de0d995f8", "type": "github" }, "original": { diff --git a/src/lib/client.rs b/src/lib/client.rs index 445bf77..16cfe30 100644 --- a/src/lib/client.rs +++ b/src/lib/client.rs @@ -794,8 +794,7 @@ pub async fn sign_event( if signer.backend() == SignerBackend::NostrConnect { let term = console::Term::stderr(); term.write_line(&format!( - "signing event ({}) with remote signer...", - description + "signing event ({description}) with remote signer..." ))?; let event = signer .sign_event(event_builder.build(signer.get_public_key().await?)) diff --git a/src/lib/git/mod.rs b/src/lib/git/mod.rs index 5bdb30a..464990b 100644 --- a/src/lib/git/mod.rs +++ b/src/lib/git/mod.rs @@ -888,7 +888,7 @@ pub fn save_git_config_item(git_repo: &Option<&Repo>, item: &str, value: &str) - git2::Config::open_default()? .open_global()? .set_str(item, value) - .context(format!("failed to set global git config item {}", item)) + .context(format!("failed to set global git config item {item}")) } } @@ -901,10 +901,7 @@ pub fn remove_git_config_item(git_repo: &Option<&Repo>, item: &str) -> Result Relay<'a> { pub fn shutdown_relay(port: u64) -> Result<()> { let mut counter = 0; - while let Ok((mut socket, _)) = tungstenite::connect(format!("ws://localhost:{}", port)) { + while let Ok((mut socket, _)) = tungstenite::connect(format!("ws://localhost:{port}")) { counter += 1; if counter == 1 { socket.write(tungstenite::Message::text("shut me down"))?; diff --git a/tests/git_remote_nostr/list.rs b/tests/git_remote_nostr/list.rs index 37cff30..c201054 100644 --- a/tests/git_remote_nostr/list.rs +++ b/tests/git_remote_nostr/list.rs @@ -41,7 +41,7 @@ mod without_state_announcement { let cli_tester_handle = std::thread::spawn(move || -> Result<()> { let mut p = cli_tester_after_fetch(&git_repo)?; p.send_line("list")?; - p.expect(format!("fetching {} ref list over filesystem...\r\n", source_path).as_str())?; + p.expect(format!("fetching {source_path} ref list over filesystem...\r\n").as_str())?; p.expect("list: connecting...\r\n\r\r\r")?; // println!("{}", p.expect_eventually("\r\n\r\n")?); let res = p.expect_eventually("\r\n\r\n")?; @@ -59,8 +59,8 @@ mod without_state_announcement { .collect::>(), HashSet::from([ "@refs/heads/main HEAD".to_string(), - format!("{} refs/heads/main", main_commit_id), - format!("{} refs/heads/vnext", vnext_commit_id), + format!("{main_commit_id} refs/heads/main"), + format!("{vnext_commit_id} refs/heads/vnext"), ]), ); Ok(()) @@ -120,7 +120,7 @@ mod with_state_announcement { let mut p = cli_tester_after_fetch(&git_repo)?; p.send_line("list")?; p.expect( - format!("fetching {} ref list over filesystem...\r\n", source_path).as_str(), + format!("fetching {source_path} ref list over filesystem...\r\n").as_str(), )?; p.expect("list: connecting...\r\n\r\r\r")?; // println!("{}", p.expect_eventually("\r\n\r\n")?); @@ -135,8 +135,8 @@ mod with_state_announcement { .collect::>(), HashSet::from([ "@refs/heads/main HEAD".to_string(), - format!("{} refs/heads/main", main_commit_id), - format!("{} refs/heads/example-branch", example_commit_id), + format!("{main_commit_id} refs/heads/main"), + format!("{example_commit_id} refs/heads/example-branch"), ]), ); @@ -204,13 +204,12 @@ mod with_state_announcement { let mut p = cli_tester_after_fetch(&git_repo)?; p.send_line("list")?; p.expect( - format!("fetching {} ref list over filesystem...\r\n", source_path).as_str(), + format!("fetching {source_path} ref list over filesystem...\r\n").as_str(), )?; p.expect("list: connecting...\r\n\r\r\r")?; p.expect( format!( - "WARNING: {} refs/heads/main is out of sync with nostr \r\n", - source_path + "WARNING: {source_path} refs/heads/main is out of sync with nostr \r\n" ) .as_str(), )?; @@ -231,8 +230,8 @@ mod with_state_announcement { .collect::>(), HashSet::from([ "@refs/heads/main HEAD".to_string(), - format!("{} refs/heads/main", main_original_commit_id), - format!("{} refs/heads/example-branch", example_commit_id), + format!("{main_original_commit_id} refs/heads/main"), + format!("{example_commit_id} refs/heads/example-branch"), ]), ); Ok(()) @@ -292,7 +291,7 @@ mod with_state_announcement { let mut p = cli_tester_after_fetch(&git_repo)?; p.send_line("list")?; p.expect( - format!("fetching {} ref list over filesystem...\r\n", source_path).as_str(), + format!("fetching {source_path} ref list over filesystem...\r\n").as_str(), )?; p.expect("list: connecting...\r\n\r\r\r")?; // println!("{}", p.expect_eventually("\r\n\r\n")?); diff --git a/tests/git_remote_nostr/push.rs b/tests/git_remote_nostr/push.rs index f46b0ea..9f5f492 100644 --- a/tests/git_remote_nostr/push.rs +++ b/tests/git_remote_nostr/push.rs @@ -981,7 +981,7 @@ async fn proposal_three_way_merge_commit_pushed_to_main_leads_to_status_event_is let mut p = CliTester::new_git_with_remote_helper_from_dir(&git_repo.dir, ["push"]); cli_expect_nostr_fetch(&mut p)?; - p.expect(format!("fetching {} ref list over filesystem...\r\n", source_path).as_str())?; + p.expect(format!("fetching {source_path} ref list over filesystem...\r\n").as_str())?; p.expect("list: connecting...\r\n")?; p.expect_eventually("merge commit ")?; // shorthand merge commit id appears in this gap @@ -1137,7 +1137,7 @@ async fn proposal_fast_forward_merge_commits_pushed_to_main_leads_to_status_even let mut p = CliTester::new_git_with_remote_helper_from_dir(&git_repo.dir, ["push"]); cli_expect_nostr_fetch(&mut p)?; - p.expect(format!("fetching {} ref list over filesystem...\r\n", source_path).as_str())?; + p.expect(format!("fetching {source_path} ref list over filesystem...\r\n").as_str())?; p.expect("list: connecting...\r\n")?; p.expect_eventually(format!( "fast-forward merge: create nostr proposal status event for {branch_name}\r\n" @@ -1323,7 +1323,7 @@ async fn proposal_commits_applied_and_pushed_to_main_leads_to_status_event_issue let mut p = CliTester::new_git_with_remote_helper_from_dir(&git_repo.dir, ["push"]); cli_expect_nostr_fetch(&mut p)?; - p.expect(format!("fetching {} ref list over filesystem...\r\n", source_path).as_str())?; + p.expect(format!("fetching {source_path} ref list over filesystem...\r\n").as_str())?; p.expect("list: connecting...\r\n")?; p.expect_eventually(format!( "applied commits from proposal: create nostr proposal status event for {branch_name}\r\n" ))?; @@ -1484,7 +1484,7 @@ async fn push_2_commits_to_existing_proposal() -> Result<()> { let mut p = CliTester::new_git_with_remote_helper_from_dir(&git_repo.dir, ["push"]); cli_expect_nostr_fetch(&mut p)?; - p.expect(format!("fetching {} ref list over filesystem...\r\n", source_path).as_str())?; + p.expect(format!("fetching {source_path} ref list over filesystem...\r\n").as_str())?; p.expect("list: connecting...\r\n\r\r\r")?; p.expect_eventually_and_print(format!("To {}\r\n", get_nostr_remote_url()?).as_str())?; let output = p.expect_end_eventually()?; @@ -1639,7 +1639,7 @@ async fn force_push_creates_proposal_revision() -> Result<()> { let mut p = CliTester::new_git_with_remote_helper_from_dir(&git_repo.dir, ["push", "--force"]); cli_expect_nostr_fetch(&mut p)?; - p.expect(format!("fetching {} ref list over filesystem...\r\n", source_path).as_str())?; + p.expect(format!("fetching {source_path} ref list over filesystem...\r\n").as_str())?; p.expect("list: connecting...\r\n")?; p.expect_eventually_and_print(format!("To {}\r\n", get_nostr_remote_url()?).as_str())?; let output = p.expect_end_eventually()?; @@ -1791,7 +1791,7 @@ async fn push_new_pr_branch_creates_proposal() -> Result<()> { branch_name, ]); cli_expect_nostr_fetch(&mut p)?; - p.expect(format!("fetching {} ref list over filesystem...\r\n", source_path).as_str())?; + p.expect(format!("fetching {source_path} ref list over filesystem...\r\n").as_str())?; p.expect("list: connecting...\r\n\r\r\r")?; p.expect_eventually_and_print(format!("To {}\r\n", get_nostr_remote_url()?).as_str())?; let output = p.expect_end_eventually()?; diff --git a/tests/ngit_list.rs b/tests/ngit_list.rs index bb742cf..c8f761a 100644 --- a/tests/ngit_list.rs +++ b/tests/ngit_list.rs @@ -217,8 +217,7 @@ mod when_main_branch_is_uptodate { ])?; c.succeeds_with(0, true, None)?; p.expect(format!( - "checked out proposal as 'pr/{}(", - FEATURE_BRANCH_NAME_1, + "checked out proposal as 'pr/{FEATURE_BRANCH_NAME_1}(", ))?; p.expect_end_eventually_with(")' branch\r\n")?; @@ -334,8 +333,7 @@ mod when_main_branch_is_uptodate { ])?; c.succeeds_with(0, true, Some(0))?; p.expect(format!( - "checked out proposal as 'pr/{}(", - FEATURE_BRANCH_NAME_3, + "checked out proposal as 'pr/{FEATURE_BRANCH_NAME_3}(", ))?; p.expect_end_eventually_with(")' branch\r\n")?; @@ -530,8 +528,7 @@ mod when_main_branch_is_uptodate { ])?; c.succeeds_with(0, true, Some(0))?; p.expect(format!( - "checked out proposal as 'pr/{}(", - FEATURE_BRANCH_NAME_4, + "checked out proposal as 'pr/{FEATURE_BRANCH_NAME_4}(", ))?; p.expect_end_eventually_with(")' branch\r\n")?; @@ -756,8 +753,7 @@ mod when_main_branch_is_uptodate { ])?; c.succeeds_with(0, true, Some(0))?; p.expect(format!( - "checked out proposal as 'pr/{}(", - FEATURE_BRANCH_NAME_1, + "checked out proposal as 'pr/{FEATURE_BRANCH_NAME_1}(", ))?; p.expect_end_eventually_with(")' branch\r\n")?; diff --git a/tests/ngit_login.rs b/tests/ngit_login.rs index b1e2676..09e40f1 100644 --- a/tests/ngit_login.rs +++ b/tests/ngit_login.rs @@ -110,9 +110,7 @@ mod with_relays { p.expect("failed to extract account name from account metadata...\r\n")?; - p.expect_end_with( - format!("logged in as {}\r\n", TEST_KEY_1_NPUB).as_str(), - )?; + p.expect_end_with(format!("logged in as {TEST_KEY_1_NPUB}\r\n").as_str())?; for p in [51, 52] { shutdown_relay(8000 + p)?; } @@ -572,7 +570,7 @@ mod with_offline_flag { p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; - p.expect_end_with(format!("logged in as {}\r\n", TEST_KEY_1_NPUB).as_str()) + p.expect_end_with(format!("logged in as {TEST_KEY_1_NPUB}\r\n").as_str()) } #[test] @@ -587,7 +585,7 @@ mod with_offline_flag { p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; - p.expect_end_with(format!("logged in as {}\r\n", TEST_KEY_1_NPUB).as_str()) + p.expect_end_with(format!("logged in as {TEST_KEY_1_NPUB}\r\n").as_str()) } mod when_invalid_nsec { @@ -621,7 +619,7 @@ mod with_offline_flag { p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; - p.expect_end_with(format!("logged in as {}\r\n", TEST_KEY_1_NPUB).as_str()) + p.expect_end_with(format!("logged in as {TEST_KEY_1_NPUB}\r\n").as_str()) } } } @@ -643,7 +641,7 @@ mod with_offline_flag { p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; p.expect_end_with( - format!("logged in as {} via cli arguments\r\n", TEST_KEY_1_NPUB).as_str(), + format!("logged in as {TEST_KEY_1_NPUB} via cli arguments\r\n").as_str(), ) } @@ -682,7 +680,7 @@ mod with_offline_flag { p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; p.expect_end_with( - format!("logged in as {} via cli arguments\r\n", TEST_KEY_1_NPUB).as_str(), + format!("logged in as {TEST_KEY_1_NPUB} via cli arguments\r\n").as_str(), ) } @@ -701,7 +699,7 @@ mod with_offline_flag { p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; p.expect_end_with( - format!("logged in as {} via cli arguments\r\n", TEST_KEY_1_NPUB).as_str(), + format!("logged in as {TEST_KEY_1_NPUB} via cli arguments\r\n").as_str(), ) } @@ -724,7 +722,7 @@ mod with_offline_flag { p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; p.expect_end_with( - format!("logged in as {} via cli arguments\r\n", TEST_KEY_2_NPUB).as_str(), + format!("logged in as {TEST_KEY_2_NPUB} via cli arguments\r\n").as_str(), ) } } diff --git a/tests/ngit_send.rs b/tests/ngit_send.rs index 0337a6e..5cc5291 100644 --- a/tests/ngit_send.rs +++ b/tests/ngit_send.rs @@ -1361,8 +1361,7 @@ mod root_proposal_specified_using_in_reply_to_with_range_of_head_2_and_cover_let p.expect("updates: 1 new maintainer, 1 announcement update, 1 proposal\r\n")?; let proposal_root_bech32 = get_pretend_proposal_root_event().id.to_bech32().unwrap(); p.expect(format!( - "creating proposal revision for: {}\r\n", - proposal_root_bech32, + "creating proposal revision for: {proposal_root_bech32}\r\n", ))?; p.expect("creating proposal from 2 commits:\r\n")?; p.expect("fe973a8 add t4.md\r\n")?; -- cgit v1.2.3 From ac53bca7e315848864ff9e51703720b5b466bc42 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 16 Jul 2025 10:59:20 +0100 Subject: chore: bump nightly rustfmt to latest available and apply fmt fixes --- flake.nix | 2 +- src/bin/git_remote_nostr/push.rs | 36 ++-- src/bin/git_remote_nostr/utils.rs | 13 +- src/bin/ngit/sub_commands/list.rs | 13 +- src/bin/ngit/sub_commands/send.rs | 7 +- src/lib/client.rs | 132 +++++++------ src/lib/git/identify_ahead_behind.rs | 8 +- src/lib/git/mod.rs | 83 ++++---- src/lib/git_events.rs | 16 +- src/lib/login/mod.rs | 14 +- src/lib/repo_ref.rs | 13 +- src/lib/repo_state.rs | 7 +- test_utils/src/lib.rs | 204 +++++++++++-------- test_utils/src/relay.rs | 8 +- tests/git_remote_nostr/push.rs | 30 ++- tests/ngit_init.rs | 36 ++-- tests/ngit_list.rs | 366 +++++++++++++++++++++-------------- tests/ngit_login.rs | 350 +++++++++++++++++++-------------- tests/ngit_send.rs | 246 ++++++++++++++--------- 19 files changed, 951 insertions(+), 633 deletions(-) diff --git a/flake.nix b/flake.nix index ff528e5..9ca8a7d 100644 --- a/flake.nix +++ b/flake.nix @@ -19,7 +19,7 @@ # ideally this wouldn't be pinned to a specific nightly version but # selectLatestNightlyWith isn't support with mixed toolchains # https://github.com/oxalica/rust-overlay/issues/136 - (lib.hiPrio rust-bin.nightly."2024-12-15".rustfmt) + (lib.hiPrio rust-bin.nightly."2025-07-16".rustfmt) # (rust-bin.stable.latest.override { extensions = [ "rust-analyzer" ]; }) rust-bin.stable.latest.default ]; diff --git a/src/bin/git_remote_nostr/push.rs b/src/bin/git_remote_nostr/push.rs index 04fc4d8..9ff8af0 100644 --- a/src/bin/git_remote_nostr/push.rs +++ b/src/bin/git_remote_nostr/push.rs @@ -1049,10 +1049,13 @@ async fn get_merged_status_events( let (ahead, _) = git_repo.get_commits_ahead_behind(&tip_of_remote_branch, &tip_of_pushed_branch)?; - let commit_events = get_events_from_local_cache(git_repo.get_path()?, vec![ - nostr::Filter::default().kind(nostr::Kind::GitPatch), - // TODO: limit by repo_ref - ]) + let commit_events = get_events_from_local_cache( + git_repo.get_path()?, + vec![ + nostr::Filter::default().kind(nostr::Kind::GitPatch), + // TODO: limit by repo_ref + ], + ) .await?; let merged_proposals_info = @@ -1129,9 +1132,12 @@ async fn get_merged_proposals_info( proposals.entry(proposal_id).or_default(); // ignore revisions without all the merged commits if entry_revision_id == &revision_id { - merged_patches.insert(*commit_hash, MergedPRCommitType::PatchCommit { - event_id: patch_event.id, - }); + merged_patches.insert( + *commit_hash, + MergedPRCommitType::PatchCommit { + event_id: patch_event.id, + }, + ); } } } @@ -1156,9 +1162,12 @@ async fn get_merged_proposals_info( proposals.entry(proposal_id).or_default(); // ignore revisions without all the applied commits if entry_revision_id == &revision_id { - merged_patches.insert(*commit_hash, MergedPRCommitType::PatchApplied { - event_id: patch_event.id, - }); + merged_patches.insert( + *commit_hash, + MergedPRCommitType::PatchApplied { + event_id: patch_event.id, + }, + ); } } } @@ -1405,9 +1414,10 @@ async fn get_proposal_and_revision_root_from_patch( .clone(), )?; - get_events_from_local_cache(git_repo.get_path()?, vec![ - nostr::Filter::default().id(proposal_or_revision_id), - ]) + get_events_from_local_cache( + git_repo.get_path()?, + vec![nostr::Filter::default().id(proposal_or_revision_id)], + ) .await? .first() .unwrap() diff --git a/src/bin/git_remote_nostr/utils.rs b/src/bin/git_remote_nostr/utils.rs index f7e688e..dc75872 100644 --- a/src/bin/git_remote_nostr/utils.rs +++ b/src/bin/git_remote_nostr/utils.rs @@ -108,11 +108,14 @@ pub async fn get_open_or_draft_proposals( .collect(); let statuses: Vec = { - let mut statuses = get_events_from_local_cache(git_repo_path, vec![ - nostr::Filter::default() - .kinds(status_kinds().clone()) - .events(proposals.iter().map(|e| e.id)), - ]) + let mut statuses = get_events_from_local_cache( + git_repo_path, + vec![ + nostr::Filter::default() + .kinds(status_kinds().clone()) + .events(proposals.iter().map(|e| e.id)), + ], + ) .await?; statuses.sort_by_key(|e| e.created_at); statuses.reverse(); diff --git a/src/bin/ngit/sub_commands/list.rs b/src/bin/ngit/sub_commands/list.rs index 2c91e66..0330be1 100644 --- a/src/bin/ngit/sub_commands/list.rs +++ b/src/bin/ngit/sub_commands/list.rs @@ -49,11 +49,14 @@ pub async fn launch() -> Result<()> { } let statuses: Vec = { - let mut statuses = get_events_from_local_cache(git_repo_path, vec![ - nostr::Filter::default() - .kinds(status_kinds().clone()) - .events(proposals_and_revisions.iter().map(|e| e.id)), - ]) + let mut statuses = get_events_from_local_cache( + git_repo_path, + vec![ + nostr::Filter::default() + .kinds(status_kinds().clone()) + .events(proposals_and_revisions.iter().map(|e| e.id)), + ], + ) .await?; statuses.sort_by_key(|e| e.created_at); statuses.reverse(); diff --git a/src/bin/ngit/sub_commands/send.rs b/src/bin/ngit/sub_commands/send.rs index 5a5acc8..c84e339 100644 --- a/src/bin/ngit/sub_commands/send.rs +++ b/src/bin/ngit/sub_commands/send.rs @@ -378,9 +378,10 @@ async fn get_root_proposal_id_and_mentions_from_in_reply_to( public_key: _, uppercase: false, }) => { - let events = get_events_from_local_cache(git_repo_path, vec![ - nostr::Filter::new().id(*event_id), - ]) + let events = get_events_from_local_cache( + git_repo_path, + vec![nostr::Filter::new().id(*event_id)], + ) .await?; if let Some(first) = events.iter().find(|e| e.id.eq(event_id)) { diff --git a/src/lib/client.rs b/src/lib/client.rs index 16cfe30..9253022 100644 --- a/src/lib/client.rs +++ b/src/lib/client.rs @@ -1103,16 +1103,18 @@ pub async fn get_state_from_cache( ) -> Result { if let Some(git_repo_path) = git_repo_path { RepoState::try_from( - get_events_from_local_cache(git_repo_path, vec![get_filter_state_events( - &repo_ref.coordinates(), - )]) + get_events_from_local_cache( + git_repo_path, + vec![get_filter_state_events(&repo_ref.coordinates())], + ) .await?, ) } else { RepoState::try_from( - get_event_from_global_cache(git_repo_path, vec![get_filter_state_events( - &repo_ref.coordinates(), - )]) + get_event_from_global_cache( + git_repo_path, + vec![get_filter_state_events(&repo_ref.coordinates())], + ) .await?, ) } @@ -1178,17 +1180,20 @@ async fn create_relays_request( } if let Some(git_repo_path) = git_repo_path { - for event in &get_events_from_local_cache(git_repo_path, vec![ - nostr::Filter::default() - .kinds(vec![Kind::GitPatch]) - .custom_tags( - SingleLetterTag::lowercase(nostr_sdk::Alphabet::A), - repo_coordinates_without_relays - .iter() - .map(|c| c.coordinate.to_string()) - .collect::>(), - ), - ]) + for event in &get_events_from_local_cache( + git_repo_path, + vec![ + nostr::Filter::default() + .kinds(vec![Kind::GitPatch]) + .custom_tags( + SingleLetterTag::lowercase(nostr_sdk::Alphabet::A), + repo_coordinates_without_relays + .iter() + .map(|c| c.coordinate.to_string()) + .collect::>(), + ), + ], + ) .await? { if event_is_patch_set_root(event) || event_is_revision_root(event) { @@ -1198,11 +1203,11 @@ async fn create_relays_request( } } - let profile_events = - get_event_from_global_cache(git_repo_path, vec![get_filter_contributor_profiles( - contributors.clone(), - )]) - .await?; + let profile_events = get_event_from_global_cache( + git_repo_path, + vec![get_filter_contributor_profiles(contributors.clone())], + ) + .await?; for c in &contributors { if let Some(event) = profile_events .iter() @@ -1768,17 +1773,20 @@ pub async fn get_proposals_and_revisions_from_cache( git_repo_path: &Path, repo_coordinates: HashSet, ) -> Result> { - let mut proposals = get_events_from_local_cache(git_repo_path, vec![ - nostr::Filter::default() - .kind(nostr::Kind::GitPatch) - .custom_tags( - nostr::SingleLetterTag::lowercase(nostr_sdk::Alphabet::A), - repo_coordinates - .iter() - .map(|c| c.coordinate.to_string()) - .collect::>(), - ), - ]) + let mut proposals = get_events_from_local_cache( + git_repo_path, + vec![ + nostr::Filter::default() + .kind(nostr::Kind::GitPatch) + .custom_tags( + nostr::SingleLetterTag::lowercase(nostr_sdk::Alphabet::A), + repo_coordinates + .iter() + .map(|c| c.coordinate.to_string()) + .collect::>(), + ), + ], + ) .await? .iter() .filter(|e| event_is_patch_set_root(e)) @@ -1794,23 +1802,29 @@ pub async fn get_all_proposal_patch_events_from_cache( repo_ref: &RepoRef, proposal_id: &nostr::EventId, ) -> Result> { - let mut commit_events = get_events_from_local_cache(git_repo_path, vec![ - nostr::Filter::default() - .kind(nostr::Kind::GitPatch) - .event(*proposal_id), - nostr::Filter::default() - .kind(nostr::Kind::GitPatch) - .id(*proposal_id), - ]) + let mut commit_events = get_events_from_local_cache( + git_repo_path, + vec![ + nostr::Filter::default() + .kind(nostr::Kind::GitPatch) + .event(*proposal_id), + nostr::Filter::default() + .kind(nostr::Kind::GitPatch) + .id(*proposal_id), + ], + ) .await?; - let permissioned_users: HashSet = [repo_ref.maintainers.clone(), vec![ - commit_events - .iter() - .find(|e| e.id.eq(proposal_id)) - .context("proposal not in cache")? - .pubkey, - ]] + let permissioned_users: HashSet = [ + repo_ref.maintainers.clone(), + vec![ + commit_events + .iter() + .find(|e| e.id.eq(proposal_id)) + .context("proposal not in cache")? + .pubkey, + ], + ] .concat() .iter() .copied() @@ -1824,12 +1838,15 @@ pub async fn get_all_proposal_patch_events_from_cache( .collect(); if !revision_roots.is_empty() { - for event in get_events_from_local_cache(git_repo_path, vec![ - nostr::Filter::default() - .kind(nostr::Kind::GitPatch) - .events(revision_roots) - .authors(permissioned_users.clone()), - ]) + for event in get_events_from_local_cache( + git_repo_path, + vec![ + nostr::Filter::default() + .kind(nostr::Kind::GitPatch) + .events(revision_roots) + .authors(permissioned_users.clone()), + ], + ) .await? { commit_events.push(event); @@ -1844,9 +1861,10 @@ pub async fn get_all_proposal_patch_events_from_cache( } pub async fn get_event_from_cache_by_id(git_repo: &Repo, event_id: &EventId) -> Result { - Ok(get_events_from_local_cache(git_repo.get_path()?, vec![ - nostr::Filter::default().id(*event_id), - ]) + Ok(get_events_from_local_cache( + git_repo.get_path()?, + vec![nostr::Filter::default().id(*event_id)], + ) .await? .first() .context("failed to find event in cache")? diff --git a/src/lib/git/identify_ahead_behind.rs b/src/lib/git/identify_ahead_behind.rs index baea687..d736522 100644 --- a/src/lib/git/identify_ahead_behind.rs +++ b/src/lib/git/identify_ahead_behind.rs @@ -184,10 +184,10 @@ mod tests { identify_ahead_behind(&git_repo, &Some("feature".to_string()), &None)?; assert_eq!(from_branch, "feature"); - assert_eq!(ahead, vec![ - oid_to_sha1(&feature_oid), - oid_to_sha1(&dev_oid_first) - ]); + assert_eq!( + ahead, + vec![oid_to_sha1(&feature_oid), oid_to_sha1(&dev_oid_first)] + ); assert_eq!(to_branch, "main"); assert_eq!(behind, vec![]); diff --git a/src/lib/git/mod.rs b/src/lib/git/mod.rs index 464990b..d4bf2f5 100644 --- a/src/lib/git/mod.rs +++ b/src/lib/git/mod.rs @@ -1490,10 +1490,10 @@ mod tests { &oid_to_sha1(&feature_oid), )?; assert_eq!(ahead, vec![]); - assert_eq!(behind, vec![ - oid_to_sha1(&behind_2_oid), - oid_to_sha1(&behind_1_oid), - ],); + assert_eq!( + behind, + vec![oid_to_sha1(&behind_2_oid), oid_to_sha1(&behind_1_oid),], + ); Ok(()) } @@ -1515,10 +1515,10 @@ mod tests { &oid_to_sha1(&main_oid), &oid_to_sha1(&ahead_2_oid), )?; - assert_eq!(ahead, vec![ - oid_to_sha1(&ahead_2_oid), - oid_to_sha1(&ahead_1_oid), - ],); + assert_eq!( + ahead, + vec![oid_to_sha1(&ahead_2_oid), oid_to_sha1(&ahead_1_oid),], + ); assert_eq!(behind, vec![]); Ok(()) } @@ -1547,14 +1547,14 @@ mod tests { &oid_to_sha1(&behind_2_oid), &oid_to_sha1(&ahead_2_oid), )?; - assert_eq!(ahead, vec![ - oid_to_sha1(&ahead_2_oid), - oid_to_sha1(&ahead_1_oid) - ],); - assert_eq!(behind, vec![ - oid_to_sha1(&behind_2_oid), - oid_to_sha1(&behind_1_oid) - ],); + assert_eq!( + ahead, + vec![oid_to_sha1(&ahead_2_oid), oid_to_sha1(&ahead_1_oid)], + ); + assert_eq!( + behind, + vec![oid_to_sha1(&behind_2_oid), oid_to_sha1(&behind_1_oid)], + ); Ok(()) } } @@ -2209,9 +2209,10 @@ mod tests { test_repo.populate_with_test_branch()?; test_repo.checkout("main")?; - assert_eq!(git_repo.parse_starting_commits("HEAD~1")?, vec![ - str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")? - ],); + assert_eq!( + git_repo.parse_starting_commits("HEAD~1")?, + vec![str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?], + ); Ok(()) } @@ -2221,9 +2222,10 @@ mod tests { let git_repo = Repo::from_path(&test_repo.dir)?; test_repo.populate_with_test_branch()?; - assert_eq!(git_repo.parse_starting_commits("HEAD~1")?, vec![ - str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")? - ],); + assert_eq!( + git_repo.parse_starting_commits("HEAD~1")?, + vec![str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")?], + ); Ok(()) } } @@ -2237,10 +2239,13 @@ mod tests { test_repo.populate_with_test_branch()?; test_repo.checkout("main")?; - assert_eq!(git_repo.parse_starting_commits("HEAD~2")?, vec![ - str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?, - str_to_sha1("af474d8d271490e5c635aad337abdc050034b16a")?, - ],); + assert_eq!( + git_repo.parse_starting_commits("HEAD~2")?, + vec![ + str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?, + str_to_sha1("af474d8d271490e5c635aad337abdc050034b16a")?, + ], + ); Ok(()) } } @@ -2253,11 +2258,14 @@ mod tests { let git_repo = Repo::from_path(&test_repo.dir)?; test_repo.populate_with_test_branch()?; - assert_eq!(git_repo.parse_starting_commits("HEAD~3")?, vec![ - str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")?, - str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?, - str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?, - ],); + assert_eq!( + git_repo.parse_starting_commits("HEAD~3")?, + vec![ + str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")?, + str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?, + str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?, + ], + ); Ok(()) } } @@ -2271,11 +2279,14 @@ mod tests { test_repo.populate_with_test_branch()?; test_repo.checkout("main")?; - assert_eq!(git_repo.parse_starting_commits("af474d8..a23e6b0")?, vec![ - str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?, - str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?, - str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?, - ],); + assert_eq!( + git_repo.parse_starting_commits("af474d8..a23e6b0")?, + vec![ + str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?, + str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?, + str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?, + ], + ); Ok(()) } } diff --git a/src/lib/git_events.rs b/src/lib/git_events.rs index 3ce7637..69406c1 100644 --- a/src/lib/git_events.rs +++ b/src/lib/git_events.rs @@ -134,14 +134,15 @@ pub async fn generate_patch_event( // code that makes it into the main branch, assuming // the commit id is correct Tag::from_standardized(TagStandard::Reference(commit.to_string())), - Tag::custom(TagKind::Custom(std::borrow::Cow::Borrowed("alt")), vec![ - format!( + Tag::custom( + TagKind::Custom(std::borrow::Cow::Borrowed("alt")), + vec![format!( "git patch: {}", git_repo .get_commit_message_summary(commit) .unwrap_or_default() - ), - ]), + )], + ), ], if let Some(thread_event_id) = thread_event_id { vec![Tag::from_standardized(nostr_sdk::TagStandard::Event { @@ -205,9 +206,10 @@ pub async fn generate_patch_event( .collect(), vec![ // a fallback is now in place to extract this from the patch - Tag::custom(TagKind::Custom(std::borrow::Cow::Borrowed("commit")), vec![ - commit.to_string(), - ]), + Tag::custom( + TagKind::Custom(std::borrow::Cow::Borrowed("commit")), + vec![commit.to_string()], + ), // this is required as patches cannot be relied upon to include the 'base // commit' Tag::custom( diff --git a/src/lib/login/mod.rs b/src/lib/login/mod.rs index bfc7328..3fcd755 100644 --- a/src/lib/login/mod.rs +++ b/src/lib/login/mod.rs @@ -79,11 +79,15 @@ fn print_logged_in_as( "failed to find your relay list. consider using another nostr client to create one to enhance your nostr experience." ); } - eprintln!("logged in as {}{}", user_ref.metadata.name, match source { - SignerInfoSource::CommandLineArguments => " via cli arguments", - SignerInfoSource::GitLocal => " to local repository", - SignerInfoSource::GitGlobal => "", - }); + eprintln!( + "logged in as {}{}", + user_ref.metadata.name, + match source { + SignerInfoSource::CommandLineArguments => " via cli arguments", + SignerInfoSource::GitLocal => " to local repository", + SignerInfoSource::GitGlobal => "", + } + ); Ok(()) } diff --git a/src/lib/repo_ref.rs b/src/lib/repo_ref.rs index c1fc288..0236e34 100644 --- a/src/lib/repo_ref.rs +++ b/src/lib/repo_ref.rs @@ -578,11 +578,14 @@ pub fn save_repo_config_to_yaml( .context("failed to convert public key into npub")?, ); } - serde_yaml::to_writer(file, &RepoConfigYaml { - identifier: Some(identifier), - maintainers: maintainers_npubs, - relays, - }) + serde_yaml::to_writer( + file, + &RepoConfigYaml { + identifier: Some(identifier), + maintainers: maintainers_npubs, + relays, + }, + ) .context("failed to write maintainers to maintainers.yaml file serde_yaml") } diff --git a/src/lib/repo_state.rs b/src/lib/repo_state.rs index 04f3cf2..345f05c 100644 --- a/src/lib/repo_state.rs +++ b/src/lib/repo_state.rs @@ -56,9 +56,10 @@ impl RepoState { add_head(&mut state); let mut tags = vec![Tag::identifier(identifier.clone())]; for (name, value) in &state { - tags.push(Tag::custom(nostr_sdk::TagKind::Custom(name.into()), vec![ - value.clone(), - ])); + tags.push(Tag::custom( + nostr_sdk::TagKind::Custom(name.into()), + vec![value.clone()], + )); } let event = sign_event( EventBuilder::new(STATE_KIND, "").tags(tags), diff --git a/test_utils/src/lib.rs b/test_utils/src/lib.rs index 1312610..7d79cff 100644 --- a/test_utils/src/lib.rs +++ b/test_utils/src/lib.rs @@ -544,10 +544,14 @@ impl CliTesterConfirmPrompt<'_> { let mut s = String::new(); self.tester .formatter - .format_confirm_prompt_selection(&mut s, self.prompt.as_str(), match input { - None => self.default, - Some(_) => input, - }) + .format_confirm_prompt_selection( + &mut s, + self.prompt.as_str(), + match input { + None => self.default, + Some(_) => input, + }, + ) .expect("diagluer theme formatter should succeed"); if !s.contains(self.prompt.as_str()) { panic!("dialoguer must be broken as formatted prompt success doesnt contain prompt"); @@ -1017,10 +1021,13 @@ where cmd.env("RUST_BACKTRACE", "0"); cmd.args(args); // using branch for PR https://github.com/rust-cli/rexpect/pull/103 to strip ansi escape codes - rexpect::session::spawn_with_options(cmd, Options { - timeout_ms: Some(timeout_ms), - strip_ansi_escape_codes: true, - }) + rexpect::session::spawn_with_options( + cmd, + Options { + timeout_ms: Some(timeout_ms), + strip_ansi_escape_codes: true, + }, + ) } pub fn rexpect_with_from_dir( @@ -1038,10 +1045,13 @@ where cmd.current_dir(dir); cmd.args(args); // using branch for PR https://github.com/rust-cli/rexpect/pull/103 to strip ansi escape codes - rexpect::session::spawn_with_options(cmd, Options { - timeout_ms: Some(timeout_ms), - strip_ansi_escape_codes: true, - }) + rexpect::session::spawn_with_options( + cmd, + Options { + timeout_ms: Some(timeout_ms), + strip_ansi_escape_codes: true, + }, + ) } pub fn remote_helper_rexpect_with_from_dir( @@ -1056,10 +1066,13 @@ pub fn remote_helper_rexpect_with_from_dir( cmd.current_dir(dir); cmd.args([dir.as_os_str().to_str().unwrap(), nostr_remote_url]); // using branch for PR https://github.com/rust-cli/rexpect/pull/103 to strip ansi escape codes - rexpect::session::spawn_with_options(cmd, Options { - timeout_ms: Some(timeout_ms), - strip_ansi_escape_codes: true, - }) + rexpect::session::spawn_with_options( + cmd, + Options { + timeout_ms: Some(timeout_ms), + strip_ansi_escape_codes: true, + }, + ) } pub fn git_with_remote_helper_rexpect_with_from_dir( @@ -1103,10 +1116,13 @@ where cmd.current_dir(dir); cmd.args(args); // using branch for PR https://github.com/rust-cli/rexpect/pull/103 to strip ansi escape codes - rexpect::session::spawn_with_options(cmd, Options { - timeout_ms: Some(timeout_ms), - strip_ansi_escape_codes: true, - }) + rexpect::session::spawn_with_options( + cmd, + Options { + timeout_ms: Some(timeout_ms), + strip_ansi_escape_codes: true, + }, + ) .context("spawning failed") } @@ -1145,11 +1161,14 @@ pub fn get_proposal_branch_name( test_repo: &GitTestRepo, branch_name_in_event: &str, ) -> Result { - let events = block_on(get_events_from_cache(&test_repo.dir, vec![ - nostr::Filter::default() - .kind(nostr_sdk::Kind::GitPatch) - .hashtag("root"), - ]))?; + let events = block_on(get_events_from_cache( + &test_repo.dir, + vec![ + nostr::Filter::default() + .kind(nostr_sdk::Kind::GitPatch) + .hashtag("root"), + ], + ))?; get_proposal_branch_name_from_events(&events, branch_name_in_event) } @@ -1303,45 +1322,54 @@ pub fn cli_tester_create_proposal( create_and_populate_branch(test_repo, branch_name, prefix, false, None)?; std::thread::sleep(std::time::Duration::from_millis(1000)); if let Some(in_reply_to) = in_reply_to { - let mut p = CliTester::new_from_dir(&test_repo.dir, [ - "--nsec", - TEST_KEY_1_NSEC, - "--password", - TEST_PASSWORD, - "--disable-cli-spinners", - "send", - "HEAD~2", - "--no-cover-letter", - "--in-reply-to", - in_reply_to.as_str(), - ]); + let mut p = CliTester::new_from_dir( + &test_repo.dir, + [ + "--nsec", + TEST_KEY_1_NSEC, + "--password", + TEST_PASSWORD, + "--disable-cli-spinners", + "send", + "HEAD~2", + "--no-cover-letter", + "--in-reply-to", + in_reply_to.as_str(), + ], + ); p.expect_end_eventually()?; } else if let Some((title, description)) = cover_letter_title_and_description { - let mut p = CliTester::new_from_dir(&test_repo.dir, [ - "--nsec", - TEST_KEY_1_NSEC, - "--password", - TEST_PASSWORD, - "--disable-cli-spinners", - "send", - "HEAD~2", - "--title", - format!("\"{title}\"").as_str(), - "--description", - format!("\"{description}\"").as_str(), - ]); + let mut p = CliTester::new_from_dir( + &test_repo.dir, + [ + "--nsec", + TEST_KEY_1_NSEC, + "--password", + TEST_PASSWORD, + "--disable-cli-spinners", + "send", + "HEAD~2", + "--title", + format!("\"{title}\"").as_str(), + "--description", + format!("\"{description}\"").as_str(), + ], + ); p.expect_end_eventually()?; } else { - let mut p = CliTester::new_from_dir(&test_repo.dir, [ - "--nsec", - TEST_KEY_1_NSEC, - "--password", - TEST_PASSWORD, - "--disable-cli-spinners", - "send", - "HEAD~2", - "--no-cover-letter", - ]); + let mut p = CliTester::new_from_dir( + &test_repo.dir, + [ + "--nsec", + TEST_KEY_1_NSEC, + "--password", + TEST_PASSWORD, + "--disable-cli-spinners", + "send", + "HEAD~2", + "--no-cover-letter", + ], + ); p.expect_end_eventually()?; } Ok(()) @@ -1373,11 +1401,14 @@ pub fn use_ngit_list_to_download_and_checkout_proposal_branch( let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with( if proposal_number == 3 { 0 @@ -1389,12 +1420,15 @@ pub fn use_ngit_list_to_download_and_checkout_proposal_branch( true, None, )?; - let mut c = p.expect_choice("", vec![ - format!("create and checkout proposal branch (2 ahead 0 behind 'main')"), - format!("apply to current branch with `git am`"), - format!("download to ./patches"), - format!("back"), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("create and checkout proposal branch (2 ahead 0 behind 'main')"), + format!("apply to current branch with `git am`"), + format!("download to ./patches"), + format!("back"), + ], + )?; c.succeeds_with(0, true, Some(0))?; p.expect_end_eventually()?; Ok(()) @@ -1466,9 +1500,10 @@ fn get_first_proposal_event_id() -> Result { client.fetch_events( nostr::Filter::default() .kind(nostr::Kind::GitPatch) - .custom_tags(nostr::SingleLetterTag::lowercase(nostr::Alphabet::T), vec![ - "root", - ]), + .custom_tags( + nostr::SingleLetterTag::lowercase(nostr::Alphabet::T), + vec!["root"], + ), Duration::from_millis(500), ), )? @@ -1496,15 +1531,18 @@ pub fn create_proposals_with_first_revised_and_repo_with_unrevised_proposal_chec amend_last_commit(&originating_repo, "add some ammended-commit.md")?; - let mut p = CliTester::new_from_dir(&originating_repo.dir, [ - "--nsec", - TEST_KEY_1_NSEC, - "--password", - TEST_PASSWORD, - "--disable-cli-spinners", - "push", - "--force", - ]); + let mut p = CliTester::new_from_dir( + &originating_repo.dir, + [ + "--nsec", + TEST_KEY_1_NSEC, + "--password", + TEST_PASSWORD, + "--disable-cli-spinners", + "push", + "--force", + ], + ); p.expect_end_eventually()?; Ok((originating_repo, test_repo)) diff --git a/test_utils/src/relay.rs b/test_utils/src/relay.rs index 14778d9..b14f532 100644 --- a/test_utils/src/relay.rs +++ b/test_utils/src/relay.rs @@ -161,9 +161,11 @@ impl<'a> Relay<'a> { if let Some(listner) = self.req_listener { listner(self, client_id, subscription_id, vec![filter.clone()])?; } else { - self.respond_standard_req(client_id, &subscription_id, &[ - filter.clone() - ])?; + self.respond_standard_req( + client_id, + &subscription_id, + &[filter.clone()], + )?; // self.respond_eose(client_id, subscription_id)?; } // respond with events diff --git a/tests/git_remote_nostr/push.rs b/tests/git_remote_nostr/push.rs index 9f5f492..5912543 100644 --- a/tests/git_remote_nostr/push.rs +++ b/tests/git_remote_nostr/push.rs @@ -969,12 +969,10 @@ async fn proposal_three_way_merge_commit_pushed_to_main_leads_to_status_event_is std::fs::write(git_repo.dir.join("new.md"), "some content")?; git_repo.stage_and_commit("new.md")?; - CliTester::new_git_with_remote_helper_from_dir(&git_repo.dir, [ - "merge", - &branch_name, - "-m", - "proposal merge commit message", - ]) + CliTester::new_git_with_remote_helper_from_dir( + &git_repo.dir, + ["merge", &branch_name, "-m", "proposal merge commit message"], + ) .expect_end_eventually_and_print()?; let oid = git_repo.get_tip_of_local_branch("main")?; @@ -1125,12 +1123,10 @@ async fn proposal_fast_forward_merge_commits_pushed_to_main_leads_to_status_even git_repo.checkout_remote_branch(&branch_name)?; git_repo.checkout("refs/heads/main")?; - CliTester::new_git_with_remote_helper_from_dir(&git_repo.dir, [ - "merge", - &branch_name, - "-m", - "proposal merge commit message", - ]) + CliTester::new_git_with_remote_helper_from_dir( + &git_repo.dir, + ["merge", &branch_name, "-m", "proposal merge commit message"], + ) .expect_end_eventually_and_print()?; let oid = git_repo.get_tip_of_local_branch("main")?; @@ -1784,12 +1780,10 @@ async fn push_new_pr_branch_creates_proposal() -> Result<()> { std::fs::write(git_repo.dir.join("new2.md"), "some content")?; git_repo.stage_and_commit("new2.md")?; - let mut p = CliTester::new_git_with_remote_helper_from_dir(&git_repo.dir, [ - "push", - "-u", - "origin", - branch_name, - ]); + let mut p = CliTester::new_git_with_remote_helper_from_dir( + &git_repo.dir, + ["push", "-u", "origin", branch_name], + ); cli_expect_nostr_fetch(&mut p)?; p.expect(format!("fetching {source_path} ref list over filesystem...\r\n").as_str())?; p.expect("list: connecting...\r\n\r\r\r")?; diff --git a/tests/ngit_init.rs b/tests/ngit_init.rs index e49dbdd..1a23177 100644 --- a/tests/ngit_init.rs +++ b/tests/ngit_init.rs @@ -75,10 +75,14 @@ mod when_repo_not_previously_claimed { 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), @@ -197,10 +201,14 @@ mod when_repo_not_previously_claimed { 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), @@ -454,10 +462,14 @@ mod when_repo_not_previously_claimed { 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), diff --git a/tests/ngit_list.rs b/tests/ngit_list.rs index c8f761a..0547ad4 100644 --- a/tests/ngit_list.rs +++ b/tests/ngit_list.rs @@ -201,11 +201,14 @@ mod when_main_branch_is_uptodate { p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; let mut c = p.expect_choice("", vec![ format!( @@ -317,11 +320,14 @@ mod when_main_branch_is_uptodate { p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(0, true, None)?; let mut c = p.expect_choice("", vec![ format!( @@ -436,12 +442,15 @@ mod when_main_branch_is_uptodate { p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("add d3.md"), // commit msg title - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("add d3.md"), // commit msg title + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(0, true, None)?; let mut c = p.expect_choice("", vec![ format!( @@ -511,12 +520,15 @@ mod when_main_branch_is_uptodate { p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("add d3.md"), // commit msg title - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("add d3.md"), // commit msg title + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(0, true, None)?; let mut c = p.expect_choice("", vec![ format!( @@ -630,11 +642,14 @@ mod when_main_branch_is_uptodate { let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; let mut c = p.expect_choice("", vec![ format!( @@ -652,18 +667,24 @@ mod when_main_branch_is_uptodate { p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; - let mut c = p.expect_choice("", vec![ - format!("checkout proposal branch (2 ahead 0 behind 'main')"), - format!("apply to current branch with `git am`"), - format!("download to ./patches"), - format!("back"), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("checkout proposal branch (2 ahead 0 behind 'main')"), + format!("apply to current branch with `git am`"), + format!("download to ./patches"), + format!("back"), + ], + )?; c.succeeds_with(0, true, Some(0))?; p.expect_end_eventually_and_print()?; @@ -717,11 +738,14 @@ mod when_main_branch_is_uptodate { let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; let mut c = p.expect_choice("", vec![ format!( @@ -739,18 +763,24 @@ mod when_main_branch_is_uptodate { p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; - let mut c = p.expect_choice("", vec![ - format!("checkout proposal branch (2 ahead 0 behind 'main')"), - format!("apply to current branch with `git am`"), - format!("download to ./patches"), - format!("back"), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("checkout proposal branch (2 ahead 0 behind 'main')"), + format!("apply to current branch with `git am`"), + format!("download to ./patches"), + format!("back"), + ], + )?; c.succeeds_with(0, true, Some(0))?; p.expect(format!( "checked out proposal as 'pr/{FEATURE_BRANCH_NAME_1}(", @@ -823,18 +853,24 @@ mod when_main_branch_is_uptodate { let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; - let mut c = p.expect_choice("", vec![ - format!("checkout proposal branch and apply 1 appendments"), - format!("apply to current branch with `git am`"), - format!("download to ./patches"), - format!("back"), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("checkout proposal branch and apply 1 appendments"), + format!("apply to current branch with `git am`"), + format!("download to ./patches"), + format!("back"), + ], + )?; c.succeeds_with(0, true, Some(0))?; p.expect("checked out proposal branch and applied 1 appendments (2 ahead 0 behind 'main')\r\n")?; p.expect_end()?; @@ -893,18 +929,24 @@ mod when_main_branch_is_uptodate { let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; - let mut c = p.expect_choice("", vec![ - format!("checkout proposal branch and apply 1 appendments"), - format!("apply to current branch with `git am`"), - format!("download to ./patches"), - format!("back"), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("checkout proposal branch and apply 1 appendments"), + format!("apply to current branch with `git am`"), + format!("download to ./patches"), + format!("back"), + ], + )?; c.succeeds_with(0, true, Some(0))?; p.expect("checked out proposal branch and applied 1 appendments (2 ahead 0 behind 'main')\r\n")?; p.expect_end()?; @@ -1000,21 +1042,29 @@ mod when_main_branch_is_uptodate { let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; p.expect_eventually("--force`\r\n")?; - let mut c = p.expect_choice("", vec![ - format!("checkout local branch with unpublished changes"), - format!("discard unpublished changes and checkout new revision"), - format!("apply to current branch with `git am`"), - format!("download to ./patches"), - "back".to_string(), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("checkout local branch with unpublished changes"), + format!( + "discard unpublished changes and checkout new revision" + ), + format!("apply to current branch with `git am`"), + format!("download to ./patches"), + "back".to_string(), + ], + )?; c.succeeds_with(1, true, Some(0))?; p.expect_end_eventually_and_print()?; @@ -1071,11 +1121,14 @@ mod when_main_branch_is_uptodate { let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; p.expect("you have an amended/rebase version the proposal that is unpublished\r\n")?; p.expect("you have previously applied the latest version of the proposal (2 ahead 0 behind 'main') but your local proposal branch has amended or rebased it (2 ahead 0 behind 'main')\r\n")?; @@ -1084,13 +1137,18 @@ mod when_main_branch_is_uptodate { p.expect(" 2) run `ngit list` and checkout the latest published version of this proposal\r\n")?; p.expect("if you are confident in your changes consider running `ngit push --force`\r\n")?; - let mut c = p.expect_choice("", vec![ - format!("checkout local branch with unpublished changes"), - format!("discard unpublished changes and checkout new revision"), - format!("apply to current branch with `git am`"), - format!("download to ./patches"), - "back".to_string(), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("checkout local branch with unpublished changes"), + format!( + "discard unpublished changes and checkout new revision" + ), + format!("apply to current branch with `git am`"), + format!("download to ./patches"), + "back".to_string(), + ], + )?; c.succeeds_with(1, true, Some(1))?; p.expect_end_with("checked out latest version of proposal (2 ahead 0 behind 'main'), replacing unpublished version (2 ahead 0 behind 'main')\r\n")?; @@ -1168,20 +1226,26 @@ mod when_main_branch_is_uptodate { let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; p.expect( "local proposal branch exists with 1 unpublished commits on top of the most up-to-date version of the proposal (3 ahead 0 behind 'main')\r\n", )?; - let mut c = p.expect_choice("", vec![ - format!("checkout proposal branch with 1 unpublished commits"), - format!("back"), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("checkout proposal branch with 1 unpublished commits"), + format!("back"), + ], + )?; c.succeeds_with(0, true, Some(0))?; p.expect("checked out proposal branch with 1 unpublished commits (3 ahead 0 behind 'main')\r\n")?; p.expect_end()?; @@ -1244,20 +1308,26 @@ mod when_main_branch_is_uptodate { let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; p.expect( "local proposal branch exists with 1 unpublished commits on top of the most up-to-date version of the proposal (3 ahead 0 behind 'main')\r\n", )?; - let mut c = p.expect_choice("", vec![ - format!("checkout proposal branch with 1 unpublished commits"), - format!("back"), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("checkout proposal branch with 1 unpublished commits"), + format!("back"), + ], + )?; c.succeeds_with(0, true, Some(0))?; p.expect("checked out proposal branch with 1 unpublished commits (3 ahead 0 behind 'main')\r\n")?; p.expect_end()?; @@ -1340,20 +1410,26 @@ mod when_main_branch_is_uptodate { let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; p.expect("updated proposal available (2 ahead 0 behind 'main'). existing version is 2 ahead 1 behind 'main'\r\n")?; - let mut c = p.expect_choice("", vec![ - format!("checkout and overwrite existing proposal branch"), - format!("checkout existing outdated proposal branch"), - format!("apply to current branch with `git am`"), - format!("download to ./patches"), - format!("back"), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("checkout and overwrite existing proposal branch"), + format!("checkout existing outdated proposal branch"), + format!("apply to current branch with `git am`"), + format!("download to ./patches"), + format!("back"), + ], + )?; c.succeeds_with(0, true, Some(0))?; p.expect("checked out new version of proposal (2 ahead 0 behind 'main'), replacing old version (2 ahead 1 behind 'main')\r\n")?; p.expect_end()?; @@ -1407,20 +1483,26 @@ mod when_main_branch_is_uptodate { let mut p = CliTester::new_from_dir(&test_repo.dir, ["list"]); p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // some updates listed here - let mut c = p.expect_choice("all proposals", vec![ - format!("\"{PROPOSAL_TITLE_3}\""), - format!("\"{PROPOSAL_TITLE_2}\""), - format!("\"{PROPOSAL_TITLE_1}\""), - ])?; + let mut c = p.expect_choice( + "all proposals", + vec![ + format!("\"{PROPOSAL_TITLE_3}\""), + format!("\"{PROPOSAL_TITLE_2}\""), + format!("\"{PROPOSAL_TITLE_1}\""), + ], + )?; c.succeeds_with(2, true, None)?; p.expect("updated proposal available (2 ahead 0 behind 'main'). existing version is 2 ahead 1 behind 'main'\r\n")?; - let mut c = p.expect_choice("", vec![ - format!("checkout and overwrite existing proposal branch"), - format!("checkout existing outdated proposal branch"), - format!("apply to current branch with `git am`"), - format!("download to ./patches"), - format!("back"), - ])?; + let mut c = p.expect_choice( + "", + vec![ + format!("checkout and overwrite existing proposal branch"), + format!("checkout existing outdated proposal branch"), + format!("apply to current branch with `git am`"), + format!("download to ./patches"), + format!("back"), + ], + )?; c.succeeds_with(0, true, Some(0))?; p.expect("checked out new version of proposal (2 ahead 0 behind 'main'), replacing old version (2 ahead 1 behind 'main')\r\n")?; p.expect_end()?; diff --git a/tests/ngit_login.rs b/tests/ngit_login.rs index 09e40f1..9e708dc 100644 --- a/tests/ngit_login.rs +++ b/tests/ngit_login.rs @@ -6,21 +6,27 @@ use test_utils::*; static EXPECTED_NSEC_PROMPT: &str = "nsec"; fn show_first_time_login_choices(p: &mut CliTester) -> Result { - p.expect_choice("login to nostr", vec![ - "secret key (nsec / ncryptsec)".to_string(), - "nostr connect (remote signer)".to_string(), - "create account".to_string(), - "help".to_string(), - ]) + p.expect_choice( + "login to nostr", + vec![ + "secret key (nsec / ncryptsec)".to_string(), + "nostr connect (remote signer)".to_string(), + "create account".to_string(), + "help".to_string(), + ], + ) } fn first_time_login_choices_succeeds_with_nsec(p: &mut CliTester, nsec: &str) -> Result<()> { - p.expect_choice("login to nostr", vec![ - "secret key (nsec / ncryptsec)".to_string(), - "nostr connect (remote signer)".to_string(), - "create account".to_string(), - "help".to_string(), - ])? + p.expect_choice( + "login to nostr", + vec![ + "secret key (nsec / ncryptsec)".to_string(), + "nostr connect (remote signer)".to_string(), + "create account".to_string(), + "help".to_string(), + ], + )? .succeeds_with(0, false, Some(0))?; p.expect_input(EXPECTED_NSEC_PROMPT)? @@ -129,17 +135,25 @@ mod with_relays { async fn when_latest_metadata_and_relay_list_on_all_relays() -> Result<()> { run_test_displays_correct_name( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event_same_as_fallback(), + ], + )?; Ok(()) }), Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event_same_as_fallback(), + ], + )?; Ok(()) }), ) @@ -154,14 +168,18 @@ mod with_relays { async fn when_metadata_contains_only_display_name() -> Result<()> { run_test_displays_correct_name( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - nostr::event::EventBuilder::metadata( - &nostr::Metadata::new().display_name("fred"), - ) - .sign_with_keys(&TEST_KEY_1_KEYS) - .unwrap(), - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + nostr::event::EventBuilder::metadata( + &nostr::Metadata::new().display_name("fred"), + ) + .sign_with_keys(&TEST_KEY_1_KEYS) + .unwrap(), + generate_test_key_1_relay_list_event_same_as_fallback(), + ], + )?; Ok(()) }), None, @@ -187,14 +205,19 @@ mod with_relays { run_test_displays_correct_name( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - nostr::event::EventBuilder::metadata( - &nostr::Metadata::new().custom_field("displayName", "fred"), - ) - .sign_with_keys(&TEST_KEY_1_KEYS) - .unwrap(), - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + nostr::event::EventBuilder::metadata( + &nostr::Metadata::new() + .custom_field("displayName", "fred"), + ) + .sign_with_keys(&TEST_KEY_1_KEYS) + .unwrap(), + generate_test_key_1_relay_list_event_same_as_fallback(), + ], + )?; Ok(()) }), None, @@ -208,14 +231,18 @@ mod with_relays { -> Result<()> { run_test_displays_fallback_to_npub( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - nostr::event::EventBuilder::metadata( - &nostr::Metadata::new().about("other info in metadata"), - ) - .sign_with_keys(&TEST_KEY_1_KEYS) - .unwrap(), - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + nostr::event::EventBuilder::metadata( + &nostr::Metadata::new().about("other info in metadata"), + ) + .sign_with_keys(&TEST_KEY_1_KEYS) + .unwrap(), + generate_test_key_1_relay_list_event_same_as_fallback(), + ], + )?; Ok(()) }), None, @@ -230,10 +257,14 @@ mod with_relays { -> Result<()> { run_test_displays_correct_name( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event_same_as_fallback(), + ], + )?; Ok(()) }), None, @@ -247,15 +278,19 @@ mod with_relays { { run_test_displays_correct_name( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_test_key_1_metadata_event("fred")], + )?; Ok(()) }), Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_test_key_1_relay_list_event_same_as_fallback()], + )?; Ok(()) }), ) @@ -267,16 +302,22 @@ mod with_relays { async fn when_some_relays_return_old_metadata_event() -> Result<()> { run_test_displays_correct_name( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event_same_as_fallback(), + ], + )?; Ok(()) }), Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event_old("fred old"), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_test_key_1_metadata_event_old("fred old")], + )?; Ok(()) }), ) @@ -288,16 +329,22 @@ mod with_relays { async fn when_some_relays_return_other_users_metadata() -> Result<()> { run_test_displays_correct_name( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_2_metadata_event("carole"), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_test_key_2_metadata_event("carole")], + )?; Ok(()) }), Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event_old("fred"), - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event_old("fred"), + generate_test_key_1_relay_list_event_same_as_fallback(), + ], + )?; Ok(()) }), ) @@ -310,16 +357,22 @@ mod with_relays { run_test_displays_correct_name( Some(&|relay, client_id, subscription_id, _| -> Result<()> { let event = generate_test_key_1_kind_event(nostr::Kind::TextNote); - relay.respond_events(client_id, &subscription_id, &vec![ - make_event_old_or_change_user(event, &TEST_KEY_1_KEYS, 0), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![make_event_old_or_change_user(event, &TEST_KEY_1_KEYS, 0)], + )?; Ok(()) }), Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event_old("fred"), - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event_old("fred"), + generate_test_key_1_relay_list_event_same_as_fallback(), + ], + )?; Ok(()) }), ) @@ -334,10 +387,14 @@ mod with_relays { async fn displays_correct_name() -> Result<()> { run_test_when_specifying_command_line_nsec_only_displays_correct_name( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event_same_as_fallback(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event_same_as_fallback(), + ], + )?; Ok(()) }), None, @@ -355,12 +412,10 @@ mod with_relays { let cli_tester_handle = std::thread::spawn(move || -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, [ - "account", - "login", - "--nsec", - TEST_KEY_1_NSEC, - ]); + let mut p = CliTester::new_from_dir( + &test_repo.dir, + ["account", "login", "--nsec", TEST_KEY_1_NSEC], + ); p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; @@ -432,9 +487,11 @@ mod with_relays { async fn warm_user_and_displays_name() -> Result<()> { run_test_when_no_relay_list_found_warns_user_and_uses_npub( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_test_key_1_metadata_event("fred")], + )?; Ok(()) }), None, @@ -525,17 +582,25 @@ mod with_relays { async fn displays_correct_name() -> Result<()> { run_test_displays_correct_name( Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event_old("Fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event_old("Fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ) @@ -607,10 +672,10 @@ mod with_offline_flag { true, )?; - p.expect_choice("login to nostr", vec![ - "try again with nsec".to_string(), - "back".to_string(), - ])? + p.expect_choice( + "login to nostr", + vec!["try again with nsec".to_string(), "back".to_string()], + )? .succeeds_with(0, false, Some(0))?; } @@ -630,13 +695,10 @@ mod with_offline_flag { #[test] fn valid_nsec_param_succeeds_without_prompts() -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, [ - "account", - "login", - "--offline", - "--nsec", - TEST_KEY_1_NSEC, - ]); + let mut p = CliTester::new_from_dir( + &test_repo.dir, + ["account", "login", "--offline", "--nsec", TEST_KEY_1_NSEC], + ); p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; @@ -648,13 +710,10 @@ mod with_offline_flag { #[test] fn invalid_nsec_param_fails_without_prompts() -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, [ - "account", - "login", - "--offline", - "--nsec", - TEST_INVALID_NSEC, - ]); + let mut p = CliTester::new_from_dir( + &test_repo.dir, + ["account", "login", "--offline", "--nsec", TEST_INVALID_NSEC], + ); p.expect_end_with( "Error: invalid nsec parameter\r\n\r\nCaused by:\r\n Invalid secret key\r\n", @@ -668,15 +727,18 @@ mod with_offline_flag { #[test] fn valid_nsec_param_succeeds_without_prompts() -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, [ - "account", - "login", - "--offline", - "--nsec", - TEST_KEY_1_NSEC, - "--password", - TEST_PASSWORD, - ]); + let mut p = CliTester::new_from_dir( + &test_repo.dir, + [ + "account", + "login", + "--offline", + "--nsec", + TEST_KEY_1_NSEC, + "--password", + TEST_PASSWORD, + ], + ); p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; p.expect_end_with( @@ -687,15 +749,18 @@ mod with_offline_flag { #[test] fn parameters_can_be_called_globally() -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, [ - "--nsec", - TEST_KEY_1_NSEC, - "--password", - TEST_PASSWORD, - "account", - "login", - "--offline", - ]); + let mut p = CliTester::new_from_dir( + &test_repo.dir, + [ + "--nsec", + TEST_KEY_1_NSEC, + "--password", + TEST_PASSWORD, + "account", + "login", + "--offline", + ], + ); p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; p.expect_end_with( @@ -710,15 +775,18 @@ mod with_offline_flag { fn valid_nsec_param_succeeds_without_prompts_and_logs_in() -> Result<()> { standard_first_time_login_with_nsec()?.exit()?; let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, [ - "account", - "login", - "--offline", - "--nsec", - TEST_KEY_2_NSEC, - "--password", - TEST_PASSWORD, - ]); + let mut p = CliTester::new_from_dir( + &test_repo.dir, + [ + "account", + "login", + "--offline", + "--nsec", + TEST_KEY_2_NSEC, + "--password", + TEST_PASSWORD, + ], + ); p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; p.expect_end_with( diff --git a/tests/ngit_send.rs b/tests/ngit_send.rs index 5cc5291..2cd5956 100644 --- a/tests/ngit_send.rs +++ b/tests/ngit_send.rs @@ -181,10 +181,14 @@ async fn prep_run_create_proposal( 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), @@ -194,9 +198,11 @@ async fn prep_run_create_proposal( 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event()], + )?; Ok(()) }), ), @@ -762,10 +768,14 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), @@ -775,9 +785,11 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event()], + )?; Ok(()) }), ), @@ -836,10 +848,14 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), @@ -849,9 +865,11 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event()], + )?; Ok(()) }), ), @@ -904,10 +922,14 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), @@ -917,9 +939,11 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_ 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event()], + )?; Ok(()) }), ), @@ -992,10 +1016,14 @@ mod when_no_cover_letter_flag_set_with_range_of_head_2_sends_2_patches_without_c 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), @@ -1005,9 +1033,11 @@ mod when_no_cover_letter_flag_set_with_range_of_head_2_sends_2_patches_without_c 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event()], + )?; Ok(()) }), ), @@ -1174,13 +1204,16 @@ mod when_range_ommited_prompts_for_selection_defaulting_ahead_of_main { fn expect_msgs_first(p: &mut CliTester) -> Result<()> { p.expect("fetching updates...\r\n")?; p.expect_eventually("\r\n")?; // may be 'no updates' or some updates - let mut selector = p.expect_multi_select("select commits for proposal", vec![ - "(Joe Bloggs) add t4.md [feature] fe973a8".to_string(), - "(Joe Bloggs) add t3.md 232efb3".to_string(), - "(Joe Bloggs) add t2.md [main] 431b84e".to_string(), - "(Joe Bloggs) add t1.md af474d8".to_string(), - "(Joe Bloggs) Initial commit 9ee507f".to_string(), - ])?; + let mut selector = p.expect_multi_select( + "select commits for proposal", + vec![ + "(Joe Bloggs) add t4.md [feature] fe973a8".to_string(), + "(Joe Bloggs) add t3.md 232efb3".to_string(), + "(Joe Bloggs) add t2.md [main] 431b84e".to_string(), + "(Joe Bloggs) add t1.md af474d8".to_string(), + "(Joe Bloggs) Initial commit 9ee507f".to_string(), + ], + )?; selector.succeeds_with(vec![0, 1], false, vec![0, 1])?; p.expect("creating proposal from 2 commits:\r\n")?; p.expect("fe973a8 add t4.md\r\n")?; @@ -1205,10 +1238,14 @@ mod when_range_ommited_prompts_for_selection_defaulting_ahead_of_main { 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), @@ -1218,9 +1255,11 @@ mod when_range_ommited_prompts_for_selection_defaulting_ahead_of_main { 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event()], + )?; Ok(()) }), ), @@ -1262,10 +1301,14 @@ mod when_range_ommited_prompts_for_selection_defaulting_ahead_of_main { 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), @@ -1275,9 +1318,11 @@ mod when_range_ommited_prompts_for_selection_defaulting_ahead_of_main { 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event()], + )?; Ok(()) }), ), @@ -1393,11 +1438,15 @@ mod root_proposal_specified_using_in_reply_to_with_range_of_head_2_and_cover_let 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - get_pretend_proposal_root_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + get_pretend_proposal_root_event(), + ], + )?; Ok(()) }), ), @@ -1407,10 +1456,11 @@ mod root_proposal_specified_using_in_reply_to_with_range_of_head_2_and_cover_let 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - get_pretend_proposal_root_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event(), get_pretend_proposal_root_event()], + )?; Ok(()) }), ), @@ -1451,11 +1501,15 @@ mod root_proposal_specified_using_in_reply_to_with_range_of_head_2_and_cover_let 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - get_pretend_proposal_root_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + get_pretend_proposal_root_event(), + ], + )?; Ok(()) }), ), @@ -1465,10 +1519,11 @@ mod root_proposal_specified_using_in_reply_to_with_range_of_head_2_and_cover_let 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - get_pretend_proposal_root_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event(), get_pretend_proposal_root_event()], + )?; Ok(()) }), ), @@ -1645,11 +1700,15 @@ mod in_reply_to_mentions_issue { 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - get_pretend_issue_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + get_pretend_issue_event(), + ], + )?; Ok(()) }), ), @@ -1659,10 +1718,11 @@ mod in_reply_to_mentions_issue { 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - get_pretend_issue_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event(), get_pretend_issue_event()], + )?; Ok(()) }), ), @@ -1764,10 +1824,14 @@ mod in_reply_to_mentions_npub_and_nprofile_which_get_mentioned_in_proposal_root 8051, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_test_key_1_metadata_event("fred"), - generate_test_key_1_relay_list_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![ + generate_test_key_1_metadata_event("fred"), + generate_test_key_1_relay_list_event(), + ], + )?; Ok(()) }), ), @@ -1777,9 +1841,11 @@ mod in_reply_to_mentions_npub_and_nprofile_which_get_mentioned_in_proposal_root 8055, None, Some(&|relay, client_id, subscription_id, _| -> Result<()> { - relay.respond_events(client_id, &subscription_id, &vec![ - generate_repo_ref_event(), - ])?; + relay.respond_events( + client_id, + &subscription_id, + &vec![generate_repo_ref_event()], + )?; Ok(()) }), ), -- cgit v1.2.3