diff --git a/Cargo.lock b/Cargo.lock index 587dc85..6065af0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,19 +4,13 @@ version = 4 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" dependencies = [ "gimli", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.1" @@ -25,9 +19,9 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -51,9 +45,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.21" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -66,15 +60,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] @@ -101,12 +95,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" -dependencies = [ - "backtrace", -] +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "arbitrary" @@ -128,24 +119,30 @@ dependencies = [ ] [[package]] -name = "autocfg" -version = "1.1.0" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", - "miniz_oxide 0.7.1", + "miniz_oxide", "object", "rustc-demangle", + "windows-link", ] [[package]] @@ -181,15 +178,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.3.2" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "block-buffer" @@ -214,9 +205,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.8.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cbindgen" @@ -225,7 +216,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eadd868a2ce9ca38de7eeafdcec9c7065ef89b42b32f0839278d55f35c54d1ff" dependencies = [ "clap", - "heck", + "heck 0.4.1", "indexmap", "log", "proc-macro2", @@ -239,34 +230,36 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" dependencies = [ + "find-msvc-tools", "jobserver", "libc", + "shlex", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "clap" -version = "4.5.13" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ "anstream", "anstyle", @@ -276,9 +269,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.7" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "colorchoice" @@ -288,12 +281,11 @@ checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "colored" -version = "2.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" dependencies = [ - "lazy_static", - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] @@ -325,7 +317,7 @@ checksum = "15b2c103cf610ec6cae3da84a766285b42fd16aad564758459e6ecf128c75206" dependencies = [ "cookie", "document-features", - "idna 1.1.0", + "idna", "indexmap", "log", "serde", @@ -337,9 +329,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -355,51 +347,43 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.9" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.16" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset", ] [[package]] name = "crossbeam-utils" -version = "0.8.17" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" -dependencies = [ - "cfg-if", -] +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -412,7 +396,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "lock_api", "once_cell", "parking_lot_core", @@ -496,15 +480,15 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "either" -version = "1.9.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "env_filter" @@ -518,35 +502,41 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "fastrand" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "flate2" -version = "1.1.4" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", - "libz-rs-sys", - "miniz_oxide 0.8.9", + "miniz_oxide", + "zlib-rs", ] [[package]] @@ -556,112 +546,73 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "form_urlencoded" -version = "1.2.1" +name = "foldhash" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] [[package]] name = "fragile" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" - -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - -[[package]] -name = "futures" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] +checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", - "futures-sink", ] [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" dependencies = [ "futures-core", "futures-task", "futures-util", ] -[[package]] -name = "futures-io" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" - -[[package]] -name = "futures-macro" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ - "futures-channel", "futures-core", - "futures-io", - "futures-macro", - "futures-sink", "futures-task", - "memchr", "pin-project-lite", - "pin-utils", "slab", ] @@ -677,9 +628,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "libc", @@ -694,28 +645,41 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", ] [[package]] -name = "gimli" -version = "0.28.1" +name = "getrandom" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "wasip2", + "wasip3", +] + +[[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "h2" -version = "0.3.22" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", - "http 0.2.11", + "http", "indexmap", "slab", "tokio", @@ -725,9 +689,18 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] [[package]] name = "hashbrown" @@ -742,10 +715,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "hermit-abi" -version = "0.3.3" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hex" @@ -755,42 +728,42 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "http" -version = "0.2.11" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" -dependencies = [ - "bytes", - "fnv", "itoa", ] [[package]] name = "http-body" -version = "0.4.6" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 0.2.11", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -800,26 +773,37 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.27" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" dependencies = [ + "atomic-waker", "bytes", "futures-channel", "futures-core", - "futures-util", "h2", - "http 0.2.11", + "http", "http-body", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "smallvec", + "tokio", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "bytes", + "http", + "http-body", + "hyper", + "pin-project-lite", "tokio", - "tower-service", - "tracing", - "want", ] [[package]] @@ -904,14 +888,10 @@ dependencies = [ ] [[package]] -name = "idna" -version = "0.5.0" +name = "id-arena" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" [[package]] name = "idna" @@ -942,6 +922,8 @@ checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", "hashbrown 0.16.1", + "serde", + "serde_core", ] [[package]] @@ -958,55 +940,47 @@ checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.81" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" dependencies = [ "once_cell", "wasm-bindgen", ] [[package]] -name = "lazy_static" -version = "1.4.0" +name = "leb128fmt" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.165" +version = "0.2.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb4d3d38eab6c5239a362fa8bae48c03baf980a6e7079f063942d563ef3533e" - -[[package]] -name = "libz-rs-sys" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c10501e7805cee23da17c7790e59df2870c0d4043ec6d03f67d31e2b53e77415" -dependencies = [ - "zlib-rs", -] +checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" @@ -1022,11 +996,10 @@ checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] @@ -1052,24 +1025,6 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "miniz_oxide" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.8.9" @@ -1082,20 +1037,20 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] name = "mock_instant" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdcebb6db83796481097dedc7747809243cc81d9ed83e6a938b76d4ea0b249cf" +checksum = "4e1d4c44418358edcac6e1d9ce59cea7fb38052429c7704033f1196f0c179e6a" [[package]] name = "mockall" @@ -1125,16 +1080,22 @@ dependencies = [ [[package]] name = "mockito" -version = "1.2.0" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8d3038e23466858569c2d30a537f691fa0d53b51626630ae08262943e3bbb8b" +checksum = "90820618712cab19cfc46b274c6c22546a82affcb3c3bdf0f29e3db8e1bb92c0" dependencies = [ "assert-json-diff", + "bytes", "colored", - "futures", + "futures-core", + "http", + "http-body", + "http-body-util", "hyper", + "hyper-util", "log", - "rand 0.8.5", + "pin-project-lite", + "rand", "regex", "serde_json", "serde_urlencoded", @@ -1150,23 +1111,13 @@ checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "num_threads" version = "0.1.7" @@ -1178,18 +1129,18 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" @@ -1210,9 +1161,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -1220,15 +1171,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.5", + "windows-link", ] [[package]] @@ -1244,21 +1195,15 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pipe" @@ -1292,15 +1237,18 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] [[package]] name = "predicates" -version = "3.1.0" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" +checksum = "ada8f2932f28a27ee7b70dd6c1c39ea0675c55a36879ab92f3a715eaa1e63cfe" dependencies = [ "anstyle", "predicates-core", @@ -1308,107 +1256,94 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "cad38746f3166b4031b1a0d39ad9f954dd291e7854fcc0eed52ee41a0b50d144" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "d0de1b847b39c8131db0467e9df1ff60e6d0562ab8e9a16e568ad0fdb372e2f2" dependencies = [ "predicates-core", "termtree", ] [[package]] -name = "proc-macro2" -version = "1.0.92" +name = "prettyplease" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] [[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 = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.4.6" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", "rand_chacha", - "rand_core 0.6.4", + "rand_core", ] [[package]] name = "rand_chacha" -version = "0.3.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", + "rand_core", ] [[package]] name = "rand_core" -version = "0.3.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.11", + "getrandom 0.3.4", ] [[package]] name = "rayon" -version = "1.8.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -1416,37 +1351,28 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", ] -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 1.3.2", + "bitflags", ] [[package]] name = "regex" -version = "1.10.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -1456,9 +1382,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -1467,51 +1393,41 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "ring" -version = "0.17.8" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.11", + "getrandom 0.2.17", "libc", - "spin", "untrusted", "windows-sys 0.52.0", ] [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" [[package]] name = "rustix" -version = "0.38.28" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.4.1", + "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -1557,9 +1473,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "sacabase" @@ -1602,6 +1518,12 @@ version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + [[package]] name = "serde" version = "1.0.228" @@ -1668,9 +1590,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.27" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ "indexmap", "itoa", @@ -1707,9 +1629,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -1717,79 +1639,57 @@ dependencies = [ ] [[package]] -name = "signal-hook-registry" -version = "1.4.1" +name = "shlex" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "similar" -version = "2.4.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" [[package]] name = "simple_logger" -version = "5.0.0" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c5dfa5e08767553704aa0ffd9d9794d527103c736aba9854773851fd7497eb" +checksum = "c7038d0e96661bf9ce647e1a6f6ef6d6f3663f66d9bf741abf14ba4876071c17" dependencies = [ "colored", "log", "time", - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] name = "slab" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.4.10" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "winapi", + "windows-sys 0.61.2", ] -[[package]] -name = "socket2" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - [[package]] name = "stable_deref_trait" version = "1.2.1" @@ -1810,9 +1710,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.89" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -1830,34 +1730,24 @@ dependencies = [ "syn", ] -[[package]] -name = "tempdir" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -dependencies = [ - "rand 0.4.6", - "remove_dir_all", -] - [[package]] name = "tempfile" -version = "3.8.1" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ - "cfg-if", "fastrand", - "redox_syscall", + "getrandom 0.4.2", + "once_cell", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] name = "termtree" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" [[package]] name = "time" @@ -1902,63 +1792,32 @@ dependencies = [ "zerovec", ] -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - [[package]] name = "tokio" -version = "1.35.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ - "backtrace", "bytes", "libc", "mio", - "num_cpus", "parking_lot", "pin-project-lite", - "signal-hook-registry", - "socket2 0.5.5", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-macros" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "socket2", + "windows-sys 0.61.2", ] [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -2002,17 +1861,11 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-core", @@ -2020,51 +1873,36 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", ] -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - [[package]] name = "typenum" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "unicode-bidi" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] -name = "unicode-normalization" -version = "0.1.22" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unsafe-libyaml" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "untrusted" @@ -2100,7 +1938,7 @@ dependencies = [ "serial_test", "sha2", "simple_logger", - "tempdir", + "tempfile", "ureq", "uuid", "zip", @@ -2133,20 +1971,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c" dependencies = [ "base64", - "http 1.2.0", + "http", "httparse", "log", ] [[package]] name = "url" -version = "2.5.0" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna", "percent-encoding", + "serde", ] [[package]] @@ -2169,50 +2008,50 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" dependencies = [ - "getrandom 0.3.4", + "getrandom 0.4.2", "js-sys", "wasm-bindgen", ] [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[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 = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.104" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" dependencies = [ "cfg-if", "once_cell", @@ -2221,25 +2060,11 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - [[package]] name = "wasm-bindgen-macro" -version = "0.2.104" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2247,26 +2072,60 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.104" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" dependencies = [ + "bumpalo", "proc-macro2", "quote", "syn", - "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.104" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + [[package]] name = "webpki-roots" version = "1.0.6" @@ -2276,50 +2135,19 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets", ] [[package]] @@ -2333,117 +2161,67 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" -dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] -name = "windows_i686_gnu" -version = "0.52.0" +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -2456,9 +2234,91 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] [[package]] name = "writeable" @@ -2489,6 +2349,26 @@ dependencies = [ "synstructure", ] +[[package]] +name = "zerocopy" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "zerofrom" version = "0.1.6" @@ -2512,9 +2392,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" [[package]] name = "zerotrie" @@ -2565,9 +2445,9 @@ dependencies = [ [[package]] name = "zlib-rs" -version = "0.5.5" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3" +checksum = "3be3d40e40a133f9c916ee3f9f4fa2d9d63435b5fbe1bfc6d9dae0aa0ada1513" [[package]] name = "zmij" diff --git a/library/Cargo.toml b/library/Cargo.toml index dfdb828..1e65e38 100644 --- a/library/Cargo.toml +++ b/library/Cargo.toml @@ -70,7 +70,7 @@ mock_instant = "0.5.1" # Gives #[serial] attribute for locking all of our shorebird_init # tests to a single thread so they don't conflict with each other. serial_test = "3.2.0" -tempdir = "0.3.7" +tempfile = "3" # [build-dependencies] diff --git a/library/src/android.rs b/library/src/android.rs index 121b4f8..7a6bdca 100644 --- a/library/src/android.rs +++ b/library/src/android.rs @@ -211,7 +211,7 @@ pub fn libapp_path_from_settings(original_libapp_paths: &[String]) -> Result anyhow::Result<()> { testing_reset_config(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); // Generated by `string_patch "hello world" "hello tests"` let base = "hello world"; @@ -705,7 +705,7 @@ mod test { #[test] fn patch_check_no_patch_with_result() { testing_reset_config(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); // Generated by `string_patch "hello world" "hello tests"` let base = "hello world"; @@ -745,7 +745,7 @@ mod test { #[test] fn patch_check_failure_with_result() { testing_reset_config(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); // Generated by `string_patch "hello world" "hello tests"` let base = "hello world"; @@ -786,7 +786,7 @@ mod test { #[test] fn patch_download_failure_with_result() -> anyhow::Result<()> { testing_reset_config(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); // Generated by `string_patch "hello world" "hello tests"` let base = "hello world"; @@ -841,7 +841,7 @@ mod test { #[test] fn current_boot_patch_set_after_reporting_launch_start() { testing_reset_config(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); // Generated by `string_patch "hello world" "hello tests"` let base = "hello world"; @@ -922,7 +922,7 @@ mod test { // thread local for the storage, but it should test the same idea. testing_reset_config(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let fake_libapp_path = tmp_dir.path().join("lib/arch/libapp.so"); let c_params = parameters(&tmp_dir, fake_libapp_path.to_str().unwrap()); @@ -951,7 +951,7 @@ mod test { // request. testing_reset_config(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let fake_libapp_path = tmp_dir.path().join("lib/arch/libapp.so"); let c_params = parameters(&tmp_dir, fake_libapp_path.to_str().unwrap()); diff --git a/library/src/cache/disk_io.rs b/library/src/cache/disk_io.rs index 61a1acd..79607f2 100644 --- a/library/src/cache/disk_io.rs +++ b/library/src/cache/disk_io.rs @@ -55,7 +55,7 @@ mod test { use std::path::Path; use serde::{Deserialize, Serialize}; - use tempdir::TempDir; + use tempfile::TempDir; use anyhow::{Ok, Result}; @@ -71,7 +71,7 @@ mod test { a: 1, b: "hello".to_string(), }; - let temp_dir = TempDir::new("test")?; + let temp_dir = TempDir::new()?; let path = temp_dir.path().join("test.json"); super::write(&test_struct, &path)?; let read_struct: TestStruct = super::read(&path)?; @@ -88,7 +88,7 @@ mod test { #[test] fn read_errs_if_struct_cannot_be_deserialized() -> Result<()> { - let temp_dir = TempDir::new("test")?; + let temp_dir = TempDir::new()?; let path = &temp_dir.path().join("test.json"); std::fs::write(path, "junk")?; diff --git a/library/src/cache/patch_manager.rs b/library/src/cache/patch_manager.rs index 22f12ea..f93ad12 100644 --- a/library/src/cache/patch_manager.rs +++ b/library/src/cache/patch_manager.rs @@ -12,7 +12,7 @@ use std::{ #[cfg(test)] use mockall::automock; #[cfg(test)] -use tempdir::TempDir; +use tempfile::TempDir; const PATCHES_DIR_NAME: &str = "patches"; const PATCHES_STATE_FILE_NAME: &str = "patches_state.json"; @@ -573,14 +573,14 @@ impl PatchManager { #[cfg(test)] mod debug_tests { - use tempdir::TempDir; + use tempfile::TempDir; use super::PatchManager; use crate::yaml::PatchVerificationMode; #[test] fn manage_patches_is_debug() { - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let patch_manager: Box = Box::new(PatchManager::manager_for_test(&temp_dir)); assert_eq!(format!("{:?}", patch_manager), "ManagePatches"); @@ -588,7 +588,7 @@ mod debug_tests { #[test] fn patch_manager_is_debug() { - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let patch_manager = PatchManager::new( temp_dir.path().to_owned(), Some("public_key"), @@ -603,11 +603,11 @@ mod debug_tests { mod add_patch_tests { use super::*; use std::path::Path; - use tempdir::TempDir; + use tempfile::TempDir; #[test] fn errs_if_file_path_does_not_exist() { - let mut manager = PatchManager::manager_for_test(&TempDir::new("patch_manager").unwrap()); + let mut manager = PatchManager::manager_for_test(&TempDir::new().unwrap()); assert!(manager .add_patch( 1, @@ -622,7 +622,7 @@ mod add_patch_tests { fn adds_patch_successfully() { let patch_number = 1; let patch_file_contents = "patch contents"; - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let mut manager = PatchManager::manager_for_test(&temp_dir); let file_path = &temp_dir.path().join("patch1.vmcode"); @@ -669,7 +669,7 @@ mod add_patch_tests { #[test] fn install_only_errs_if_public_key_is_invalid() { - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let mut manager = PatchManager::new( temp_dir.path().to_path_buf(), Some("not a valid key"), @@ -687,7 +687,7 @@ mod add_patch_tests { #[test] fn install_only_errs_if_signature_is_missing_when_public_key_configured() { - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let mut manager = PatchManager::new( temp_dir.path().to_path_buf(), Some(PUBLIC_KEY), @@ -705,7 +705,7 @@ mod add_patch_tests { #[test] fn install_only_errs_if_signature_is_invalid() { - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let mut manager = PatchManager::new( temp_dir.path().to_path_buf(), Some(PUBLIC_KEY), @@ -725,7 +725,7 @@ mod add_patch_tests { #[test] fn install_only_succeeds_with_valid_signature() { - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let mut manager = PatchManager::new( temp_dir.path().to_path_buf(), Some(PUBLIC_KEY), @@ -743,7 +743,7 @@ mod add_patch_tests { #[test] fn install_only_succeeds_with_any_signature_if_no_public_key() { - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let mut manager = PatchManager::new( temp_dir.path().to_path_buf(), None, // No public key configured @@ -763,11 +763,11 @@ mod add_patch_tests { #[cfg(test)] mod last_successfully_booted_patch_tests { use super::*; - use tempdir::TempDir; + use tempfile::TempDir; #[test] fn returns_none_if_no_patch_has_been_booted() -> Result<()> { - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let mut manager = PatchManager::manager_for_test(&temp_dir); manager.add_patch_for_test(&temp_dir, 1)?; assert!(manager.last_successfully_booted_patch().is_none()); @@ -777,7 +777,7 @@ mod last_successfully_booted_patch_tests { #[test] fn returns_value_from_patches_state() -> Result<()> { - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let mut manager = PatchManager::manager_for_test(&temp_dir); manager.add_patch_for_test(&temp_dir, 1)?; @@ -795,18 +795,18 @@ mod last_successfully_booted_patch_tests { #[cfg(test)] mod next_boot_patch_tests { use super::*; - use tempdir::TempDir; + use tempfile::TempDir; #[test] fn returns_none_if_no_next_boot_patch() { - let temp_dir = TempDir::new("patch_manager").unwrap(); + let temp_dir = TempDir::new().unwrap(); let manager = PatchManager::manager_for_test(&temp_dir); assert!(manager.next_boot_patch().is_none()); } #[test] fn returns_none_patch_if_first_patch_failed_to_boot() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); // Add a first patch and pretend it failed to boot. @@ -824,7 +824,7 @@ mod next_boot_patch_tests { #[test] fn falls_back_to_last_booted_patch_if_still_bootable() -> Result<()> { let patch_file_contents = "patch contents"; - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); let file_path = &temp_dir.path().join("patch1.vmcode"); std::fs::write(file_path, patch_file_contents)?; @@ -851,7 +851,7 @@ mod next_boot_patch_tests { #[test] fn adding_patch_deletes_unbooted_patch_not_last_booted() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); // Add patch 1 and boot it successfully. @@ -884,7 +884,7 @@ mod next_boot_patch_tests { #[test] fn returns_last_booted_patch_if_next_patch_failed_to_boot() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); // Add a first patch and pretend it booted successfully. @@ -910,11 +910,11 @@ mod next_boot_patch_tests { mod validate_next_boot_patch_tests { use super::*; use anyhow::Result; - use tempdir::TempDir; + use tempfile::TempDir; #[test] fn does_nothing_if_no_next_boot_patch() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); assert!(manager.validate_next_boot_patch().is_ok()); Ok(()) @@ -922,7 +922,7 @@ mod validate_next_boot_patch_tests { #[test] fn clears_next_boot_patch_if_it_is_not_bootable() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); manager.add_patch_for_test(&temp_dir, 1)?; @@ -947,7 +947,7 @@ mod validate_next_boot_patch_tests { #[test] fn clears_current_and_next_on_boot_failure_if_they_are_the_same() -> Result<()> { let patch_file_contents = "patch contents"; - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); let file_path = &temp_dir.path().join("patch1.vmcode"); std::fs::write(file_path, patch_file_contents)?; @@ -975,7 +975,7 @@ mod validate_next_boot_patch_tests { #[test] fn does_not_fall_back_to_last_booted_patch_if_corrupted() -> Result<()> { let patch_file_contents = "patch contents"; - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); let file_path = &temp_dir.path().join("patch1.vmcode"); std::fs::write(file_path, patch_file_contents)?; @@ -1033,7 +1033,7 @@ mod validate_next_boot_patch_tests { #[test] fn strict_mode_succeeds_with_valid_signature_at_boot_time() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::new( temp_dir.path().to_path_buf(), Some(PUBLIC_KEY), @@ -1056,7 +1056,7 @@ mod validate_next_boot_patch_tests { #[test] fn succeeds_with_arbitrary_signature_if_no_public_key() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; // Create a PatchManager without a public key - signature verification is skipped. let mut manager = PatchManager::manager_for_test(&temp_dir); @@ -1079,7 +1079,7 @@ mod validate_next_boot_patch_tests { #[test] fn strict_mode_fails_boot_validation_if_signature_missing() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::new( temp_dir.path().to_path_buf(), Some(PUBLIC_KEY), @@ -1099,7 +1099,7 @@ mod validate_next_boot_patch_tests { #[test] fn strict_mode_fails_boot_validation_if_signature_invalid() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::new( temp_dir.path().to_path_buf(), Some(PUBLIC_KEY), @@ -1124,7 +1124,7 @@ mod validate_next_boot_patch_tests { #[test] fn strict_mode_fails_boot_validation_if_public_key_invalid() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::new( temp_dir.path().to_path_buf(), Some("not a valid key"), @@ -1144,7 +1144,7 @@ mod validate_next_boot_patch_tests { #[test] fn strict_mode_detects_tampered_patch_at_boot_time() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::new( temp_dir.path().to_path_buf(), Some(PUBLIC_KEY), @@ -1173,7 +1173,7 @@ mod fall_back_tests { #[test] fn does_nothing_if_no_patch_exists() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); assert!(manager.patches_state.last_booted_patch.is_none()); @@ -1189,7 +1189,7 @@ mod fall_back_tests { #[test] fn sets_next_patch_to_latest_patch_if_both_are_present() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); // Download and successfully boot from patch 1 @@ -1210,7 +1210,7 @@ mod fall_back_tests { #[test] fn clears_next_and_last_patches_if_both_fail_validation() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); // Download and successfully boot from patch 1, and then corrupt it on disk. @@ -1234,7 +1234,7 @@ mod fall_back_tests { #[test] fn does_not_clear_next_patch_if_changed_since_boot_start() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); // Simulate a situation where we download both patches 1 and 2. @@ -1267,7 +1267,7 @@ mod fall_back_tests { #[test] fn succeeds_if_deleting_artifacts_fails() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); // Download and successfully boot from patch 1, and then corrupt it on disk. @@ -1297,11 +1297,11 @@ mod fall_back_tests { mod record_boot_success_for_patch_tests { use super::*; use anyhow::{Ok, Result}; - use tempdir::TempDir; + use tempfile::TempDir; #[test] fn errs_if_no_next_boot_patch() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); // This should fail because no patches have been added. @@ -1314,7 +1314,7 @@ mod record_boot_success_for_patch_tests { fn errs_if_patch_number_does_not_match_next_patch() -> Result<()> { let patch_number = 1; let patch_file_contents = "patch contents"; - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); let file_path = &temp_dir.path().join("patch1.vmcode"); std::fs::write(file_path, patch_file_contents)?; @@ -1330,7 +1330,7 @@ mod record_boot_success_for_patch_tests { fn succeeds_when_provided_next_boot_patch_number() -> Result<()> { let patch_number = 1; let patch_file_contents = "patch contents"; - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); let file_path = &temp_dir.path().join("patch1.vmcode"); std::fs::write(file_path, patch_file_contents)?; @@ -1346,7 +1346,7 @@ mod record_boot_success_for_patch_tests { #[test] fn deletes_other_patch_artifacts() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); // Download patches 1, 2, and 3 before we start booting from patch 2. @@ -1378,7 +1378,7 @@ mod record_boot_success_for_patch_tests { #[test] fn deletes_unrecognized_directories_in_patches_dir() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); // Add a junk directory to the patches directory. @@ -1401,11 +1401,11 @@ mod record_boot_success_for_patch_tests { mod record_boot_failure_for_patch_tests { use super::*; use anyhow::{Ok, Result}; - use tempdir::TempDir; + use tempfile::TempDir; #[test] fn deletes_failed_patch_artifacts() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); manager.add_patch_for_test(&temp_dir, 1)?; assert!(manager.record_boot_start_for_patch(1).is_ok()); @@ -1430,7 +1430,7 @@ mod record_boot_failure_for_patch_tests { #[test] fn clears_last_booted_patch_if_it_is_the_failed_patch() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); manager.add_patch_for_test(&temp_dir, 1)?; let patch_artifact_path = manager.patch_artifact_path(1); @@ -1459,11 +1459,11 @@ mod record_boot_failure_for_patch_tests { mod reset_tests { use super::*; use anyhow::{Ok, Result}; - use tempdir::TempDir; + use tempfile::TempDir; #[test] fn deletes_patches_dir_and_resets_patches_state() -> Result<()> { - let temp_dir = TempDir::new("patch_manager")?; + let temp_dir = TempDir::new()?; let mut manager = PatchManager::manager_for_test(&temp_dir); manager.add_patch_for_test(&temp_dir, 1)?; let path_artifacts_dir = manager.patches_dir(); diff --git a/library/src/cache/signing.rs b/library/src/cache/signing.rs index 67518fd..fb2daf4 100644 --- a/library/src/cache/signing.rs +++ b/library/src/cache/signing.rs @@ -74,7 +74,7 @@ mod tests { use std::io::Write; use anyhow::Result; - use tempdir::TempDir; + use tempfile::TempDir; #[test] fn errs_if_file_does_not_exist() { @@ -86,7 +86,7 @@ mod tests { #[test] fn hashes_file_contents() -> Result<()> { // Write "hello, world!" to a file. - let temp_dir = TempDir::new("signing")?; + let temp_dir = TempDir::new()?; let file_path = temp_dir.path().join("test.txt"); let mut file = std::fs::File::create(&file_path)?; file.write_all("hello, world!".as_bytes())?; diff --git a/library/src/cache/updater_state.rs b/library/src/cache/updater_state.rs index 04ce631..285ff29 100644 --- a/library/src/cache/updater_state.rs +++ b/library/src/cache/updater_state.rs @@ -303,7 +303,7 @@ impl UpdaterState { #[cfg(test)] mod tests { - use tempdir::TempDir; + use tempfile::TempDir; use crate::cache::patch_manager::MockManagePatches; @@ -334,7 +334,7 @@ mod tests { #[test] fn release_version_changed_resets_patches() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let mut patch_manager = PatchManager::manager_for_test(&tmp_dir); let file_path = &tmp_dir.path().join("patch1.vmcode"); std::fs::write(file_path, "patch file contents").unwrap(); @@ -357,7 +357,7 @@ mod tests { fn is_file_not_found_test() { use anyhow::Context; assert!(!super::is_file_not_found(&anyhow::anyhow!(""))); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let path = tmp_dir.path().join("does_not_exist"); let result = std::fs::File::open(path).context("foo"); assert!(result.is_err()); @@ -366,7 +366,7 @@ mod tests { #[test] fn creates_updater_state_with_client_id() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let state = UpdaterState::load_or_new_on_error(tmp_dir.path(), "1.0.0+1", None, PatchVerificationMode::default()); let saved_state = UpdaterState::load_or_new_on_error(tmp_dir.path(), "1.0.0+1", None, PatchVerificationMode::default()); assert_eq!( @@ -379,7 +379,7 @@ mod tests { // the client_id should remain the same. #[test] fn client_id_does_not_change_if_release_version_changes() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let state = test_state(&tmp_dir, PatchManager::manager_for_test(&tmp_dir)); let original_loaded = UpdaterState::load_or_new_on_error( @@ -399,7 +399,7 @@ mod tests { #[test] fn does_not_save_cache_dir() { - let original_tmp_dir = TempDir::new("example").unwrap(); + let original_tmp_dir = TempDir::new().unwrap(); let original_state = UpdaterState { cache_dir: original_tmp_dir.path().to_path_buf(), patch_manager: Box::new(PatchManager::manager_for_test(&original_tmp_dir)), @@ -411,7 +411,7 @@ mod tests { }; original_state.save().unwrap(); - let new_tmp_dir = TempDir::new("example_2").unwrap(); + let new_tmp_dir = TempDir::new().unwrap(); let original_state_path = original_tmp_dir.path().join(STATE_FILE_NAME); let new_state_path = new_tmp_dir.path().join(STATE_FILE_NAME); std::fs::rename(original_state_path, new_state_path).unwrap(); @@ -423,7 +423,7 @@ mod tests { #[test] fn record_boot_failure_for_patch_forwards_to_patch_manager() { let patch_number = 1; - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let mut mock_manage_patches = MockManagePatches::new(); mock_manage_patches .expect_record_boot_failure_for_patch() @@ -435,7 +435,7 @@ mod tests { #[test] fn record_boot_success_for_patch_forwards_to_patch_manager() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let mut mock_manage_patches = MockManagePatches::new(); mock_manage_patches .expect_record_boot_success() @@ -447,7 +447,7 @@ mod tests { #[test] fn last_successfully_booted_patch_forwards_from_patch_manager() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch = fake_patch(&tmp_dir, 1); let mut mock_manage_patches = MockManagePatches::new(); mock_manage_patches @@ -459,7 +459,7 @@ mod tests { #[test] fn current_boot_patch_returns_currently_booting_patch_if_present() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch1 = fake_patch(&tmp_dir, 1); let patch2 = fake_patch(&tmp_dir, 2); let mut mock_manage_patches = MockManagePatches::new(); @@ -475,7 +475,7 @@ mod tests { #[test] fn current_boot_patch_returns_last_successfully_booted_patch_if_no_patch_is_booting() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch = fake_patch(&tmp_dir, 1); let mut mock_manage_patches = MockManagePatches::new(); mock_manage_patches @@ -491,7 +491,7 @@ mod tests { #[test] fn next_boot_patch_forwards_from_patch_manager() { let patch_number = 1; - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch = fake_patch(&tmp_dir, patch_number); let mut mock_manage_patches = MockManagePatches::new(); mock_manage_patches @@ -503,7 +503,7 @@ mod tests { #[test] fn validate_next_boot_patch_forwards_to_patch_manager() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let mut mock_manage_patches = MockManagePatches::new(); mock_manage_patches .expect_validate_next_boot_patch() @@ -515,7 +515,7 @@ mod tests { #[test] fn install_patch_forwards_to_patch_manager() { let patch_number = 1; - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch = fake_patch(&tmp_dir, patch_number); let mut mock_manage_patches = MockManagePatches::new(); let cloned_patch = patch.clone(); @@ -537,7 +537,7 @@ mod tests { #[test] fn is_known_bad_patch_returns_value_from_patch_manager() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let mut mock_manage_patches = MockManagePatches::new(); mock_manage_patches .expect_is_known_bad_patch() @@ -554,7 +554,7 @@ mod tests { #[test] fn load_or_new_on_error_clears_patch_state_on_error() -> Result<()> { - let tmp_dir = TempDir::new("example")?; + let tmp_dir = TempDir::new()?; // Create a new state, add a patch, and save it. let mut state = UpdaterState::load_or_new_on_error(&tmp_dir.path(), "1.0.0+1", None, PatchVerificationMode::default()); diff --git a/library/src/lib.rs b/library/src/lib.rs index 4f3849e..63d83eb 100644 --- a/library/src/lib.rs +++ b/library/src/lib.rs @@ -30,4 +30,4 @@ mod test_utils; pub use self::updater::*; #[cfg(test)] -extern crate tempdir; +extern crate tempfile; diff --git a/library/src/updater.rs b/library/src/updater.rs index 995ebaf..5bd6cc1 100644 --- a/library/src/updater.rs +++ b/library/src/updater.rs @@ -789,7 +789,7 @@ pub fn start_update_thread() { mod tests { use serial_test::serial; use std::{fs, thread, time::Duration}; - use tempdir::TempDir; + use tempfile::TempDir; use crate::{ cache::UpdaterState, @@ -839,7 +839,7 @@ mod tests { #[serial] #[test] fn subsequent_init_calls_do_not_update_config() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); testing_reset_config(); let cache_dir = tmp_dir.path().to_str().unwrap().to_string(); @@ -892,7 +892,7 @@ mod tests { #[serial] #[test] fn ignore_version_after_marked_bad() -> anyhow::Result<()> { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, None); // Install a fake patch. @@ -923,7 +923,7 @@ mod tests { #[serial] #[test] fn reports_patch_install_failure_if_patch_was_booting() -> anyhow::Result<()> { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, None); install_fake_patch(1)?; @@ -964,7 +964,7 @@ mod tests { #[test] fn hash_matches() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let input_path = tmp_dir.path().join("input"); fs::write(&input_path, "hello world").unwrap(); @@ -1003,7 +1003,7 @@ mod tests { #[serial] #[test] fn init_missing_yaml() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let cache_dir = tmp_dir.path().to_str().unwrap().to_string(); assert_eq!( crate::init( @@ -1027,7 +1027,7 @@ mod tests { #[test] fn init_invalid_patch_verification() { testing_reset_config(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let cache_dir = tmp_dir.path().to_str().unwrap().to_string(); let yaml = r#" app_id: test_app @@ -1106,7 +1106,7 @@ patch_verification: bogus_mode .to_string(), )) .create(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); // Install the base apk to allow the "downloaded" patch 1 to successfully inflate and install. @@ -1168,7 +1168,7 @@ patch_verification: bogus_mode .mock("POST", "/api/v1/patches/events") .with_status(503) .create(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); // Install the base apk to allow the "downloaded" patch 1 to successfully inflate and install. @@ -1195,7 +1195,7 @@ patch_verification: bogus_mode #[serial] #[test] fn report_launch_result_with_no_current_patch() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, None); assert!(crate::report_launch_start().is_ok()); assert_eq!( @@ -1214,7 +1214,7 @@ patch_verification: bogus_mode use crate::cache::UpdaterState; use crate::config::with_config; let patch_number = 1; - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, None); // Install a fake patch. @@ -1245,7 +1245,7 @@ patch_verification: bogus_mode fn report_launch_failure_with_patch() { use crate::cache::UpdaterState; use crate::config::with_config; - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, None); // Install a fake patch. @@ -1278,7 +1278,7 @@ patch_verification: bogus_mode #[test] fn validate_compressed_patch_rejects_empty_file() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch_path = tmp_dir.path().join("empty.patch"); fs::write(&patch_path, b"").unwrap(); @@ -1294,7 +1294,7 @@ patch_verification: bogus_mode #[test] fn validate_compressed_patch_rejects_too_small_file() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch_path = tmp_dir.path().join("small.patch"); fs::write(&patch_path, b"abc").unwrap(); @@ -1310,7 +1310,7 @@ patch_verification: bogus_mode #[test] fn validate_compressed_patch_rejects_bad_magic() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch_path = tmp_dir.path().join("bad_magic.patch"); fs::write(&patch_path, b"not_zstd_data_here").unwrap(); @@ -1326,7 +1326,7 @@ patch_verification: bogus_mode #[test] fn validate_compressed_patch_accepts_valid_zstd_magic() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch_path = tmp_dir.path().join("valid.patch"); // Write zstd magic bytes followed by some data let mut data = vec![0x28, 0xB5, 0x2F, 0xFD]; @@ -1338,7 +1338,7 @@ patch_verification: bogus_mode #[test] fn inflate_fails_with_corrupt_zstd_data() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch_path = tmp_dir.path().join("corrupt.patch"); // Valid zstd magic but garbage content — passes validation but // fails during decompression or patch reading. @@ -1366,7 +1366,7 @@ patch_verification: bogus_mode use comde::com::Compressor; use comde::zstd::ZstdCompressor; - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); // Build a fake uncompressed patch that starts with a valid bipatch // header (magic 0xB1DF, version 0x1000 as little-endian u32s) so @@ -1407,7 +1407,7 @@ patch_verification: bogus_mode #[test] fn inflate_rejects_invalid_magic() { - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); let patch_path = tmp_dir.path().join("bad.patch"); fs::write(&patch_path, b"not zstd at all").unwrap(); @@ -1444,7 +1444,7 @@ patch_verification: bogus_mode .with_status(200) .with_body(check_response_body) .create(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); let mut updater_state = with_config(|config| { @@ -1493,7 +1493,7 @@ patch_verification: bogus_mode .with_status(200) .with_body(check_response_body) .create(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); install_fake_patch(patch_number)?; @@ -1529,7 +1529,7 @@ patch_verification: bogus_mode .mock("POST", "/api/v1/patches/events") .with_status(201) .create(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); with_config(|config| { @@ -1583,7 +1583,7 @@ patch_verification: bogus_mode fn no_config_lock_contention_when_waiting_for_patch_check() { static mut HAS_FINISHED_CONFIG: bool = false; - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, None); // Set up the network hooks to sleep for 10 seconds on a patch check request @@ -1635,7 +1635,7 @@ patch_verification: bogus_mode mod rollback_tests { use anyhow::Result; use serial_test::serial; - use tempdir::TempDir; + use tempfile::TempDir; use crate::{ network::PatchCheckResponse, @@ -1693,7 +1693,7 @@ mod rollback_tests { ], ) .create(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); let base = "hello world"; @@ -1744,7 +1744,7 @@ mod rollback_tests { .with_status(200) .with_body(check_response_body) .create(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); install_fake_patch(1)?; @@ -1783,7 +1783,7 @@ mod rollback_tests { .with_status(200) .with_body(check_response_body) .create(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); install_fake_patch(1)?; @@ -1841,7 +1841,7 @@ mod rollback_tests { ], ) .create(); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); // Install the base apk to allow the "downloaded" patch 1 to successfully inflate and install. @@ -1882,7 +1882,7 @@ mod check_for_downloadable_update_tests { use anyhow::Result; use serial_test::serial; - use tempdir::TempDir; + use tempfile::TempDir; use crate::{ network::PatchCheckResponse, report_launch_failure, report_launch_start, @@ -1920,7 +1920,7 @@ mod check_for_downloadable_update_tests { #[test] fn returns_false_if_no_patch_is_available() -> Result<()> { let server = mock_server(None, None); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); let is_update_available = crate::check_for_downloadable_update(None)?; @@ -1934,7 +1934,7 @@ mod check_for_downloadable_update_tests { fn returns_false_if_patch_is_already_installed() -> Result<()> { let patch_number = 1; let server = mock_server(Some(patch_number), None); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); install_fake_patch(patch_number)?; @@ -1950,7 +1950,7 @@ mod check_for_downloadable_update_tests { fn returns_false_if_patch_is_known_bad() -> Result<()> { let patch_number = 1; let server = mock_server(Some(patch_number), None); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); install_fake_patch(patch_number)?; @@ -1968,7 +1968,7 @@ mod check_for_downloadable_update_tests { fn returns_true_if_patch_has_no_issues() -> Result<()> { let patch_number = 1; let server = mock_server(Some(patch_number), None); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); let is_update_available = crate::check_for_downloadable_update(None)?; @@ -1982,7 +1982,7 @@ mod check_for_downloadable_update_tests { fn rolls_back_patches_if_needed() -> Result<()> { let patch_number = 1; let server = mock_server(None, Some(vec![patch_number])); - let tmp_dir = TempDir::new("example").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, Some(&server.url())); install_fake_patch(patch_number)?; @@ -2013,7 +2013,7 @@ mod check_for_downloadable_update_tests { mod multi_engine_tests { use anyhow::Result; use serial_test::serial; - use tempdir::TempDir; + use tempfile::TempDir; use crate::{ network::{testing_set_network_hooks, PatchCheckResponse}, @@ -2060,7 +2060,7 @@ mod multi_engine_tests { #[serial] #[test] fn multi_engine_false_positive_rollback() -> Result<()> { - let tmp_dir = TempDir::new("multi_engine_test").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, None); set_noop_network_hooks(); @@ -2160,7 +2160,7 @@ mod multi_engine_tests { #[serial] #[test] fn interleaved_boot_calls_success_clears_flag() -> Result<()> { - let tmp_dir = TempDir::new("interleaved_test").unwrap(); + let tmp_dir = TempDir::new().unwrap(); init_for_testing(&tmp_dir, None); set_noop_network_hooks();