diff --git a/Cargo.lock b/Cargo.lock index 48e5cc60..05b46ea6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -75,9 +75,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", @@ -90,33 +90,33 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -136,13 +136,14 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "assert_cmd" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" +checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" dependencies = [ "anstyle", "bstr", "doc-comment", + "libc", "predicates", "predicates-core", "predicates-tree", @@ -173,13 +174,13 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0" +checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-lite 2.3.0", "slab", ] @@ -218,9 +219,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.3" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" dependencies = [ "async-lock 3.4.0", "cfg-if", @@ -228,11 +229,11 @@ dependencies = [ "futures-io", "futures-lite 2.3.0", "parking", - "polling 3.7.2", - "rustix 0.38.34", + "polling 3.7.3", + "rustix 0.38.35", "slab", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -268,7 +269,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.34", + "rustix 0.38.35", "windows-sys 0.48.0", ] @@ -280,25 +281,25 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] name = "async-signal" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794f185324c2f00e771cd9f1ae8b5ac68be2ca7abb129a87afd6e86d228bc54d" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io 2.3.3", + "async-io 2.3.4", "async-lock 3.4.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.34", + "rustix 0.38.35", "signal-hook-registry", "slab", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -309,13 +310,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -364,7 +365,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustversion", - "serde 1.0.203", + "serde 1.0.209", "serde_json", "serde_path_to_error", "serde_urlencoded", @@ -406,7 +407,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -468,9 +469,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bitmaps" @@ -514,13 +515,13 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" dependencies = [ "memchr", "regex-automata 0.4.7", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -537,17 +538,17 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "camino" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -563,7 +564,7 @@ dependencies = [ "clap", "futures", "heck 0.5.0", - "indexmap 2.2.6", + "indexmap 2.5.0", "libc", "log", "p256", @@ -573,13 +574,13 @@ dependencies = [ "rand_core", "rpassword", "semver", - "serde 1.0.203", + "serde 1.0.209", "serde_json", "shell-escape", "tempfile", "tokio", "tokio-util", - "toml_edit 0.22.14", + "toml_edit 0.22.20", "url", "warg-client", "warg-crypto", @@ -589,7 +590,7 @@ dependencies = [ "wasm-metadata 0.215.0", "wasm-pkg-client", "wasmparser 0.215.0", - "wasmprinter 0.215.0", + "wasmprinter 0.216.0", "wat", "which", "wit-bindgen-core", @@ -606,20 +607,17 @@ dependencies = [ "clap", "dirs", "futures", - "indexmap 2.2.6", + "indexmap 2.5.0", "libc", "log", "owo-colors", "semver", - "serde 1.0.203", + "serde 1.0.209", "tokio", "tokio-util", - "toml_edit 0.22.14", + "toml_edit 0.22.20", "unicode-width", "url", - "warg-client", - "warg-crypto", - "warg-protocol", "wasm-pkg-client", "windows-sys 0.52.0", "wit-component 0.215.0", @@ -628,14 +626,14 @@ dependencies = [ [[package]] name = "cargo-config2" -version = "0.1.26" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83ce0be8bd1479e5de6202def660e6c7e27e4e0599bffa4fed05bd380ec2ede" +checksum = "1124054becb9262cc15c5e96e82f0d782f2aed3a3034d1f71a6385a6fa9e9595" dependencies = [ "home", - "serde 1.0.203", + "serde 1.0.209", "serde_derive", - "toml_edit 0.22.14", + "toml_edit 0.22.20", ] [[package]] @@ -644,7 +642,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" dependencies = [ - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -656,7 +654,7 @@ dependencies = [ "camino", "cargo-platform", "semver", - "serde 1.0.203", + "serde 1.0.209", "serde_json", "thiserror", ] @@ -672,9 +670,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.99" +version = "1.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +checksum = "e9d013ecb737093c0e86b151a7b837993cf9ec6c502946cfb44bedc392421e0b" +dependencies = [ + "shlex", +] [[package]] name = "cfg-if" @@ -692,9 +693,9 @@ dependencies = [ "iana-time-zone", "js-sys", "num-traits 0.2.19", - "serde 1.0.203", + "serde 1.0.209", "wasm-bindgen", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -709,9 +710,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.7" +version = "4.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" dependencies = [ "clap_builder", "clap_derive", @@ -719,9 +720,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.7" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" dependencies = [ "anstream", "anstyle", @@ -731,27 +732,27 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.5" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] name = "clap_lex" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "concurrent-queue" @@ -768,10 +769,10 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369" dependencies = [ - "lazy_static 1.4.0", + "lazy_static 1.5.0", "nom", "rust-ini", - "serde 1.0.203", + "serde 1.0.209", "serde-hjson", "serde_json", "toml 0.5.11", @@ -785,7 +786,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", - "lazy_static 1.4.0", + "lazy_static 1.5.0", "libc", "unicode-width", "windows-sys 0.52.0", @@ -809,15 +810,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] @@ -852,9 +853,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ "darling_core", "darling_macro", @@ -862,27 +863,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] name = "darling_macro" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -903,7 +904,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -989,17 +990,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "displaydoc" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "doc-comment" version = "0.3.3" @@ -1013,7 +1003,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31951f49556e34d90ed28342e1df7e1cb7a229c4cab0aecc627b5d91edd41d07" dependencies = [ "base64 0.21.7", - "serde 1.0.203", + "serde 1.0.209", "serde_json", ] @@ -1033,9 +1023,9 @@ dependencies = [ [[package]] name = "either" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "elliptic-curve" @@ -1079,7 +1069,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ "enumflags2_derive", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -1090,7 +1080,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -1171,9 +1161,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "ff" @@ -1206,21 +1196,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "form_urlencoded" version = "1.2.1" @@ -1299,7 +1274,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-core", "futures-io", "parking", @@ -1314,7 +1289,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -1388,9 +1363,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ "atomic-waker", "bytes", @@ -1398,7 +1373,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.2.6", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -1418,7 +1393,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -1500,18 +1475,18 @@ dependencies = [ [[package]] name = "http-auth" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643c9bbf6a4ea8a656d6b4cd53d34f79e3f841ad5203c1a55fb7d761923bc255" +checksum = "150fa4a9462ef926824cf4519c84ed652ca8f4fbae34cb8af045b5cbcaf98822" dependencies = [ "memchr", ] [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http", @@ -1556,9 +1531,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", @@ -1577,9 +1552,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http", @@ -1590,29 +1565,14 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", + "webpki-roots", ] [[package]] name = "hyper-util" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" dependencies = [ "bytes", "futures-channel", @@ -1651,124 +1611,6 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "id-arena" version = "2.2.1" @@ -1783,14 +1625,12 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "icu_normalizer", - "icu_properties", - "smallvec", - "utf8_iter", + "unicode-bidi", + "unicode-normalization", ] [[package]] @@ -1815,18 +1655,18 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] name = "indexmap" -version = "2.2.6" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown 0.14.5", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -1867,20 +1707,20 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi 0.4.0", "libc", "windows-sys 0.52.0", ] [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" @@ -1908,9 +1748,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] @@ -1925,7 +1765,7 @@ dependencies = [ "crypto-common", "digest", "hmac", - "serde 1.0.203", + "serde 1.0.209", "serde_json", "sha2", ] @@ -1937,7 +1777,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "363387f0019d714aa60cc30ab4fe501a747f4c08fc58f069dd14be971bd495a0" dependencies = [ "byteorder", - "lazy_static 1.4.0", + "lazy_static 1.5.0", "linux-keyutils", "secret-service", "security-framework", @@ -1952,9 +1792,9 @@ checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "leb128" @@ -1977,9 +1817,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.155" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libredox" @@ -1987,7 +1827,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", ] @@ -2003,7 +1843,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", ] @@ -2019,12 +1859,6 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" -[[package]] -name = "litemap" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" - [[package]] name = "lock_api" version = "0.4.12" @@ -2037,39 +1871,39 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "logos" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161971eb88a0da7ae0c333e1063467c5b5727e7fb6b710b8db4814eade3a42e8" +checksum = "ff1ceb190eb9bdeecdd8f1ad6a71d6d632a50905948771718741b5461fb01e13" dependencies = [ "logos-derive", ] [[package]] name = "logos-codegen" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e31badd9de5131fdf4921f6473d457e3dd85b11b7f091ceb50e4df7c3eeb12a" +checksum = "90be66cb7bd40cb5cc2e9cfaf2d1133b04a3d93b72344267715010a466e0915a" dependencies = [ "beef", "fnv", - "lazy_static 1.4.0", + "lazy_static 1.5.0", "proc-macro2", "quote", "regex-syntax 0.8.4", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] name = "logos-derive" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c2a69b3eb68d5bd595107c9ee58d7e07fe2bb5e360cc85b0f084dedac80de0a" +checksum = "45154231e8e96586b39494029e58f12f8ffcb5ecf80333a603a13aa205ea8cbd" dependencies = [ "logos-codegen", ] @@ -2133,7 +1967,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -2144,9 +1978,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" -version = "2.0.4" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" dependencies = [ "mime", "unicase", @@ -2163,13 +1997,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi 0.3.9", "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2178,23 +2013,6 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "nix" version = "0.26.4" @@ -2226,11 +2044,11 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "normpath" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5831952a9476f2fed74b77d74182fa5ddc4d21c72ec45a333b250e3ed0272804" +checksum = "c8911957c4b1549ac0dc74e30db9c8b0e66ddcd6d7acc33098f4c63a64a6d7ed" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2259,9 +2077,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits 0.2.19", @@ -2331,30 +2149,20 @@ 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 0.3.9", - "libc", -] - [[package]] name = "object" -version = "0.36.0" +version = "0.36.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" dependencies = [ "memchr", ] [[package]] -name = "oci-distribution" -version = "0.11.0" +name = "oci-client" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95a2c51531af0cb93761f66094044ca6ea879320bccd35ab747ff3fcab3f422" +checksum = "0f5098b86f972ac3484f7c9011bbbbd64aaa7e21d10d2c1a91fefb4ad0ba2ad9" dependencies = [ "bytes", "chrono", @@ -2362,11 +2170,11 @@ dependencies = [ "http", "http-auth", "jwt", - "lazy_static 1.4.0", + "lazy_static 1.5.0", "olpc-cjson", "regex", "reqwest", - "serde 1.0.203", + "serde 1.0.209", "serde_json", "sha2", "thiserror", @@ -2377,19 +2185,19 @@ dependencies = [ [[package]] name = "oci-wasm" -version = "0.0.4" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91502e5352f927156f2b6a28d2558cc59558b1f441b681df3f706ced6937e07" +checksum = "1d3493d1985a31c5fbd4b37f72a319aab88b55908185a5a799219c6152e9da9b" dependencies = [ "anyhow", "chrono", - "oci-distribution", - "serde 1.0.203", + "oci-client", + "serde 1.0.209", "serde_json", "sha2", "tokio", - "wit-component 0.209.1", - "wit-parser 0.209.1", + "wit-component 0.215.0", + "wit-parser 0.215.0", ] [[package]] @@ -2398,7 +2206,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d637c9c15b639ccff597da8f4fa968300651ad2f1e968aefc3b4927a6fb2027a" dependencies = [ - "serde 1.0.203", + "serde 1.0.209", "serde_json", "unicode-normalization", ] @@ -2409,50 +2217,6 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "openssl" -version = "0.10.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" -dependencies = [ - "bitflags 2.5.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "option-ext" version = "0.2.0" @@ -2528,7 +2292,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -2550,7 +2314,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1030c719b0ec2a2d25a5df729d6cff1acf3cc230bf766f4f97833591f7577b90" dependencies = [ "base64 0.21.7", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -2577,7 +2341,7 @@ dependencies = [ "pbjson-build", "prost", "prost-build", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -2602,7 +2366,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.2.6", + "indexmap 2.5.0", ] [[package]] @@ -2622,7 +2386,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -2639,12 +2403,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-io", ] @@ -2658,12 +2422,6 @@ dependencies = [ "spki", ] -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - [[package]] name = "polling" version = "2.8.0" @@ -2682,17 +2440,17 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.2" +version = "3.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.34", + "rustix 0.38.35", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2703,15 +2461,18 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "predicates" -version = "3.1.0" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" +checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" dependencies = [ "anstyle", "difflib", @@ -2723,15 +2484,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" dependencies = [ "predicates-core", "termtree", @@ -2749,12 +2510,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -2778,9 +2539,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -2812,7 +2573,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.66", + "syn 2.0.77", "tempfile", ] @@ -2826,7 +2587,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -2889,16 +2650,64 @@ dependencies = [ "config", "directories", "petgraph", - "serde 1.0.203", + "serde 1.0.209", "serde-value", "tint", ] +[[package]] +name = "quinn" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2 0.5.7", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +dependencies = [ + "bytes", + "rand", + "ring", + "rustc-hash", + "rustls", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +dependencies = [ + "libc", + "once_cell", + "socket2 0.5.7", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -2944,18 +2753,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", @@ -2964,9 +2773,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.5" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -3008,9 +2817,9 @@ checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ "base64 0.22.1", "bytes", @@ -3023,24 +2832,25 @@ dependencies = [ "http-body-util", "hyper", "hyper-rustls", - "hyper-tls", "hyper-util", "ipnet", "js-sys", "log", "mime", - "native-tls", "once_cell", "percent-encoding", "pin-project-lite", + "quinn", + "rustls", "rustls-pemfile", - "serde 1.0.203", + "rustls-pki-types", + "serde 1.0.209", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", "system-configuration", "tokio", - "tokio-native-tls", + "tokio-rustls", "tokio-socks", "tokio-util", "tower-service", @@ -3049,7 +2859,8 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "winreg", + "webpki-roots", + "windows-registry", ] [[package]] @@ -3110,6 +2921,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustix" version = "0.37.27" @@ -3126,11 +2943,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys 0.4.14", @@ -3139,11 +2956,12 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.10" +version = "0.23.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "once_cell", + "ring", "rustls-pki-types", "rustls-webpki", "subtle", @@ -3152,9 +2970,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" dependencies = [ "base64 0.22.1", "rustls-pki-types", @@ -3162,15 +2980,15 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] name = "rustls-webpki" -version = "0.102.4" +version = "0.102.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e" +checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" dependencies = [ "ring", "rustls-pki-types", @@ -3198,15 +3016,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "scopeguard" version = "1.2.0" @@ -3233,7 +3042,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" dependencies = [ - "serde 1.0.203", + "serde 1.0.209", "zeroize", ] @@ -3251,18 +3060,18 @@ dependencies = [ "num", "once_cell", "rand", - "serde 1.0.203", + "serde 1.0.209", "sha2", "zbus", ] [[package]] name = "security-framework" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -3271,9 +3080,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -3285,7 +3094,7 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -3296,9 +3105,9 @@ checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" dependencies = [ "serde_derive", ] @@ -3309,7 +3118,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8" dependencies = [ - "lazy_static 1.4.0", + "lazy_static 1.5.0", "num-traits 0.1.43", "regex", "serde 0.8.23", @@ -3322,29 +3131,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" dependencies = [ "ordered-float", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" dependencies = [ "itoa", + "memchr", "ryu", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -3354,7 +3164,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" dependencies = [ "itoa", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -3365,16 +3175,16 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] name = "serde_spanned" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -3386,21 +3196,21 @@ dependencies = [ "form_urlencoded", "itoa", "ryu", - "serde 1.0.203", + "serde 1.0.209", ] [[package]] name = "serde_with" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.6", - "serde 1.0.203", + "indexmap 2.5.0", + "serde 1.0.209", "serde_derive", "serde_json", "serde_with_macros", @@ -3409,14 +3219,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -3425,10 +3235,10 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.5.0", "itoa", "ryu", - "serde 1.0.203", + "serde 1.0.209", "unsafe-libyaml", ] @@ -3473,7 +3283,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ - "lazy_static 1.4.0", + "lazy_static 1.5.0", ] [[package]] @@ -3488,6 +3298,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -3577,12 +3393,6 @@ dependencies = [ "der", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "static_assertions" version = "1.1.0" @@ -3597,9 +3407,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -3614,9 +3424,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.66" +version = "2.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" dependencies = [ "proc-macro2", "quote", @@ -3634,34 +3444,26 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", + "futures-core", ] [[package]] name = "system-configuration" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" dependencies = [ "core-foundation-sys", "libc", @@ -3669,14 +3471,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", - "fastrand 2.1.0", - "rustix 0.38.34", - "windows-sys 0.52.0", + "fastrand 2.1.1", + "once_cell", + "rustix 0.38.35", + "windows-sys 0.59.0", ] [[package]] @@ -3696,22 +3499,22 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -3734,7 +3537,7 @@ dependencies = [ "itoa", "num-conv", "powerfmt", - "serde 1.0.203", + "serde 1.0.209", "time-core", "time-macros", ] @@ -3764,21 +3567,11 @@ dependencies = [ "lazy_static 0.2.11", ] -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -3791,42 +3584,31 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2 0.5.7", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", + "syn 2.0.77", ] [[package]] @@ -3842,9 +3624,9 @@ dependencies = [ [[package]] name = "tokio-socks" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0" +checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f" dependencies = [ "either", "futures-util", @@ -3871,28 +3653,28 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ - "serde 1.0.203", + "serde 1.0.209", ] [[package]] name = "toml" -version = "0.8.14" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ - "serde 1.0.203", + "serde 1.0.209", "serde_spanned", "toml_datetime", - "toml_edit 0.22.14", + "toml_edit 0.22.20", ] [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ - "serde 1.0.203", + "serde 1.0.209", ] [[package]] @@ -3901,22 +3683,22 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.5.0", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.14" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.2.6", - "serde 1.0.203", + "indexmap 2.5.0", + "serde 1.0.209", "serde_spanned", "toml_datetime", - "winnow 0.6.13", + "winnow 0.6.18", ] [[package]] @@ -3941,7 +3723,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "bytes", "futures-util", "http", @@ -3962,15 +3744,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -3992,7 +3774,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", ] [[package]] @@ -4066,6 +3848,12 @@ dependencies = [ "version_check", ] +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + [[package]] name = "unicode-ident" version = "1.0.12" @@ -4089,9 +3877,9 @@ checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" [[package]] name = "unsafe-libyaml" @@ -4107,28 +3895,16 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.1" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", "percent-encoding", - "serde 1.0.203", + "serde 1.0.209", ] -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - [[package]] name = "utf8parse" version = "0.2.2" @@ -4141,17 +3917,11 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "wait-timeout" @@ -4189,13 +3959,13 @@ dependencies = [ [[package]] name = "warg-api" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a22d3c9026f2f6a628cf386963844cdb7baea3b3419ba090c9096da114f977d" +checksum = "a44b422328c3a86be288f569694aa97df958ade0cd9514ed00bc562952c6778e" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.5.0", "itertools 0.12.1", - "serde 1.0.203", + "serde 1.0.209", "serde_with", "thiserror", "warg-crypto", @@ -4204,9 +3974,9 @@ dependencies = [ [[package]] name = "warg-client" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b8b5a2b17e737e1847dbf4642e4ebe49f5df32a574520251ff080ef0a120423" +checksum = "dd1af3c0a73c56613c152fb99048af889a57063756299460c8fc26fea52ddccc" dependencies = [ "anyhow", "async-recursion", @@ -4216,7 +3986,7 @@ dependencies = [ "dialoguer", "dirs", "futures-util", - "indexmap 2.2.6", + "indexmap 2.5.0", "itertools 0.12.1", "keyring", "libc", @@ -4227,7 +3997,7 @@ dependencies = [ "reqwest", "secrecy", "semver", - "serde 1.0.203", + "serde 1.0.209", "serde_json", "sha256", "tempfile", @@ -4250,9 +4020,9 @@ dependencies = [ [[package]] name = "warg-crypto" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "834bf58863aa4bc3821732afb0c77e08a5cbf05f63ee93116acae694eab04460" +checksum = "52fb6f3a64e3fef5425a0ab2b4354f1e49a699b76d58dd91d632483634f10474" dependencies = [ "anyhow", "base64 0.21.7", @@ -4263,7 +4033,7 @@ dependencies = [ "p256", "rand_core", "secrecy", - "serde 1.0.203", + "serde 1.0.209", "sha2", "signature", "thiserror", @@ -4271,9 +4041,9 @@ dependencies = [ [[package]] name = "warg-protobuf" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf8a2dee6b14f5b0b0c461711a81cdef45d45ea94f8460cb6205cada7fec732a" +checksum = "9bbb2d353497af3f6334bce11bfe69d638eedbb6d5059992acb2a05dd0beef5b" dependencies = [ "anyhow", "pbjson", @@ -4284,25 +4054,25 @@ dependencies = [ "prost-types", "protox", "regex", - "serde 1.0.203", + "serde 1.0.209", "warg-crypto", ] [[package]] name = "warg-protocol" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4053a3276d3fee83645411b1b5f462f72402e70fbf645164274a3a0a2fd72538" +checksum = "e3a710c66d8b5f2a7b046ecd2d45121530f561fd5c699b9c85ee49d332cfe773" dependencies = [ "anyhow", "base64 0.21.7", "hex", - "indexmap 2.2.6", + "indexmap 2.5.0", "pbjson-types", "prost", "prost-types", "semver", - "serde 1.0.203", + "serde 1.0.209", "serde_with", "thiserror", "warg-crypto", @@ -4313,23 +4083,23 @@ dependencies = [ [[package]] name = "warg-server" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfffee4ffd0f4d20263fe6fd4705b9ee311f6b482ca354a42cf4e78d55b58c51" +checksum = "331adb004508a909dfae729efb708a762fdfbdcb7dd5a1ac14db46a7aa1532ac" dependencies = [ "anyhow", "axum", "bytes", "clap", "futures", - "indexmap 2.2.6", + "indexmap 2.5.0", "secrecy", - "serde 1.0.203", + "serde 1.0.209", "tempfile", "thiserror", "tokio", "tokio-util", - "toml 0.8.14", + "toml 0.8.19", "tower", "tower-http", "tracing", @@ -4344,12 +4114,12 @@ dependencies = [ [[package]] name = "warg-transparency" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513ef81a5bb1ac5d7bd04f90d3c192dad8f590f4c02b3ef68d3ae4fbbb53c1d7" +checksum = "5b950a71a544b7ac8f5a5e95f43886ac97c3fe5c7080b955b1b534037596d7be" dependencies = [ "anyhow", - "indexmap 2.2.6", + "indexmap 2.5.0", "prost", "thiserror", "warg-crypto", @@ -4364,40 +4134,41 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi-preview1-component-adapter-provider" -version = "23.0.1" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba2aacb2ea1d483b13ae73bcdda9069dbf7424b20f72e0ad02d6988e4ec0bbb" +checksum = "36e6cadfa74538edd5409b6f8c79628436529138e9618b7373bec7aae7805835" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if", "js-sys", @@ -4407,9 +4178,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4417,22 +4188,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.77", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-compose" @@ -4443,10 +4214,10 @@ dependencies = [ "anyhow", "heck 0.4.1", "im-rc", - "indexmap 2.2.6", + "indexmap 2.5.0", "log", "petgraph", - "serde 1.0.203", + "serde 1.0.209", "serde_derive", "serde_yaml", "smallvec", @@ -4467,68 +4238,60 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.209.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4a05336882dae732ce6bd48b7e11fe597293cb72c13da4f35d7d5f8d53b2a7" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasm-encoder" -version = "0.210.0" +version = "0.215.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e3764d9d6edabd8c9e16195e177be0d20f6ab942ad18af52860f12f82bc59a" +checksum = "4fb56df3e06b8e6b77e37d2969a50ba51281029a9aeb3855e76b7f49b6418847" dependencies = [ "leb128", + "wasmparser 0.215.0", ] [[package]] name = "wasm-encoder" -version = "0.215.0" +version = "0.216.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb56df3e06b8e6b77e37d2969a50ba51281029a9aeb3855e76b7f49b6418847" +checksum = "04c23aebea22c8a75833ae08ed31ccc020835b12a41999e58c31464271b94a88" dependencies = [ "leb128", - "wasmparser 0.215.0", + "wasmparser 0.216.0", ] [[package]] name = "wasm-metadata" -version = "0.209.1" +version = "0.215.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d32029ce424f6d3c2b39b4419fb45a0e2d84fb0751e0c0a32b7ce8bd5d97f46" +checksum = "0c6bb07c5576b608f7a2a9baa2294c1a3584a249965d695a9814a496cb6d232f" dependencies = [ "anyhow", - "indexmap 2.2.6", - "serde 1.0.203", + "indexmap 2.5.0", + "serde 1.0.209", "serde_derive", "serde_json", "spdx", - "wasm-encoder 0.209.1", - "wasmparser 0.209.1", + "wasm-encoder 0.215.0", + "wasmparser 0.215.0", ] [[package]] name = "wasm-metadata" -version = "0.215.0" +version = "0.216.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6bb07c5576b608f7a2a9baa2294c1a3584a249965d695a9814a496cb6d232f" +checksum = "47c8154d703a6b0e45acf6bd172fa002fc3c7058a9f7615e517220aeca27c638" dependencies = [ "anyhow", - "indexmap 2.2.6", - "serde 1.0.203", + "indexmap 2.5.0", + "serde 1.0.209", "serde_derive", "serde_json", "spdx", - "wasm-encoder 0.215.0", - "wasmparser 0.215.0", + "wasm-encoder 0.216.0", + "wasmparser 0.216.0", ] [[package]] name = "wasm-pkg-client" -version = "0.4.1" -source = "git+https://github.com/bytecodealliance/wasm-pkg-tools.git?rev=c48006aa1bcff1e69f4f8fc6689249b314985ab1#c48006aa1bcff1e69f4f8fc6689249b314985ab1" +version = "0.5.0" +source = "git+https://github.com/bytecodealliance/wasm-pkg-tools.git?rev=5f92186a928b78b740a220fa0d4c66887cbdd382#5f92186a928b78b740a220fa0d4c66887cbdd382" dependencies = [ "anyhow", "async-trait", @@ -4537,28 +4300,30 @@ dependencies = [ "dirs", "docker_credential", "futures-util", - "oci-distribution", + "oci-client", "oci-wasm", "secrecy", - "serde 1.0.203", + "serde 1.0.209", "serde_json", "sha2", "thiserror", "tokio", "tokio-util", - "toml 0.8.14", + "toml 0.8.19", "tracing", "tracing-subscriber", "url", "warg-client", + "warg-crypto", "warg-protocol", "wasm-pkg-common", + "wit-component 0.216.0", ] [[package]] name = "wasm-pkg-common" -version = "0.4.1" -source = "git+https://github.com/bytecodealliance/wasm-pkg-tools.git?rev=c48006aa1bcff1e69f4f8fc6689249b314985ab1#c48006aa1bcff1e69f4f8fc6689249b314985ab1" +version = "0.5.0" +source = "git+https://github.com/bytecodealliance/wasm-pkg-tools.git?rev=5f92186a928b78b740a220fa0d4c66887cbdd382#5f92186a928b78b740a220fa0d4c66887cbdd382" dependencies = [ "anyhow", "bytes", @@ -4567,12 +4332,12 @@ dependencies = [ "http", "reqwest", "semver", - "serde 1.0.203", + "serde 1.0.209", "serde_json", "sha2", "thiserror", "tokio", - "toml 0.8.14", + "toml 0.8.19", "tracing", ] @@ -4595,36 +4360,36 @@ version = "0.121.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" dependencies = [ - "bitflags 2.5.0", - "indexmap 2.2.6", + "bitflags 2.6.0", + "indexmap 2.5.0", "semver", ] [[package]] name = "wasmparser" -version = "0.209.1" +version = "0.215.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07035cc9a9b41e62d3bb3a3815a66ab87c993c06fe1cf6b2a3f2a18499d937db" +checksum = "53fbde0881f24199b81cf49b6ff8f9c145ac8eb1b7fc439adb5c099734f7d90e" dependencies = [ "ahash", - "bitflags 2.5.0", + "bitflags 2.6.0", "hashbrown 0.14.5", - "indexmap 2.2.6", + "indexmap 2.5.0", "semver", + "serde 1.0.209", ] [[package]] name = "wasmparser" -version = "0.215.0" +version = "0.216.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fbde0881f24199b81cf49b6ff8f9c145ac8eb1b7fc439adb5c099734f7d90e" +checksum = "bcdee6bea3619d311fb4b299721e89a986c3470f804b6d534340e412589028e3" dependencies = [ "ahash", - "bitflags 2.5.0", + "bitflags 2.6.0", "hashbrown 0.14.5", - "indexmap 2.2.6", + "indexmap 2.5.0", "semver", - "serde 1.0.203", ] [[package]] @@ -4639,56 +4404,65 @@ dependencies = [ [[package]] name = "wasmprinter" -version = "0.215.0" +version = "0.216.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e9a325d85053408209b3d2ce5eaddd0dd6864d1cff7a007147ba073157defc" +checksum = "8f82916f3892e53620639217d6ec78fe15c678352a3fbf3f3745b6417d0bd70f" dependencies = [ "anyhow", "termcolor", - "wasmparser 0.215.0", + "wasmparser 0.216.0", ] [[package]] name = "wast" -version = "210.0.0" +version = "216.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa835c59bd615e00f16be65705d85517d40b44b3c831d724e450244685176c3c" +checksum = "f7eb1f2eecd913fdde0dc6c3439d0f24530a98ac6db6cb3d14d92a5328554a08" dependencies = [ "bumpalo", "leb128", "memchr", "unicode-width", - "wasm-encoder 0.210.0", + "wasm-encoder 0.216.0", ] [[package]] name = "wat" -version = "1.210.0" +version = "1.216.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67faece8487996430c6812be7f8776dc563ca0efcd3db77f8839070480c0d1a6" +checksum = "ac0409090fb5154f95fb5ba3235675fd9e579e731524d63b6a2f653e1280c82a" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", ] +[[package]] +name = "webpki-roots" +version = "0.26.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "which" -version = "6.0.1" +version = "6.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7" +checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" dependencies = [ "either", "home", - "rustix 0.38.34", + "rustix 0.38.35", "winsafe", ] @@ -4710,11 +4484,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4729,7 +4503,37 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", ] [[package]] @@ -4747,7 +4551,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -4767,18 +4580,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -4789,9 +4602,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -4801,9 +4614,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -4813,15 +4626,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -4831,9 +4644,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -4843,9 +4656,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -4855,9 +4668,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -4867,9 +4680,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -4882,23 +4695,13 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.13" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "winsafe" version = "0.0.19" @@ -4915,7 +4718,7 @@ dependencies = [ "cargo-component-core", "clap", "futures", - "indexmap 2.2.6", + "indexmap 2.5.0", "log", "p256", "predicates", @@ -4923,11 +4726,11 @@ dependencies = [ "rand_core", "rpassword", "semver", - "serde 1.0.203", + "serde 1.0.209", "tempfile", "tokio", "tokio-util", - "toml_edit 0.22.14", + "toml_edit 0.22.20", "url", "warg-client", "warg-crypto", @@ -4959,9 +4762,9 @@ checksum = "61a767d1a8eb4e908bfc53febc48b87ada545703b16fe0148ee7736a29a01417" dependencies = [ "anyhow", "heck 0.5.0", - "indexmap 2.2.6", + "indexmap 2.5.0", "prettyplease", - "syn 2.0.66", + "syn 2.0.77", "wasm-metadata 0.215.0", "wit-bindgen-core", "wit-component 0.215.0", @@ -4969,98 +4772,86 @@ dependencies = [ [[package]] name = "wit-component" -version = "0.209.1" +version = "0.215.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a2bb5b039f9cb03425e1d5a6e54b441ca4ca1b1d4fa6a0924db67a55168f99" +checksum = "f725e3885fc5890648be5c5cbc1353b755dc932aa5f1aa7de968b912a3280743" dependencies = [ "anyhow", - "bitflags 2.5.0", - "indexmap 2.2.6", + "bitflags 2.6.0", + "indexmap 2.5.0", "log", - "serde 1.0.203", + "serde 1.0.209", "serde_derive", "serde_json", - "wasm-encoder 0.209.1", - "wasm-metadata 0.209.1", - "wasmparser 0.209.1", - "wit-parser 0.209.1", + "wasm-encoder 0.215.0", + "wasm-metadata 0.215.0", + "wasmparser 0.215.0", + "wit-parser 0.215.0", ] [[package]] name = "wit-component" -version = "0.215.0" +version = "0.216.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f725e3885fc5890648be5c5cbc1353b755dc932aa5f1aa7de968b912a3280743" +checksum = "7e2ca3ece38ea2447a9069b43074ba73d96dde1944cba276c54e41371745f9dc" dependencies = [ "anyhow", - "bitflags 2.5.0", - "indexmap 2.2.6", + "bitflags 2.6.0", + "indexmap 2.5.0", "log", - "serde 1.0.203", + "serde 1.0.209", "serde_derive", "serde_json", - "wasm-encoder 0.215.0", - "wasm-metadata 0.215.0", - "wasmparser 0.215.0", - "wit-parser 0.215.0", + "wasm-encoder 0.216.0", + "wasm-metadata 0.216.0", + "wasmparser 0.216.0", + "wit-parser 0.216.0", ] [[package]] name = "wit-parser" -version = "0.209.1" +version = "0.215.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e79b9e3c0b6bb589dec46317e645851e0db2734c44e2be5e251b03ff4a51269" +checksum = "935a97eaffd57c3b413aa510f8f0b550a4a9fe7d59e79cd8b89a83dcb860321f" dependencies = [ "anyhow", "id-arena", - "indexmap 2.2.6", + "indexmap 2.5.0", "log", "semver", - "serde 1.0.203", + "serde 1.0.209", "serde_derive", "serde_json", "unicode-xid", - "wasmparser 0.209.1", + "wasmparser 0.215.0", ] [[package]] name = "wit-parser" -version = "0.215.0" +version = "0.216.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "935a97eaffd57c3b413aa510f8f0b550a4a9fe7d59e79cd8b89a83dcb860321f" +checksum = "a4d108165c1167a4ccc8a803dcf5c28e0a51d6739fd228cc7adce768632c764c" dependencies = [ "anyhow", "id-arena", - "indexmap 2.2.6", + "indexmap 2.5.0", "log", "semver", - "serde 1.0.203", + "serde 1.0.209", "serde_derive", "serde_json", "unicode-xid", - "wasmparser 0.215.0", + "wasmparser 0.216.0", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - [[package]] name = "xdg-home" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca91dcf8f93db085f3a0a29358cd0b9d670915468f4290e8b85d118a34211ab8" +checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5072,30 +4863,6 @@ dependencies = [ "linked-hash-map", ] -[[package]] -name = "yoke" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" -dependencies = [ - "serde 1.0.203", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", - "synstructure", -] - [[package]] name = "zbus" version = "3.15.2" @@ -5124,7 +4891,7 @@ dependencies = [ "once_cell", "ordered-stream", "rand", - "serde 1.0.203", + "serde 1.0.209", "serde_repr", "sha1", "static_assertions", @@ -5157,50 +4924,30 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d" dependencies = [ - "serde 1.0.203", + "serde 1.0.209", "static_assertions", "zvariant", ] [[package]] name = "zerocopy" -version = "0.7.34" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "zerofrom" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.4" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", - "synstructure", + "syn 2.0.77", ] [[package]] @@ -5209,28 +4956,6 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -[[package]] -name = "zerovec" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "zvariant" version = "3.15.2" @@ -5240,7 +4965,7 @@ dependencies = [ "byteorder", "enumflags2", "libc", - "serde 1.0.203", + "serde 1.0.209", "static_assertions", "zvariant_derive", ] diff --git a/Cargo.toml b/Cargo.toml index aed54649..b3c181a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,9 +43,6 @@ tokio = { workspace = true } tokio-util = { workspace = true } toml_edit = { workspace = true } url = { workspace = true } -warg-client = { workspace = true } -warg-crypto = { workspace = true } -warg-protocol = { workspace = true } wasi-preview1-component-adapter-provider = { workspace = true } wasm-metadata = { workspace = true } wasm-pkg-client = { workspace = true } @@ -60,6 +57,9 @@ wit-parser = { workspace = true } assert_cmd = { workspace = true } predicates = { workspace = true } tempfile = { workspace = true } +warg-client = { workspace = true } +warg-crypto = { workspace = true } +warg-protocol = { workspace = true } warg-server = { workspace = true } wasmprinter = { workspace = true } wat = { workspace = true } @@ -101,15 +101,15 @@ tokio-util = "0.7.10" toml_edit = { version = "0.22.9", features = ["serde"] } unicode-width = "0.1.11" url = { version = "2.5.0", features = ["serde"] } -warg-client = "0.7.0" -warg-crypto = "0.7.0" -warg-protocol = "0.7.0" -warg-server = "0.7.0" -wasi-preview1-component-adapter-provider = "23.0.1" +warg-client = "0.9.0" +warg-crypto = "0.9.0" +warg-protocol = "0.9.0" +warg-server = "0.9.0" +wasi-preview1-component-adapter-provider = "24" wasm-metadata = "0.215.0" -wasm-pkg-client = { git = "https://github.com/bytecodealliance/wasm-pkg-tools.git", rev = "c48006aa1bcff1e69f4f8fc6689249b314985ab1" } +wasm-pkg-client = { git = "https://github.com/bytecodealliance/wasm-pkg-tools.git", rev = "5f92186a928b78b740a220fa0d4c66887cbdd382" } wasmparser = "0.215.0" -wasmprinter = "0.215.0" +wasmprinter = "0.216.0" wat = "1.208.1" which = "6.0.1" wit-bindgen-core = "0.30.0" diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index 7bc43a47..302ef994 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -25,9 +25,6 @@ tokio-util = { workspace = true, features = ["io"] } toml_edit = { workspace = true } unicode-width = { workspace = true } url = { workspace = true } -warg-client = { workspace = true } -warg-crypto = { workspace = true } -warg-protocol = { workspace = true } wasm-pkg-client = { workspace = true } wit-component = { workspace = true } wit-parser = { workspace = true } diff --git a/crates/core/src/registry.rs b/crates/core/src/registry.rs index 30f89ea8..a494d395 100644 --- a/crates/core/src/registry.rs +++ b/crates/core/src/registry.rs @@ -17,8 +17,6 @@ use serde::{ }; use tokio::io::AsyncReadExt; -use url::Url; -use warg_client::{Config as WargConfig, FileSystemClient, StorageLockResult}; use wasm_pkg_client::{ caching::{CachingClient, FileCache}, Client, Config, ContentDigest, Error as WasmPkgError, PackageRef, Release, VersionInfo, @@ -26,50 +24,11 @@ use wasm_pkg_client::{ use wit_component::DecodedWasm; use wit_parser::{PackageId, PackageName, Resolve, UnresolvedPackageGroup, WorldId}; -use crate::{ - lock::{LockFileResolver, LockedPackageVersion}, - terminal::{Colors, Terminal}, -}; +use crate::lock::{LockFileResolver, LockedPackageVersion}; /// The name of the default registry. pub const DEFAULT_REGISTRY_NAME: &str = "default"; -/// Finds the URL for the given registry name. -pub fn find_url<'a>( - name: Option<&str>, - urls: &'a HashMap, - default: Option<&'a str>, -) -> Result<&'a str> { - let name = name.unwrap_or(DEFAULT_REGISTRY_NAME); - match urls.get(name) { - Some(url) => Ok(url.as_str()), - None if name != DEFAULT_REGISTRY_NAME => { - bail!("component registry `{name}` does not exist in the configuration") - } - None => default.context("a default component registry has not been set"), - } -} - -/// Creates a registry client with the given warg configuration. -pub async fn create_client( - config: &WargConfig, - url: &str, - terminal: &Terminal, -) -> Result { - match FileSystemClient::try_new_with_config(Some(url), config, None).await? { - StorageLockResult::Acquired(client) => Ok(client), - StorageLockResult::NotAcquired(path) => { - terminal.status_with_color( - "Blocking", - format!("waiting for file lock on `{path}`", path = path.display()), - Colors::Cyan, - )?; - - Ok(FileSystemClient::new_with_config(Some(url), config, None).await?) - } - } -} - /// Represents a WIT package dependency. #[derive(Debug, Clone)] pub enum Dependency { diff --git a/crates/wit/Cargo.toml b/crates/wit/Cargo.toml index da1b91bf..c5f0cd46 100644 --- a/crates/wit/Cargo.toml +++ b/crates/wit/Cargo.toml @@ -29,9 +29,6 @@ tokio = { workspace = true } toml_edit = { workspace = true } url = { workspace = true } wasm-pkg-client = { workspace = true } -warg-client = { workspace = true } -warg-crypto = { workspace = true } -warg-protocol = { workspace = true } wasm-metadata = { workspace = true } wit-component = { workspace = true } wit-parser = { workspace = true } @@ -39,6 +36,9 @@ wit-parser = { workspace = true } [dev-dependencies] assert_cmd = { workspace = true } predicates = { workspace = true } +warg-client = { workspace = true } +warg-crypto = { workspace = true } +warg-protocol = { workspace = true } warg-server = { workspace = true } tokio-util = { workspace = true } wasmparser = { workspace = true } diff --git a/crates/wit/README.md b/crates/wit/README.md index a60568bb..6b66c35b 100644 --- a/crates/wit/README.md +++ b/crates/wit/README.md @@ -118,13 +118,6 @@ To publish the WIT package to a registry, use the `publish` command: wit publish ``` -For new packages, the `--init` option must be used to initialize a new package -log for the package being published: - -``` -wit publish --init -``` - The command will publish the package to the default registry using the default signing key. diff --git a/crates/wit/src/commands/publish.rs b/crates/wit/src/commands/publish.rs index 58d2cd01..25705323 100644 --- a/crates/wit/src/commands/publish.rs +++ b/crates/wit/src/commands/publish.rs @@ -1,9 +1,7 @@ use anyhow::{Context, Result}; -use cargo_component_core::{cache_dir, command::CommonOptions, registry::find_url}; +use cargo_component_core::{cache_dir, command::CommonOptions}; use clap::Args; -use warg_crypto::signing::PrivateKey; -use warg_protocol::registry::PackageName; -use wasm_pkg_client::caching::FileCache; +use wasm_pkg_client::{caching::FileCache, PackageRef, Registry}; use crate::{ config::{Config, CONFIG_FILE_NAME}, @@ -22,17 +20,13 @@ pub struct PublishCommand { #[clap(long = "dry-run")] pub dry_run: bool, - /// Initialize a new package in the registry. - #[clap(long = "init")] - pub init: bool, - /// Use the specified registry name when publishing the package. #[clap(long = "registry", value_name = "REGISTRY")] - pub registry: Option, + pub registry: Option, /// Override the package name to publish. #[clap(long, value_name = "NAME")] - pub package: Option, + pub package: Option, } impl PublishCommand { @@ -44,7 +38,6 @@ impl PublishCommand { .with_context(|| format!("failed to find configuration file `{CONFIG_FILE_NAME}`"))?; let terminal = self.common.new_terminal(); - let warg_config = warg_client::Config::from_default_file()?.unwrap_or_default(); let pkg_config = if let Some(config_file) = self.common.config { wasm_pkg_client::Config::from_file(&config_file).context(format!( "failed to load configuration file from {}", @@ -55,31 +48,14 @@ impl PublishCommand { }; let file_cache = FileCache::new(cache_dir(self.common.cache_dir)?).await?; - let url = find_url( - self.registry.as_deref(), - &config.registries, - warg_config.home_url.as_deref(), - )?; - - let signing_key = if let Ok(key) = std::env::var("WIT_PUBLISH_KEY") { - Some(PrivateKey::decode(key).context( - "failed to parse signing key from `WIT_PUBLISH_KEY` environment variable", - )?) - } else { - None - }; - publish_wit_package( PublishOptions { config: &config, config_path: &config_path, - warg_config: &warg_config, pkg_config, cache: file_cache, - url, - signing_key, + registry: self.registry.as_ref(), package: self.package.as_ref(), - init: self.init, dry_run: self.dry_run, }, &terminal, diff --git a/crates/wit/src/lib.rs b/crates/wit/src/lib.rs index 101184a8..28dad853 100644 --- a/crates/wit/src/lib.rs +++ b/crates/wit/src/lib.rs @@ -2,22 +2,21 @@ #![deny(missing_docs)] +use std::{collections::HashSet, path::Path, sync::Arc}; + use anyhow::{bail, Context, Result}; -use bytes::Bytes; use cargo_component_core::{ lock::{LockFile, LockFileResolver, LockedPackage, LockedPackageVersion}, - registry::{create_client, DecodedDependency, DependencyResolutionMap, DependencyResolver}, + registry::{DecodedDependency, DependencyResolutionMap, DependencyResolver}, terminal::{Colors, Terminal}, }; use config::Config; use indexmap::{IndexMap, IndexSet}; use lock::{acquire_lock_file_ro, acquire_lock_file_rw, to_lock_file}; -use std::{collections::HashSet, path::Path, time::Duration}; -use warg_client::storage::{ContentStorage, PublishEntry, PublishInfo}; -use warg_crypto::signing::PrivateKey; -use warg_protocol::registry; use wasm_metadata::{Link, LinkType, RegistryMetadata}; -use wasm_pkg_client::caching::FileCache; +use wasm_pkg_client::{ + caching::FileCache, warg::WargRegistryConfig, Client, PackageRef, PublishOpts, Registry, +}; use wit_component::DecodedWasm; use wit_parser::{PackageId, PackageName, Resolve, UnresolvedPackageGroup}; @@ -229,7 +228,7 @@ async fn build_wit_package( pkg_config: wasm_pkg_client::Config, terminal: &Terminal, file_cache: FileCache, -) -> Result<(registry::PackageName, Vec)> { +) -> Result<(PackageRef, Vec)> { let dependencies = resolve_dependencies(config, config_path, pkg_config, terminal, true, file_cache).await?; @@ -259,12 +258,9 @@ async fn build_wit_package( struct PublishOptions<'a> { config: &'a Config, config_path: &'a Path, - warg_config: &'a warg_client::Config, pkg_config: wasm_pkg_client::Config, - url: &'a str, - signing_key: Option, - package: Option<&'a registry::PackageName>, - init: bool, + registry: Option<&'a Registry>, + package: Option<&'a PackageRef>, dry_run: bool, cache: FileCache, } @@ -319,11 +315,11 @@ fn add_registry_metadata(config: &Config, bytes: &[u8]) -> Result> { .context("failed to add registry metadata to component") } -async fn publish_wit_package(options: PublishOptions<'_>, terminal: &Terminal) -> Result<()> { +async fn publish_wit_package(mut options: PublishOptions<'_>, terminal: &Terminal) -> Result<()> { let (name, bytes) = build_wit_package( options.config, options.config_path, - options.pkg_config, + options.pkg_config.clone(), terminal, options.cache, ) @@ -336,53 +332,40 @@ async fn publish_wit_package(options: PublishOptions<'_>, terminal: &Terminal) - let bytes = add_registry_metadata(options.config, &bytes)?; let name = options.package.unwrap_or(&name); - let client = create_client(options.warg_config, options.url, terminal).await?; - - let content = client - .content() - .store_content( - Box::pin(futures::stream::once(async { Ok(Bytes::from(bytes)) })), - None, - ) - .await?; - - terminal.status("Publishing", format!("package `{name}` ({content})"))?; - - let mut info = PublishInfo { - name: name.clone(), - head: None, - entries: Default::default(), - }; - if options.init { - info.entries.push(PublishEntry::Init); + if let Ok(key) = std::env::var("WIT_PUBLISH_KEY") { + let registry = options.pkg_config.resolve_registry(name).ok_or_else(|| anyhow::anyhow!("Tried to set a signing key, but registry was not set and no default registry was found. Try setting the `--registry` option."))?.to_owned(); + // NOTE(thomastaylor312): If config doesn't already exist, this will essentially force warg + // usage because we'll be creating a config for warg, which means it will default to that + // protocol. So for all intents and purposes, setting a publish key forces warg usage. + let reg_config = options + .pkg_config + .get_or_insert_registry_config_mut(®istry); + let mut warg_conf = WargRegistryConfig::try_from(&*reg_config).unwrap_or_default(); + warg_conf.signing_key = Some(Arc::new( + key.try_into().context("Failed to parse signing key")?, + )); + reg_config.set_backend_config("warg", warg_conf)?; } - info.entries.push(PublishEntry::Release { - version: options.config.version.clone(), - content, - }); + terminal.status("Publishing", format!("package `{name}`"))?; - let record_id = if let Some(signing_key) = &options.signing_key { - client.publish_with_info(signing_key, info).await? - } else { - client.sign_with_keyring_and_publish(Some(info)).await? - }; - client - .wait_for_publish(name, &record_id, Duration::from_secs(1)) + let client = Client::new(options.pkg_config); + + let (name, version) = client + .publish_release_data( + Box::pin(std::io::Cursor::new(bytes)), + PublishOpts { + package: Some((name.to_owned(), options.config.version.to_owned())), + registry: options.registry.cloned(), + }, + ) .await?; - terminal.status( - "Published", - format!( - "package `{name}` v{version}", - version = options.config.version - ), - )?; + terminal.status("Published", format!("package `{name}` v{version}",))?; Ok(()) } - /// Update the dependencies in the lock file. pub async fn update_lockfile( config: &Config, diff --git a/crates/wit/tests/add.rs b/crates/wit/tests/add.rs index c040f95d..6daa1813 100644 --- a/crates/wit/tests/add.rs +++ b/crates/wit/tests/add.rs @@ -61,7 +61,7 @@ async fn validate_the_version_exists() -> Result<()> { let project = server.project("foo", Vec::::new())?; project.file("foo.wit", "package test:bar;\n")?; project - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:bar` v0.1.0")) @@ -95,7 +95,7 @@ async fn checks_for_duplicate_dependencies() -> Result<()> { let project = server.project("foo", Vec::::new())?; project.file("foo.wit", "package test:bar;\n")?; project - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:bar` v0.1.0")) @@ -129,7 +129,7 @@ async fn does_not_modify_manifest_for_dry_run() -> Result<()> { let project = server.project("foo", Vec::::new())?; project.file("foo.wit", "package test:bar;\n")?; project - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:bar` v0.1.0")) diff --git a/crates/wit/tests/publish.rs b/crates/wit/tests/publish.rs index 83203385..7b3400e4 100644 --- a/crates/wit/tests/publish.rs +++ b/crates/wit/tests/publish.rs @@ -1,14 +1,10 @@ -use std::fs; - use anyhow::{Context, Result}; use assert_cmd::prelude::*; +use futures::TryStreamExt; use predicates::str::contains; -use semver::Version; use toml_edit::{value, Array}; -use warg_client::{Client, FileSystemClient}; -use warg_protocol::registry::PackageName; use wasm_metadata::LinkType; -use wasm_pkg_client::warg::WargRegistryConfig; +use wasm_pkg_client::{Client, Error}; use crate::support::*; @@ -42,7 +38,7 @@ async fn it_publishes_a_wit_package() -> Result<()> { let project = server.project("foo", Vec::::new())?; project.file("baz.wit", "package test:qux;\n")?; project - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:qux` v0.1.0")) @@ -53,14 +49,12 @@ async fn it_publishes_a_wit_package() -> Result<()> { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn it_does_a_dry_run_publish() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; let project = server.project("foo", Vec::::new())?; project.file("baz.wit", "package test:qux;\n")?; project - .wit(["publish", "--init", "--dry-run"]) + .wit(["publish", "--dry-run"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains( @@ -68,23 +62,23 @@ async fn it_does_a_dry_run_publish() -> Result<()> { )) .success(); - let client = FileSystemClient::new_with_config(None, &warg_config.client_config, None).await?; + let client = Client::new(config); - assert!(client - .download(&"test:qux".parse().unwrap(), &"0.1.0".parse().unwrap()) + let err = client + .get_release(&"test:qux".parse().unwrap(), &"0.1.0".parse().unwrap()) .await - .unwrap_err() - .to_string() - .contains("package `test:qux` does not exist")); + .expect_err("Should not be able to get release after dry run"); + assert!( + matches!(err, Error::PackageNotFound), + "Expected PackageNotFound" + ); Ok(()) } #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn it_publishes_with_registry_metadata() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; let project = server.project("foo", Vec::::new())?; @@ -110,31 +104,23 @@ async fn it_publishes_with_registry_metadata() -> Result<()> { })?; project - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:qux` v0.1.0")) .success(); - let client = Client::new_with_config(None, &warg_config.client_config, None).await?; - let download = client - .download_exact(&PackageName::new("test:qux")?, &Version::parse("0.1.0")?) + let client = Client::new(config); + let package_ref = "test:qux".parse().unwrap(); + let release = client + .get_release(&package_ref, &"0.1.0".parse().unwrap()) .await?; + let stream = client.stream_content(&package_ref, &release).await?; - let bytes = fs::read(&download.path).with_context(|| { - format!( - "failed to read downloaded package `{path}`", - path = download.path.display() - ) - })?; + let bytes = stream.map_ok(Vec::from).try_concat().await?; let metadata = wasm_metadata::RegistryMetadata::from_wasm(&bytes) - .with_context(|| { - format!( - "failed to parse registry metadata from `{path}`", - path = download.path.display() - ) - })? + .context("failed to parse registry metadata from bytes")? .expect("missing registry metadata"); assert_eq!( diff --git a/crates/wit/tests/support/mod.rs b/crates/wit/tests/support/mod.rs index 62dad4d5..d26e4eee 100644 --- a/crates/wit/tests/support/mod.rs +++ b/crates/wit/tests/support/mod.rs @@ -1,9 +1,5 @@ #![allow(dead_code)] -use anyhow::{bail, Context, Result}; -use assert_cmd::prelude::OutputAssertExt; -use cargo_component_core::command::{CACHE_DIR_ENV_VAR, CONFIG_FILE_ENV_VAR}; -use indexmap::IndexSet; use std::{ env, ffi::OsStr, @@ -11,8 +7,14 @@ use std::{ path::{Path, PathBuf}, process::Command, rc::Rc, + sync::Arc, time::Duration, }; + +use anyhow::{bail, Context, Result}; +use assert_cmd::prelude::OutputAssertExt; +use cargo_component_core::command::{CACHE_DIR_ENV_VAR, CONFIG_FILE_ENV_VAR}; +use indexmap::IndexSet; use tempfile::TempDir; use tokio::task::JoinHandle; use tokio_util::sync::CancellationToken; @@ -156,7 +158,8 @@ where keyring_auth: false, keyring_backend: None, ignore_federation_hints: false, - auto_accept_federation_hints: false, + disable_auto_accept_federation_hints: false, + disable_auto_package_init: false, disable_interactive: true, }; @@ -178,6 +181,7 @@ where wasm_pkg_client::warg::WargRegistryConfig { client_config: warg_config, auth_token: None, + signing_key: Some(Arc::new(test_signing_key().to_string().try_into()?)), config_file: Some(config_file), }, ) diff --git a/crates/wit/tests/update.rs b/crates/wit/tests/update.rs index f415d654..1e2f51bf 100644 --- a/crates/wit/tests/update.rs +++ b/crates/wit/tests/update.rs @@ -36,7 +36,7 @@ async fn update_without_changes_is_a_noop() -> Result<()> { let project = server.project("bar", Vec::::new())?; project.file("bar.wit", "package test:bar;\n")?; project - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:bar` v0.1.0")) @@ -73,7 +73,7 @@ async fn test_update_without_compatible_changes_is_a_noop() -> Result<()> { project1.file("bar.wit", "package test:bar;\n")?; project1 - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:bar` v0.1.0")) @@ -126,7 +126,7 @@ async fn update_with_compatible_changes() -> Result<()> { )?; project1 - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:bar` v1.0.0")) @@ -182,7 +182,7 @@ async fn update_with_compatible_changes_is_noop_for_dryrun() -> Result<()> { )?; project1 - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:bar` v1.0.0")) @@ -242,7 +242,7 @@ async fn update_with_changed_dependencies() -> Result<()> { )?; project - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:bar` v1.0.0")) @@ -256,7 +256,7 @@ async fn update_with_changed_dependencies() -> Result<()> { )?; project - .wit(["publish", "--init"]) + .wit(["publish"]) .env("WIT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:baz` v1.0.0")) diff --git a/src/bindings.rs b/src/bindings.rs index a50114a0..1303280f 100644 --- a/src/bindings.rs +++ b/src/bindings.rs @@ -456,7 +456,7 @@ impl<'a> BindingsGenerator<'a> { used.insert( WorldKey::Interface(id), WorldItem::Interface { - id: id, + id, stability: Default::default(), }, ); @@ -556,7 +556,7 @@ impl<'a> BindingsGenerator<'a> { .insert( WorldKey::Interface(name_id), WorldItem::Interface { - id: id, + id, stability: Default::default(), }, ) diff --git a/src/commands/publish.rs b/src/commands/publish.rs index 6f97cd58..8870ff78 100644 --- a/src/commands/publish.rs +++ b/src/commands/publish.rs @@ -1,10 +1,9 @@ -use std::path::PathBuf; +use std::{path::PathBuf, sync::Arc}; use anyhow::{bail, Context, Result}; -use cargo_component_core::{command::CommonOptions, registry::find_url}; +use cargo_component_core::command::CommonOptions; use clap::Args; -use warg_crypto::signing::PrivateKey; -use warg_protocol::registry::PackageName; +use wasm_pkg_client::{warg::WargRegistryConfig, Registry}; use crate::{ config::{CargoArguments, CargoPackageSpec, Config}, @@ -70,11 +69,7 @@ pub struct PublishCommand { /// The registry to publish to. #[clap(long = "registry", value_name = "REGISTRY")] - pub registry: Option, - - /// Initialize a new package in the registry. - #[clap(long = "init")] - pub init: bool, + pub registry: Option, } impl PublishCommand { @@ -82,7 +77,7 @@ impl PublishCommand { pub async fn exec(self) -> Result<()> { log::debug!("executing publish command"); - let config = Config::new(self.common.new_terminal(), self.common.config.clone())?; + let mut config = Config::new(self.common.new_terminal(), self.common.config.clone())?; let client = config.client(self.common.cache_dir.clone(), false).await?; if let Some(target) = &self.target { @@ -127,17 +122,20 @@ impl PublishCommand { ) })?; - let registry_url = find_url( - self.registry.as_deref(), - &component_metadata.section.registries, - config.warg().home_url.as_deref(), - )?; - - let signing_key = if let Ok(key) = std::env::var("CARGO_COMPONENT_PUBLISH_KEY") { - Some(PrivateKey::decode(key).context("failed to parse signing key from `CARGO_COMPONENT_PUBLISH_KEY` environment variable")?) - } else { - None - }; + if let Ok(key) = std::env::var("CARGO_COMPONENT_PUBLISH_KEY") { + let registry = config.pkg_config.resolve_registry(name).ok_or_else(|| anyhow::anyhow!("Tried to set a signing key, but registry was not set and no default registry was found. Try setting the `--registry` option."))?.to_owned(); + // NOTE(thomastaylor312): If config doesn't already exist, this will essentially force warg + // usage because we'll be creating a config for warg, which means it will default to that + // protocol. So for all intents and purposes, setting a publish key forces warg usage. + let reg_config = config + .pkg_config + .get_or_insert_registry_config_mut(®istry); + let mut warg_conf = WargRegistryConfig::try_from(&*reg_config).unwrap_or_default(); + warg_conf.signing_key = Some(Arc::new( + key.try_into().context("Failed to parse signing key")?, + )); + reg_config.set_backend_config("warg", warg_conf)?; + } let cargo_build_args = CargoArguments { color: self.common.color, @@ -157,7 +155,7 @@ impl PublishCommand { let spawn_args = self.build_args()?; let outputs = run_cargo_command( - client, + client.clone(), &config, &metadata, &packages, @@ -172,20 +170,17 @@ impl PublishCommand { len = outputs.len() ); } - // Safe to unwrap here because we already know a PackageRef is valid - let package_name = PackageName::new(name.to_string()).unwrap(); + let options = PublishOptions { package, - registry_url, - init: self.init, - name: &package_name, + name, + registry: self.registry.as_ref(), version: &component_metadata.version, path: &outputs[0], - signing_key, dry_run: self.dry_run, }; - publish(&config, &options).await + publish(&config, client, &options).await } fn build_args(&self) -> Result> { diff --git a/src/config.rs b/src/config.rs index 7da45950..26a6134d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -491,8 +491,6 @@ impl CargoArguments { /// This is used to configure the behavior of cargo-component. #[derive(Debug)] pub struct Config { - /// The warg client configuration. - pub warg: warg_client::Config, /// The package configuration to use pub pkg_config: wasm_pkg_client::Config, /// The terminal to use. @@ -507,17 +505,11 @@ impl Config { None => wasm_pkg_client::Config::global_defaults()?, }; Ok(Self { - warg: warg_client::Config::from_default_file()?.unwrap_or_default(), pkg_config, terminal, }) } - /// Gets the warg client configuration. - pub fn warg(&self) -> &warg_client::Config { - &self.warg - } - /// Gets the package configuration. pub fn pkg_config(&self) -> &wasm_pkg_client::Config { &self.pkg_config diff --git a/src/lib.rs b/src/lib.rs index 5035cfb1..f2ebe5b1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,15 +12,13 @@ use std::{ path::{Path, PathBuf}, process::{Command, Stdio}, sync::Arc, - time::{Duration, SystemTime}, + time::SystemTime, }; use anyhow::{bail, Context, Result}; use bindings::BindingsGenerator; -use bytes::Bytes; use cargo_component_core::{ lock::{LockFile, LockFileResolver, LockedPackage, LockedPackageVersion}, - registry::create_client, terminal::Colors, }; use cargo_config2::{PathAndArgs, TargetTripleRef}; @@ -28,11 +26,11 @@ use cargo_metadata::{Artifact, Message, Metadata, MetadataCommand, Package}; use semver::Version; use shell_escape::escape; use tempfile::NamedTempFile; -use warg_client::storage::{ContentStorage, PublishEntry, PublishInfo}; -use warg_crypto::signing::PrivateKey; -use warg_protocol::registry::PackageName; use wasm_metadata::{Link, LinkType, RegistryMetadata}; -use wasm_pkg_client::caching::{CachingClient, FileCache}; +use wasm_pkg_client::{ + caching::{CachingClient, FileCache}, + PackageRef, PublishOpts, Registry, +}; use wasmparser::{Parser, Payload}; use wit_component::ComponentEncoder; @@ -1013,17 +1011,13 @@ pub struct PublishOptions<'a> { /// The package to publish. pub package: &'a Package, /// The registry URL to publish to. - pub registry_url: &'a str, - /// Whether to initialize the package or not. - pub init: bool, + pub registry: Option<&'a Registry>, /// The name of the package being published. - pub name: &'a PackageName, + pub name: &'a PackageRef, /// The version of the package being published. pub version: &'a Version, /// The path to the package being published. pub path: &'a Path, - /// The signing key to use for the publish operation. - pub signing_key: Option, /// Whether to perform a dry run or not. pub dry_run: bool, } @@ -1082,7 +1076,11 @@ fn add_registry_metadata(package: &Package, bytes: &[u8], path: &Path) -> Result } /// Publish a component for the given workspace and publish options. -pub async fn publish(config: &Config, options: &PublishOptions<'_>) -> Result<()> { +pub async fn publish( + config: &Config, + client: Arc>, + options: &PublishOptions<'_>, +) -> Result<()> { if options.dry_run { config .terminal() @@ -1090,8 +1088,6 @@ pub async fn publish(config: &Config, options: &PublishOptions<'_>) -> Result<() return Ok(()); } - let client = create_client(config.warg(), options.registry_url, config.terminal()).await?; - let bytes = fs::read(options.path).with_context(|| { format!( "failed to read component `{path}`", @@ -1101,54 +1097,25 @@ pub async fn publish(config: &Config, options: &PublishOptions<'_>) -> Result<() let bytes = add_registry_metadata(options.package, &bytes, options.path)?; - let content = client - .content() - .store_content( - Box::pin(futures::stream::once(async { Ok(Bytes::from(bytes)) })), - None, - ) - .await?; - config.terminal().status( "Publishing", - format!( - "component {path} ({content})", - path = options.path.display() - ), + format!("component {path}", path = options.path.display()), )?; - let mut info = PublishInfo { - name: options.name.clone(), - head: None, - entries: Default::default(), - }; - - if options.init { - info.entries.push(PublishEntry::Init); - } - - info.entries.push(PublishEntry::Release { - version: options.version.clone(), - content, - }); - - let record_id = if let Some(signing_key) = &options.signing_key { - client.publish_with_info(signing_key, info).await? - } else { - client.sign_with_keyring_and_publish(Some(info)).await? - }; - client - .wait_for_publish(options.name, &record_id, Duration::from_secs(1)) + let (name, version) = client + .client()? + .publish_release_data( + Box::pin(std::io::Cursor::new(bytes)), + PublishOpts { + package: Some((options.name.to_owned(), options.version.to_owned())), + registry: options.registry.cloned(), + }, + ) .await?; - config.terminal().status( - "Published", - format!( - "package `{name}` v{version}", - name = options.name, - version = options.version - ), - )?; + config + .terminal() + .status("Published", format!("package `{name}` v{version}"))?; Ok(()) } diff --git a/tests/add.rs b/tests/add.rs index 12d917e9..cde27fde 100644 --- a/tests/add.rs +++ b/tests/add.rs @@ -5,7 +5,6 @@ use assert_cmd::prelude::*; use predicates::{prelude::*, str::contains}; use tempfile::TempDir; use toml_edit::value; -use wasm_pkg_client::warg::WargRegistryConfig; use crate::support::*; @@ -46,20 +45,9 @@ async fn validate_the_package_exists() -> Result<()> { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn validate_the_version_exists() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - // NOTE(thomastaylor312): Once we have publishing in wasm_pkg_client, we won't need to get the config directly like this - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); - - publish_component( - &warg_config.client_config, - "test:bar", - "1.1.0", - "(component)", - true, - ) - .await?; + let (server, config, _) = spawn_server(Vec::::new()).await?; + + publish_component(config, "test:bar", "1.1.0", "(component)").await?; let project = server.project("foo", true, Vec::::new())?; @@ -85,19 +73,9 @@ async fn validate_the_version_exists() -> Result<()> { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn adds_dependencies_to_target_component() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; - publish_component( - &warg_config.client_config, - "test:bar", - "1.1.0", - "(component)", - true, - ) - .await?; + publish_component(config, "test:bar", "1.1.0", "(component)").await?; let project = server.project("foo_target", true, Vec::::new())?; @@ -144,19 +122,9 @@ fn checks_for_duplicate_dependencies() -> Result<()> { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn prints_modified_manifest_for_dry_run() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; - publish_component( - &warg_config.client_config, - "test:bar", - "1.2.3", - "(component)", - true, - ) - .await?; + publish_component(config, "test:bar", "1.2.3", "(component)").await?; let project = server.project("foo", true, Vec::::new())?; diff --git a/tests/new.rs b/tests/new.rs index 95edfddb..7017aeae 100644 --- a/tests/new.rs +++ b/tests/new.rs @@ -4,7 +4,6 @@ use anyhow::Result; use assert_cmd::prelude::*; use predicates::{str::contains, Predicate}; use tempfile::TempDir; -use wasm_pkg_client::warg::WargRegistryConfig; use crate::support::*; @@ -135,13 +134,10 @@ fn it_rejects_rust_keywords() -> Result<()> { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn it_targets_a_world() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; publish_wit( - &warg_config.client_config, + config, "test:bar", "1.2.3", r#"package test:bar@1.2.3; @@ -241,7 +237,6 @@ world foo { export another-func: func(yet: borrow) -> result; export another-func-empty: func(empty: borrow) -> result; }"#, - true, ) .await?; diff --git a/tests/publish.rs b/tests/publish.rs index 4ddd875b..0c5b5566 100644 --- a/tests/publish.rs +++ b/tests/publish.rs @@ -2,13 +2,11 @@ use std::fs; use anyhow::{Context, Result}; use assert_cmd::prelude::*; +use futures::stream::TryStreamExt; use predicates::str::contains; -use semver::Version; use toml_edit::{value, Array}; -use warg_client::Client; -use warg_protocol::registry::PackageName; use wasm_metadata::LinkType; -use wasm_pkg_client::warg::WargRegistryConfig; +use wasm_pkg_client::Client; use crate::support::*; @@ -26,13 +24,10 @@ fn help() { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn it_publishes_a_component() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; publish_wit( - &warg_config.client_config, + config, "test:world", "1.0.0", r#"package test:%world@1.0.0; @@ -40,7 +35,6 @@ world foo { import foo: func() -> string; export bar: func() -> string; }"#, - true, ) .await?; @@ -55,7 +49,7 @@ world foo { assert!(source.contains("use bindings::Guest;")); project - .cargo_component(["publish", "--init"]) + .cargo_component(["publish"]) .env("CARGO_COMPONENT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:foo` v0.1.0")) @@ -72,59 +66,18 @@ world foo { Ok(()) } -#[tokio::test(flavor = "multi_thread", worker_threads = 1)] -async fn it_fails_if_package_does_not_exist() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); - - publish_wit( - &warg_config.client_config, - "test:world", - "1.0.0", - r#"package test:%world@1.0.0; -world foo { - import foo: func() -> string; - export bar: func() -> string; -}"#, - true, - ) - .await?; - - let project = server.project( - "foo", - true, - ["--namespace", "test", "--target", "test:world"], - )?; - project - .cargo_component(["publish"]) - .env("CARGO_COMPONENT_PUBLISH_KEY", test_signing_key()) - .assert() - .stderr(contains( - "package `test:foo` must be initialized before publishing", - )) - .failure(); - - Ok(()) -} - #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn it_publishes_a_dependency() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; publish_wit( - &warg_config.client_config, + config, "test:world", "1.0.0", r#"package test:%world@1.0.0; world foo { export bar: func() -> string; }"#, - true, ) .await?; @@ -135,7 +88,7 @@ world foo { )?; project - .cargo_component(["publish", "--init"]) + .cargo_component(["publish"]) .env("CARGO_COMPONENT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:foo` v0.1.0")) @@ -171,7 +124,7 @@ bindings::export!(Component with_types_in bindings); fs::write(project.root().join("src/lib.rs"), source)?; project - .cargo_component(["publish", "--init"]) + .cargo_component(["publish"]) .env("CARGO_COMPONENT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:bar` v0.1.0")) @@ -184,10 +137,7 @@ bindings::export!(Component with_types_in bindings); #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn it_publishes_with_registry_metadata() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; let authors = ["Jane Doe "]; let categories = ["wasm"]; @@ -211,7 +161,7 @@ async fn it_publishes_with_registry_metadata() -> Result<()> { })?; project - .cargo_component(["publish", "--init"]) + .cargo_component(["publish"]) .env("CARGO_COMPONENT_PUBLISH_KEY", test_signing_key()) .assert() .stderr(contains("Published package `test:foo` v0.1.0")) @@ -219,25 +169,17 @@ async fn it_publishes_with_registry_metadata() -> Result<()> { validate_component(&project.release_wasm("foo"))?; - let client = Client::new_with_config(None, &warg_config.client_config, None).await?; - let download = client - .download_exact(&PackageName::new("test:foo")?, &Version::parse("0.1.0")?) + let client = Client::new(config); + let package_ref = "test:foo".parse().unwrap(); + let release = client + .get_release(&package_ref, &"0.1.0".parse().unwrap()) .await?; + let stream = client.stream_content(&package_ref, &release).await?; - let bytes = fs::read(&download.path).with_context(|| { - format!( - "failed to read downloaded package `{path}`", - path = download.path.display() - ) - })?; + let bytes = stream.map_ok(Vec::from).try_concat().await?; let metadata = wasm_metadata::RegistryMetadata::from_wasm(&bytes) - .with_context(|| { - format!( - "failed to parse registry metadata from `{path}`", - path = download.path.display() - ) - })? + .context("failed to parse registry metadata from data")? .expect("missing registry metadata"); assert_eq!( diff --git a/tests/support/mod.rs b/tests/support/mod.rs index 1c2bbdaa..d546ce84 100644 --- a/tests/support/mod.rs +++ b/tests/support/mod.rs @@ -5,6 +5,7 @@ use std::{ path::{Path, PathBuf}, process::Command, rc::Rc, + sync::Arc, time::Duration, }; @@ -16,14 +17,10 @@ use tempfile::TempDir; use tokio::task::JoinHandle; use tokio_util::sync::CancellationToken; use toml_edit::DocumentMut; -use warg_client::{ - storage::{ContentStorage, PublishEntry, PublishInfo}, - FileSystemClient, -}; use warg_crypto::signing::PrivateKey; -use warg_protocol::{operator::NamespaceState, registry::PackageName}; +use warg_protocol::operator::NamespaceState; use warg_server::{policy::content::WasmContentPolicy, Config, Server}; -use wasm_pkg_client::Registry; +use wasm_pkg_client::{Client, PackageRef, PublishOpts, Registry}; use wasmparser::{Chunk, Encoding, Parser, Payload, Validator}; use wit_parser::{Resolve, UnresolvedPackageGroup}; @@ -57,74 +54,46 @@ where } pub async fn publish( - config: &warg_client::Config, - name: &PackageName, + config: wasm_pkg_client::Config, + name: &PackageRef, version: &str, content: Vec, - init: bool, ) -> Result<()> { - let client = FileSystemClient::new_with_config(None, config, None).await?; - - let digest = client - .content() - .store_content( - Box::pin(futures::stream::once(async move { Ok(content.into()) })), - None, - ) - .await - .context("failed to store component for publishing")?; + let client = Client::new(config); - let mut entries = Vec::with_capacity(2); - if init { - entries.push(PublishEntry::Init); - } - entries.push(PublishEntry::Release { - version: version.parse().unwrap(), - content: digest, - }); - - let record_id = client - .publish_with_info( - &PrivateKey::decode(test_signing_key().to_string()).unwrap(), - PublishInfo { - name: name.clone(), - head: None, - entries, + client + .publish_release_data( + Box::pin(std::io::Cursor::new(content)), + PublishOpts { + package: Some((name.to_owned(), version.parse().unwrap())), + ..Default::default() }, ) - .await - .context("failed to publish component")?; - - client - .wait_for_publish(name, &record_id, Duration::from_secs(1)) .await?; Ok(()) } pub async fn publish_component( - config: &warg_client::Config, + config: wasm_pkg_client::Config, id: &str, version: &str, wat: &str, - init: bool, ) -> Result<()> { publish( config, &id.parse()?, version, wat::parse_str(wat).context("failed to parse component for publishing")?, - init, ) .await } pub async fn publish_wit( - config: &warg_client::Config, + config: wasm_pkg_client::Config, id: &str, version: &str, wit: &str, - init: bool, ) -> Result<()> { let mut resolve = Resolve::new(); let pkg = resolve @@ -137,7 +106,7 @@ pub async fn publish_wit( let bytes = wit_component::encode(Some(true), &resolve, pkg) .context("failed to encode wit for publishing")?; - publish(config, &id.parse()?, version, bytes, init).await + publish(config, &id.parse()?, version, bytes).await } pub struct ServerInstance { @@ -215,7 +184,8 @@ where keyring_auth: false, keyring_backend: None, ignore_federation_hints: false, - auto_accept_federation_hints: false, + disable_auto_accept_federation_hints: false, + disable_auto_package_init: false, disable_interactive: true, }; @@ -237,6 +207,7 @@ where wasm_pkg_client::warg::WargRegistryConfig { client_config: warg_config, auth_token: None, + signing_key: Some(Arc::new(test_signing_key().to_string().try_into()?)), config_file: Some(config_file), }, ) diff --git a/tests/update.rs b/tests/update.rs index e439009c..4023b7e0 100644 --- a/tests/update.rs +++ b/tests/update.rs @@ -4,7 +4,6 @@ use anyhow::{Context, Result}; use assert_cmd::prelude::*; use predicates::{prelude::PredicateBooleanExt, str::contains}; use toml_edit::value; -use wasm_pkg_client::warg::WargRegistryConfig; use crate::support::*; @@ -24,13 +23,10 @@ fn help() { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn update_without_changes_is_a_noop() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; publish_wit( - &warg_config.client_config, + config, "test:bar", "1.0.0", r#"package test:bar@1.0.0; @@ -38,7 +34,6 @@ world foo { import foo: func() -> string; export bar: func() -> string; }"#, - true, ) .await?; @@ -63,13 +58,10 @@ world foo { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn update_without_compatible_changes_is_a_noop() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; publish_wit( - &warg_config.client_config, + config.clone(), "test:bar", "1.0.0", r#"package test:bar@1.0.0; @@ -77,7 +69,6 @@ world foo { import foo: func() -> string; export bar: func() -> string; }"#, - true, ) .await?; @@ -92,14 +83,13 @@ world foo { validate_component(&project.debug_wasm("component"))?; publish_wit( - &warg_config.client_config, + config, "test:bar", "2.0.0", r#"package test:bar@2.0.0; world foo { export bar: func() -> string; }"#, - false, ) .await?; @@ -123,13 +113,10 @@ world foo { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn update_with_compatible_changes() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; publish_wit( - &warg_config.client_config, + config.clone(), "test:bar", "1.0.0", r#"package test:bar@1.0.0; @@ -137,7 +124,6 @@ world foo { import foo: func() -> string; export bar: func() -> string; }"#, - true, ) .await?; @@ -152,7 +138,7 @@ world foo { validate_component(&project.debug_wasm("component"))?; publish_wit( - &warg_config.client_config, + config, "test:bar", "1.1.0", r#"package test:bar@1.1.0; @@ -161,7 +147,6 @@ world foo { import baz: func() -> string; export bar: func() -> string; }"#, - false, ) .await?; @@ -201,13 +186,10 @@ bindings::export!(Component with_types_in bindings); #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn update_with_compatible_changes_is_noop_for_dryrun() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; publish_wit( - &warg_config.client_config, + config.clone(), "test:bar", "1.0.0", r#"package test:bar@1.0.0; @@ -215,7 +197,6 @@ world foo { import foo: func() -> string; export bar: func() -> string; }"#, - true, ) .await?; @@ -230,7 +211,7 @@ world foo { validate_component(&project.debug_wasm("component"))?; publish_wit( - &warg_config.client_config, + config.clone(), "test:bar", "1.1.0", r#"package test:bar@1.1.0; @@ -239,7 +220,6 @@ world foo { import baz: func() -> string; export bar: func() -> string; }"#, - false, ) .await?; @@ -266,27 +246,10 @@ world foo { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn update_with_changed_dependencies() -> Result<()> { - let (server, config, registry) = spawn_server(Vec::::new()).await?; - - let warg_config = - WargRegistryConfig::try_from(config.registry_config(®istry).unwrap()).unwrap(); + let (server, config, _) = spawn_server(Vec::::new()).await?; - publish_component( - &warg_config.client_config, - "test:bar", - "1.0.0", - "(component)", - true, - ) - .await?; - publish_component( - &warg_config.client_config, - "test:baz", - "1.0.0", - "(component)", - true, - ) - .await?; + publish_component(config.clone(), "test:bar", "1.0.0", "(component)").await?; + publish_component(config, "test:baz", "1.0.0", "(component)").await?; let project = server.project("foo", true, Vec::::new())?;