From 6ab1da1cbd988b0fce708598725c08487f5c2697 Mon Sep 17 00:00:00 2001 From: Taylor Thomas Date: Mon, 3 Mar 2025 12:07:11 -0700 Subject: [PATCH] feat!: Removes warg This PR only focuses on removing warg with some basic updates to the documentation. Ideally we can change the config file as well, but I figured it would be good to start Signed-off-by: Taylor Thomas --- Cargo.lock | 1935 +----------------- Cargo.toml | 3 - README.md | 50 +- crates/wasm-pkg-client/Cargo.toml | 3 - crates/wasm-pkg-client/src/lib.rs | 8 +- crates/wasm-pkg-client/src/oci/loader.rs | 13 +- crates/wasm-pkg-client/src/warg/config.rs | 214 -- crates/wasm-pkg-client/src/warg/loader.rs | 70 - crates/wasm-pkg-client/src/warg/mod.rs | 105 - crates/wasm-pkg-client/src/warg/publisher.rs | 67 - crates/wasm-pkg-common/Cargo.toml | 9 +- crates/wasm-pkg-common/src/config/toml.rs | 18 +- crates/wasm-pkg-common/src/metadata.rs | 76 +- crates/wasm-pkg-core/Cargo.toml | 1 + crates/wasm-pkg-core/src/lock.rs | 4 +- crates/wkg/Cargo.toml | 7 +- 16 files changed, 116 insertions(+), 2467 deletions(-) delete mode 100644 crates/wasm-pkg-client/src/warg/config.rs delete mode 100644 crates/wasm-pkg-client/src/warg/loader.rs delete mode 100644 crates/wasm-pkg-client/src/warg/mod.rs delete mode 100644 crates/wasm-pkg-client/src/warg/publisher.rs diff --git a/Cargo.lock b/Cargo.lock index 50d94fb..b535488 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,29 +8,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.4" @@ -40,12 +17,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -135,12 +106,6 @@ version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" -[[package]] -name = "arraydeque" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" - [[package]] name = "asn1-rs" version = "0.7.2" @@ -196,131 +161,6 @@ dependencies = [ "xattr", ] -[[package]] -name = "async-broadcast" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" -dependencies = [ - "event-listener", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-channel" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" -dependencies = [ - "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-executor" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "pin-project-lite", - "slab", -] - -[[package]] -name = "async-fs" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5" -dependencies = [ - "async-lock", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-io" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" -dependencies = [ - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-io", - "futures-lite", - "parking", - "polling", - "rustix", - "slab", - "windows-sys 0.61.2", -] - -[[package]] -name = "async-lock" -version = "3.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" -dependencies = [ - "event-listener", - "event-listener-strategy", - "pin-project-lite", -] - -[[package]] -name = "async-process" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" -dependencies = [ - "async-channel", - "async-io", - "async-lock", - "async-signal", - "async-task", - "blocking", - "cfg-if", - "event-listener", - "futures-lite", - "rustix", -] - -[[package]] -name = "async-recursion" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "async-signal" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" -dependencies = [ - "async-io", - "async-lock", - "atomic-waker", - "cfg-if", - "futures-core", - "futures-io", - "rustix", - "signal-hook-registry", - "slab", - "windows-sys 0.61.2", -] - [[package]] name = "async-stream" version = "0.3.6" @@ -343,12 +183,6 @@ dependencies = [ "syn", ] -[[package]] -name = "async-task" -version = "4.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" - [[package]] name = "async-trait" version = "0.1.89" @@ -450,36 +284,12 @@ dependencies = [ "tower-service", ] -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "base64ct" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" - -[[package]] -name = "beef" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" - [[package]] name = "bit-vec" version = "0.9.1" @@ -494,18 +304,6 @@ name = "bitflags" version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" -dependencies = [ - "serde_core", -] - -[[package]] -name = "bitmaps" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" -dependencies = [ - "typenum", -] [[package]] name = "block-buffer" @@ -516,28 +314,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blocking" -version = "1.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" -dependencies = [ - "async-channel", - "async-task", - "futures-io", - "futures-lite", - "piper", -] - [[package]] name = "bollard" version = "0.19.4" @@ -545,7 +321,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87a52479c9237eb04047ddb94788c41ca0d26eaff8b697ecfbb4c32f7fdc3b1b" dependencies = [ "async-stream", - "base64 0.22.1", + "base64", "bitflags", "bollard-buildkit-proto", "bollard-stubs", @@ -565,7 +341,7 @@ dependencies = [ "log", "num", "pin-project-lite", - "rand 0.9.4", + "rand", "rustls", "rustls-native-certs", "rustls-pemfile", @@ -591,8 +367,8 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85a885520bf6249ab931a764ffdb87b0ceef48e6e7d807cfdb21b751e086e1ad" dependencies = [ - "prost 0.14.4", - "prost-types 0.14.4", + "prost", + "prost-types", "tonic", "tonic-prost", "ureq", @@ -604,11 +380,11 @@ version = "1.49.1-rc.28.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5731fe885755e92beff1950774068e0cae67ea6ec7587381536fca84f1779623" dependencies = [ - "base64 0.22.1", + "base64", "bollard-buildkit-proto", "bytes", "chrono", - "prost 0.14.4", + "prost", "serde", "serde_json", "serde_repr", @@ -630,27 +406,12 @@ version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593" -[[package]] -name = "cbc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" -dependencies = [ - "cipher", -] - [[package]] name = "cc" version = "1.2.65" @@ -689,16 +450,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clap" version = "4.6.1" @@ -728,7 +479,7 @@ version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn", @@ -775,73 +526,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "config" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" -dependencies = [ - "async-trait", - "convert_case", - "json5", - "nom", - "pathdiff", - "ron", - "rust-ini", - "serde", - "serde_json", - "toml", - "yaml-rust2", -] - -[[package]] -name = "console" -version = "0.15.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" -dependencies = [ - "encode_unicode", - "libc", - "once_cell", - "unicode-width 0.2.2", - "windows-sys 0.59.0", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "const-random" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" -dependencies = [ - "const-random-macro", -] - -[[package]] -name = "const-random-macro" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" -dependencies = [ - "getrandom 0.2.17", - "once_cell", - "tiny-keccak", -] - [[package]] name = "const_format" version = "0.2.36" @@ -863,15 +547,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -916,30 +591,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - [[package]] name = "crypto-common" version = "0.1.7" @@ -1025,46 +676,6 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" -[[package]] -name = "dbus" -version = "0.9.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b942602992bb7acfd1f51c49811c58a610ef9181b6e66f3e519d79b540a3bf73" -dependencies = [ - "libc", - "libdbus-sys", - "windows-sys 0.61.2", -] - -[[package]] -name = "dbus-secret-service" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708b509edf7889e53d7efb0ffadd994cc6c2345ccb62f55cfd6b0682165e4fa6" -dependencies = [ - "aes", - "block-padding", - "cbc", - "dbus", - "fastrand", - "hkdf", - "num", - "once_cell", - "sha2", - "zeroize", -] - -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - [[package]] name = "der-parser" version = "10.0.0" @@ -1119,19 +730,6 @@ dependencies = [ "syn", ] -[[package]] -name = "dialoguer" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" -dependencies = [ - "console", - "shell-words", - "tempfile", - "thiserror 1.0.69", - "zeroize", -] - [[package]] name = "digest" version = "0.10.7" @@ -1139,39 +737,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", - "const-oid", "crypto-common", - "subtle", -] - -[[package]] -name = "directories" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", ] [[package]] @@ -1185,22 +751,13 @@ dependencies = [ "syn", ] -[[package]] -name = "dlv-list" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" -dependencies = [ - "const-random", -] - [[package]] name = "docker_credential" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29547a1dc60885a552306986316bc9701ba120c1a8db6769fa68691529ad373d" dependencies = [ - "base64 0.22.1", + "base64", "serde", "serde_json", ] @@ -1217,52 +774,12 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - [[package]] name = "either" version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest", - "ff", - "generic-array", - "group", - "pem-rfc7468", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "subtle", - "zeroize", -] - -[[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - [[package]] name = "encoding_rs" version = "0.8.35" @@ -1272,33 +789,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "endi" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" - -[[package]] -name = "enumflags2" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -1336,43 +826,12 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "event-listener" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener", - "pin-project-lite", -] - [[package]] name = "fastrand" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" -[[package]] -name = "ff" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "filetime" version = "0.2.29" @@ -1389,12 +848,6 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - [[package]] name = "fixedbitset" version = "0.5.7" @@ -1486,19 +939,6 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" -[[package]] -name = "futures-lite" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", -] - [[package]] name = "futures-macro" version = "0.3.32" @@ -1553,7 +993,6 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", - "zeroize", ] [[package]] @@ -1611,17 +1050,6 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "h2" version = "0.4.15" @@ -1647,16 +1075,6 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] - [[package]] name = "hashbrown" version = "0.15.5" @@ -1672,57 +1090,18 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" -[[package]] -name = "hashlink" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" -dependencies = [ - "hashbrown 0.14.5", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - [[package]] name = "home" version = "0.5.12" @@ -1858,7 +1237,7 @@ version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-channel", "futures-util", @@ -2031,20 +1410,6 @@ dependencies = [ "icu_properties", ] -[[package]] -name = "im-rc" -version = "15.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe" -dependencies = [ - "bitmaps", - "rand_core 0.6.4", - "rand_xoshiro", - "sized-chunks", - "typenum", - "version_check", -] - [[package]] name = "indexmap" version = "1.9.3" @@ -2068,16 +1433,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "inout" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" -dependencies = [ - "block-padding", - "generic-array", -] - [[package]] name = "ipnet" version = "2.12.0" @@ -2090,24 +1445,6 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.14.0" @@ -2193,24 +1530,13 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "json5" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1" -dependencies = [ - "pest", - "pest_derive", - "serde", -] - [[package]] name = "jsonwebtoken" version = "10.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eba32bfb4ffdeaca3e34431072faf01745c9b26d25504aa7a6cf5684334fc4fc" dependencies = [ - "base64 0.22.1", + "base64", "getrandom 0.2.17", "js-sys", "serde", @@ -2219,24 +1545,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "keyring" -version = "3.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebcc3aff044e5944a8fbaf69eb277d11986064cba30c468730e8b9909fb551c" -dependencies = [ - "byteorder", - "dbus-secret-service", - "linux-keyutils", - "log", - "secret-service", - "security-framework 2.11.1", - "security-framework 3.7.0", - "windows-sys 0.60.2", - "zbus", - "zeroize", -] - [[package]] name = "konst" version = "0.2.20" @@ -2252,24 +1560,12 @@ version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4933f3f57a8e9d9da04db23fb153356ecaf00cbd14aee46279c33dc80925c37" -[[package]] -name = "lazy_static" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" - [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -[[package]] -name = "leb128" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c83bff1d572d6b9aeef67ddfc8448e4a3737909cb28e81f97c791b9018703e52" - [[package]] name = "leb128fmt" version = "0.1.0" @@ -2282,34 +1578,6 @@ version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" -[[package]] -name = "libdbus-sys" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" -dependencies = [ - "pkg-config", -] - -[[package]] -name = "libredox" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" -dependencies = [ - "libc", -] - -[[package]] -name = "linux-keyutils" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83270a18e9f90d0707c41e9f35efada77b64c0e6f3f1810e71c8368a864d5590" -dependencies = [ - "bitflags", - "libc", -] - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -2322,54 +1590,12 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - [[package]] name = "log" version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" -[[package]] -name = "logos" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7251356ef8cb7aec833ddf598c6cb24d17b689d20b993f9d11a3d764e34e6458" -dependencies = [ - "logos-derive", -] - -[[package]] -name = "logos-codegen" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f80069600c0d66734f5ff52cc42f2dabd6b29d205f333d61fd7832e9e9963f" -dependencies = [ - "beef", - "fnv", - "lazy_static 1.5.0", - "proc-macro2", - "quote", - "regex-syntax", - "syn", -] - -[[package]] -name = "logos-derive" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24fb722b06a9dc12adb0963ed585f19fc61dc5413e6a9be9422ef92c091e731d" -dependencies = [ - "logos-codegen", -] - [[package]] name = "lru-slab" version = "0.1.2" @@ -2397,37 +1623,6 @@ version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "miette" -version = "7.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" -dependencies = [ - "cfg-if", - "miette-derive", - "unicode-width 0.1.14", -] - -[[package]] -name = "miette-derive" -version = "7.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "mime" version = "0.3.17" @@ -2461,25 +1656,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "multimap" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" - -[[package]] -name = "nix" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags", - "cfg-if", - "cfg_aliases", - "libc", - "memoffset", -] - [[package]] name = "nom" version = "7.1.3" @@ -2490,15 +1666,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "normpath" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9985ef7269fa99f3b12437bb698381da2428743ab90f20393f399fa14cab21a" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "nu-ansi-term" version = "0.50.3" @@ -2599,7 +1766,7 @@ dependencies = [ "http", "http-auth", "jsonwebtoken", - "lazy_static 1.5.0", + "lazy_static", "oci-spec", "olpc-cjson", "regex", @@ -2685,82 +1852,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "ordered-float" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" -dependencies = [ - "num-traits", -] - -[[package]] -name = "ordered-multimap" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" -dependencies = [ - "dlv-list", - "hashbrown 0.14.5", -] - -[[package]] -name = "ordered-stream" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" -dependencies = [ - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", -] - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-link", -] - [[package]] name = "parse-display" version = "0.9.1" @@ -2786,134 +1877,29 @@ dependencies = [ "syn", ] -[[package]] -name = "pathdiff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" - -[[package]] -name = "pbjson" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1030c719b0ec2a2d25a5df729d6cff1acf3cc230bf766f4f97833591f7577b90" -dependencies = [ - "base64 0.21.7", - "serde", -] - -[[package]] -name = "pbjson-build" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2580e33f2292d34be285c5bc3dba5259542b083cfad6037b6d70345f24dcb735" -dependencies = [ - "heck 0.4.1", - "itertools 0.11.0", - "prost 0.12.6", - "prost-types 0.12.6", -] - -[[package]] -name = "pbjson-types" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18f596653ba4ac51bdecbb4ef6773bc7f56042dc13927910de1684ad3d32aa12" -dependencies = [ - "bytes", - "chrono", - "pbjson", - "pbjson-build", - "prost 0.12.6", - "prost-build", - "serde", -] - [[package]] name = "pem" version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ - "base64 0.22.1", + "base64", "serde_core", ] -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" -[[package]] -name = "pest" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" -dependencies = [ - "memchr", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pest_meta" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" -dependencies = [ - "pest", - "sha2", -] - -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset 0.4.2", - "indexmap 2.14.0", -] - [[package]] name = "petgraph" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ - "fixedbitset 0.5.7", + "fixedbitset", "hashbrown 0.15.5", "indexmap 2.14.0", "serde", @@ -2932,39 +1918,18 @@ dependencies = [ name = "pin-project-internal" version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - -[[package]] -name = "piper" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" -dependencies = [ - "atomic-waker", - "fastrand", - "futures-io", +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "pkcs8" -version = "0.10.2" +name = "pin-project-lite" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" @@ -2972,20 +1937,6 @@ version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" -[[package]] -name = "polling" -version = "3.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi", - "pin-project-lite", - "rustix", - "windows-sys 0.61.2", -] - [[package]] name = "portable-atomic" version = "1.13.1" @@ -3016,25 +1967,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - [[package]] name = "proc-macro-crate" version = "3.5.0" @@ -3053,16 +1985,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "prost" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" -dependencies = [ - "bytes", - "prost-derive 0.12.6", -] - [[package]] name = "prost" version = "0.14.4" @@ -3070,41 +1992,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" dependencies = [ "bytes", - "prost-derive 0.14.4", -] - -[[package]] -name = "prost-build" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" -dependencies = [ - "bytes", - "heck 0.5.0", - "itertools 0.12.1", - "log", - "multimap", - "once_cell", - "petgraph 0.6.5", - "prettyplease", - "prost 0.12.6", - "prost-types 0.12.6", - "regex", - "syn", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" -dependencies = [ - "anyhow", - "itertools 0.12.1", - "proc-macro2", - "quote", - "syn", + "prost-derive", ] [[package]] @@ -3114,83 +2002,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools", "proc-macro2", "quote", "syn", ] -[[package]] -name = "prost-reflect" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5eec97d5d34bdd17ad2db2219aabf46b054c6c41bd5529767c9ce55be5898f" -dependencies = [ - "logos", - "miette", - "once_cell", - "prost 0.12.6", - "prost-types 0.12.6", -] - -[[package]] -name = "prost-types" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" -dependencies = [ - "prost 0.12.6", -] - [[package]] name = "prost-types" version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f94967dc7688f3054c7fac87473ffae4cc4c3904800e2d9f5b857246d8963b0a" dependencies = [ - "prost 0.14.4", -] - -[[package]] -name = "protox" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac532509cee918d40f38c3e12f8ef9230f215f017d54de7dd975015538a42ce7" -dependencies = [ - "bytes", - "miette", - "prost 0.12.6", - "prost-reflect", - "prost-types 0.12.6", - "protox-parse", - "thiserror 1.0.69", -] - -[[package]] -name = "protox-parse" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6c33f43516fe397e2f930779d720ca12cd057f7da4cd6326a0ef78d69dee96" -dependencies = [ - "logos", - "miette", - "prost-types 0.12.6", - "thiserror 1.0.69", -] - -[[package]] -name = "ptree" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "289cfd20ebec0e7ff2572e370dd7a1c9973ba666d3c38c5e747de0a4ada21f17" -dependencies = [ - "anstyle", - "config", - "directories", - "petgraph 0.6.5", - "serde", - "serde-value", - "tint", + "prost", ] [[package]] @@ -3223,7 +2047,7 @@ dependencies = [ "bytes", "getrandom 0.3.4", "lru-slab", - "rand 0.9.4", + "rand", "ring", "rustc-hash", "rustls", @@ -3270,37 +2094,16 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "rand" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ - "rand_chacha 0.9.0", + "rand_chacha", "rand_core 0.9.5", ] -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - [[package]] name = "rand_chacha" version = "0.9.0" @@ -3329,15 +2132,6 @@ dependencies = [ "getrandom 0.3.4", ] -[[package]] -name = "rand_xoshiro" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" -dependencies = [ - "rand_core 0.6.4", -] - [[package]] name = "rcgen" version = "0.14.8" @@ -3352,26 +2146,6 @@ dependencies = [ "yasna", ] -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.17", - "libredox", - "thiserror 1.0.69", -] - [[package]] name = "ref-cast" version = "1.0.25" @@ -3433,11 +2207,10 @@ version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "encoding_rs", "futures-core", - "futures-util", "h2", "http", "http-body", @@ -3459,14 +2232,12 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-rustls", - "tokio-util", "tower", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams 0.4.2", "web-sys", "webpki-roots", ] @@ -3477,7 +2248,7 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-core", "futures-util", @@ -3508,20 +2279,10 @@ dependencies = [ "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams 0.5.0", + "wasm-streams", "web-sys", ] -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - [[package]] name = "ring" version = "0.17.14" @@ -3536,18 +2297,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "ron" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" -dependencies = [ - "base64 0.21.7", - "bitflags", - "serde", - "serde_derive", -] - [[package]] name = "rstest" version = "0.23.0" @@ -3578,16 +2327,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "rust-ini" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" -dependencies = [ - "cfg-if", - "ordered-multimap", -] - [[package]] name = "rustc-hash" version = "2.1.2" @@ -3650,7 +2389,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.7.0", + "security-framework", ] [[package]] @@ -3687,7 +2426,7 @@ dependencies = [ "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework 3.7.0", + "security-framework", "security-framework-sys", "webpki-root-certs", "windows-sys 0.61.2", @@ -3765,26 +2504,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - [[package]] name = "secrecy" version = "0.8.0" @@ -3795,38 +2514,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "secret-service" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4d35ad99a181be0a60ffcbe85d680d98f87bdc4d7644ade319b87076b9dbfd4" -dependencies = [ - "aes", - "cbc", - "futures-util", - "generic-array", - "hkdf", - "num", - "once_cell", - "rand 0.8.6", - "serde", - "sha2", - "zbus", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - [[package]] name = "security-framework" version = "3.7.0" @@ -3870,16 +2557,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-value" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" -dependencies = [ - "ordered-float", - "serde", -] - [[package]] name = "serde_core" version = "1.0.228" @@ -3951,7 +2628,7 @@ version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" dependencies = [ - "base64 0.22.1", + "base64", "bs58", "chrono", "hex", @@ -3977,30 +2654,6 @@ dependencies = [ "syn", ] -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap 2.14.0", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "sha2" version = "0.10.9" @@ -4012,34 +2665,15 @@ dependencies = [ "digest", ] -[[package]] -name = "sha256" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f880fc8562bdeb709793f00eb42a2ad0e672c4f883bbe59122b926eca935c8f6" -dependencies = [ - "async-trait", - "bytes", - "hex", - "sha2", - "tokio", -] - [[package]] name = "sharded-slab" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ - "lazy_static 1.5.0", + "lazy_static", ] -[[package]] -name = "shell-words" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" - [[package]] name = "shlex" version = "2.0.1" @@ -4062,7 +2696,6 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ - "digest", "rand_core 0.6.4", ] @@ -4088,16 +2721,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" -[[package]] -name = "sized-chunks" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" -dependencies = [ - "bitmaps", - "typenum", -] - [[package]] name = "slab" version = "0.4.12" @@ -4129,28 +2752,12 @@ dependencies = [ "smallvec", ] -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "stable_deref_trait" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - [[package]] name = "strsim" version = "0.11.1" @@ -4192,7 +2799,7 @@ version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn", @@ -4383,26 +2990,8 @@ version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c431b87111666e491a90baa837f914fb45cd5dc3c268591b0220ff5057f2085f" dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tint" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7af24570664a3074673dbbf69a65bdae0ae0b72f2949b1adfbacb736ee4d6896" -dependencies = [ - "lazy_static 0.2.11", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", + "num-conv", + "time-core", ] [[package]] @@ -4439,7 +3028,6 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -4571,7 +3159,7 @@ checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" dependencies = [ "async-trait", "axum", - "base64 0.22.1", + "base64", "bytes", "h2", "http", @@ -4599,7 +3187,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0" dependencies = [ "bytes", - "prost 0.14.4", + "prost", "tonic", ] @@ -4718,30 +3306,13 @@ version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "uds_windows" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" -dependencies = [ - "memoffset", - "tempfile", - "windows-sys 0.61.2", -] - [[package]] name = "ulid" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" dependencies = [ - "rand 0.9.4", + "rand", "web-time", ] @@ -4766,18 +3337,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" - -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - [[package]] name = "unicode-width" version = "0.2.2" @@ -4790,12 +3349,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - [[package]] name = "untrusted" version = "0.9.0" @@ -4808,7 +3361,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0" dependencies = [ - "base64 0.22.1", + "base64", "log", "percent-encoding", "rustls", @@ -4823,7 +3376,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c" dependencies = [ - "base64 0.22.1", + "base64", "http", "httparse", "log", @@ -4885,144 +3438,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "warg-api" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98505d42b5289563c6d659f625b6789a97980166508bd00862c4328bf41c261" -dependencies = [ - "indexmap 2.14.0", - "itertools 0.12.1", - "serde", - "serde_with", - "thiserror 1.0.69", - "warg-crypto", - "warg-protocol", -] - -[[package]] -name = "warg-client" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "738a33cf369dea5d2684a61a7035c038858f40fc090d4981d35ee3fab416ddb8" -dependencies = [ - "anyhow", - "async-recursion", - "async-trait", - "bytes", - "clap", - "dialoguer", - "dirs", - "futures-util", - "indexmap 2.14.0", - "itertools 0.12.1", - "keyring", - "libc", - "normpath", - "once_cell", - "pathdiff", - "ptree", - "reqwest 0.12.28", - "secrecy", - "semver", - "serde", - "serde_json", - "sha256", - "tempfile", - "thiserror 1.0.69", - "tokio", - "tokio-util", - "tracing", - "url", - "walkdir", - "warg-api", - "warg-crypto", - "warg-protocol", - "warg-transparency", - "wasm-compose", - "wasm-encoder 0.41.2", - "wasmparser 0.121.2", - "wasmprinter", - "windows-sys 0.52.0", -] - -[[package]] -name = "warg-crypto" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71661a52504e20b9ec8e9846bddda041f30eb7aedeb6888c057d6a213eaedf87" -dependencies = [ - "anyhow", - "base64 0.21.7", - "digest", - "hex", - "leb128", - "once_cell", - "p256", - "rand_core 0.6.4", - "secrecy", - "serde", - "sha2", - "signature", - "thiserror 1.0.69", -] - -[[package]] -name = "warg-protobuf" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af0b1733deeb4f0c496d2b8e3ddb0e93b39da19d90c4f6d7594f2861f7e3086" -dependencies = [ - "anyhow", - "pbjson", - "pbjson-build", - "pbjson-types", - "prost 0.12.6", - "prost-build", - "prost-types 0.12.6", - "protox", - "regex", - "serde", - "warg-crypto", -] - -[[package]] -name = "warg-protocol" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922504990dbb7297c67139140fc5c08f596988fcbaf38d9e7d3bf89a0c0759fe" -dependencies = [ - "anyhow", - "base64 0.21.7", - "hex", - "indexmap 2.14.0", - "pbjson-types", - "prost 0.12.6", - "prost-types 0.12.6", - "semver", - "serde", - "serde_with", - "thiserror 1.0.69", - "warg-crypto", - "warg-protobuf", - "warg-transparency", - "wasmparser 0.121.2", -] - -[[package]] -name = "warg-transparency" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8d8110b6800c43422676201a6a62167769b015ca29a8fcab67d789ac8b9c63" -dependencies = [ - "anyhow", - "indexmap 2.14.0", - "prost 0.12.6", - "thiserror 1.0.69", - "warg-crypto", - "warg-protobuf", -] - [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" @@ -5093,37 +3508,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-compose" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd324927af875ebedb1b820c00e3c585992d33c2c787c5021fe6d8982527359b" -dependencies = [ - "anyhow", - "heck 0.4.1", - "im-rc", - "indexmap 2.14.0", - "log", - "petgraph 0.6.5", - "serde", - "serde_derive", - "serde_yaml", - "smallvec", - "wasm-encoder 0.41.2", - "wasmparser 0.121.2", - "wat", -] - -[[package]] -name = "wasm-encoder" -version = "0.41.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "972f97a5d8318f908dded23594188a90bcd09365986b1163e66d70170e5287ae" -dependencies = [ - "leb128", - "wasmparser 0.121.2", -] - [[package]] name = "wasm-encoder" version = "0.244.0" @@ -5169,14 +3553,14 @@ version = "0.16.0" dependencies = [ "anyhow", "async-trait", - "base64 0.22.1", + "base64", "bytes", "docker_credential", "etcetera 0.11.0", "futures-util", "oci-client", "oci-wasm", - "petgraph 0.8.3", + "petgraph", "rcgen", "reqwest 0.12.28", "rstest", @@ -5193,9 +3577,6 @@ dependencies = [ "tracing", "tracing-subscriber", "url", - "warg-client", - "warg-crypto", - "warg-protocol", "wasm-metadata", "wasm-pkg-common", "wit-component", @@ -5211,6 +3592,7 @@ dependencies = [ "etcetera 0.11.0", "futures-util", "http", + "reqwest 0.12.28", "semver", "serde", "serde_json", @@ -5230,7 +3612,7 @@ dependencies = [ "glob", "indexmap 2.14.0", "libc", - "petgraph 0.8.3", + "petgraph", "rstest", "semver", "serde", @@ -5248,19 +3630,6 @@ dependencies = [ "wit-parser", ] -[[package]] -name = "wasm-streams" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wasm-streams" version = "0.5.0" @@ -5274,17 +3643,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "wasmparser" -version = "0.121.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" -dependencies = [ - "bitflags", - "indexmap 2.14.0", - "semver", -] - [[package]] name = "wasmparser" version = "0.244.0" @@ -5305,17 +3663,6 @@ checksum = "d3eb099dcadcde5be9eef55e3a337128efd4e44b4c93122487e4d2e4e1c6627c" dependencies = [ "bitflags", "indexmap 2.14.0", - "semver", -] - -[[package]] -name = "wasmprinter" -version = "0.2.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60e73986a6b7fdfedb7c5bf9e7eb71135486507c8fbc4c0c42cffcb6532988b7" -dependencies = [ - "anyhow", - "wasmparser 0.121.2", ] [[package]] @@ -5327,7 +3674,7 @@ dependencies = [ "bumpalo", "leb128fmt", "memchr", - "unicode-width 0.2.2", + "unicode-width", "wasm-encoder 0.252.0", ] @@ -5479,15 +3826,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -5524,21 +3862,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -5572,12 +3895,6 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -5590,12 +3907,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -5608,12 +3919,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -5638,12 +3943,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -5656,12 +3955,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -5674,12 +3967,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -5692,12 +3979,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -5779,7 +4060,7 @@ dependencies = [ "anstream 0.6.21", "anstyle", "anyhow", - "base64 0.22.1", + "base64", "clap", "colorchoice-clap", "docker_credential", @@ -5813,7 +4094,7 @@ dependencies = [ "asn1-rs", "data-encoding", "der-parser", - "lazy_static 1.5.0", + "lazy_static", "nom", "oid-registry", "ring", @@ -5832,27 +4113,6 @@ dependencies = [ "rustix", ] -[[package]] -name = "xdg-home" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "yaml-rust2" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8902160c4e6f2fb145dbe9d6760a75e3c9522d8bf796ed7047c85919ac7115f8" -dependencies = [ - "arraydeque", - "encoding_rs", - "hashlink", -] - [[package]] name = "yasna" version = "0.6.0" @@ -5886,68 +4146,6 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zbus" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" -dependencies = [ - "async-broadcast", - "async-executor", - "async-fs", - "async-io", - "async-lock", - "async-process", - "async-recursion", - "async-task", - "async-trait", - "blocking", - "enumflags2", - "event-listener", - "futures-core", - "futures-sink", - "futures-util", - "hex", - "nix", - "ordered-stream", - "rand 0.8.6", - "serde", - "serde_repr", - "sha1", - "static_assertions", - "tracing", - "uds_windows", - "windows-sys 0.52.0", - "xdg-home", - "zbus_macros", - "zbus_names", - "zvariant", -] - -[[package]] -name = "zbus_macros" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", - "zvariant_utils", -] - -[[package]] -name = "zbus_names" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" -dependencies = [ - "serde", - "static_assertions", - "zvariant", -] - [[package]] name = "zerocopy" version = "0.8.52" @@ -6047,40 +4245,3 @@ name = "zmij" version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" - -[[package]] -name = "zvariant" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" -dependencies = [ - "endi", - "enumflags2", - "serde", - "static_assertions", - "zvariant_derive", -] - -[[package]] -name = "zvariant_derive" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", - "zvariant_utils", -] - -[[package]] -name = "zvariant_utils" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/Cargo.toml b/Cargo.toml index 51f0bd5..67bb820 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,9 +47,6 @@ toml = "0.8" tracing = "0.1.40" tracing-subscriber = { version = "0.3.20", default-features = false, features = [ "fmt", "env-filter" ] } url = "2.5.0" -warg-client = "0.9.2" -warg-crypto = "0.9.2" -warg-protocol = "0.9.2" wasm-metadata = "0.244" wit-component = "0.244" wit-parser = "0.244" diff --git a/README.md b/README.md index 37d66df..d3042f5 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Tools to package up [Wasm Components](https://github.com/webassembly/component-model) This repo contains several Rust crates that can be used for fetching and publishing Wasm Components -to OCI or Warg registries. It is also the home of the `wkg` command line tool, which exposes all the +to OCI registries. It is also the home of the `wkg` command line tool, which exposes all the functionality of the libraries. The first (but not only) focus of this project is allow for fetching of Wit Interfaces stored as components for use in creating components. It can also be used to fetch and publish component "libraries" to/from a registry. @@ -94,24 +94,9 @@ another = { registry = "another", metadata = { preferredProtocol = "oci", "oci" # Same as namespace_registries above, but for a specific package. "example:bar" = { registry = "another", metadata = { preferredProtocol = "oci", "oci" = {registry = "ghcr.io", namespacePrefix = "webassembly/" } } } -# This section contains a mapping of registries to their configuration. There are currently 3 -# supported types of registries: "oci", "warg", and "local". The "oci" type is the default. The -# example below shows a use case that isn't yet super common (registries that speak multiple protocols) -# but is included for completeness. +# This section contains a mapping of registries to their configuration. There are currently 2 +# supported types of registries: "oci" and "local". The "oci" type is the default. [registry."acme.registry.com"] -# This field is only required if more that one protocol is supported. It indicates which protocol -# to use by default. If this is not set, then the fallback (oci) will be used. -default = "warg" -[registry."acme.registry.com".warg] -# A path to a valid warg config file. If this is not set, the `wkg` CLI (but not the libraries) -# will attempt to load the config from the default location(s). -config_file = "/a/path" -# An optional authentication token to use when authenticating with a registry. -auth_token = "an-auth-token" -# An optional key for signing the component. Ideally, you should just let warg use the keychain -# or programmatically set this key in the config without writing to disk. This offers an escape -# hatch for when you need to use a key that isn't in the keychain. -signing_key = "ecdsa-p256:2CV1EpLaSYEn4In4OAEDAj5O4Hzu8AFAxgHXuG310Ew=" [registry."acme.registry.com".oci] # The auth field can either be a username/password pair, or a base64 encoded `username:password` # string. If no auth is set, the `wkg` CLI (but not the libraries) will also attempt to load the @@ -131,11 +116,11 @@ root = "/a/path" # If a registry only has a config section for one protocol, then that protocol is automatically # the default. The following is equivalent to: # [registry."example.com"] -# default = "warg" -# [registry."example.com".warg] -# config_file = "/a/path" -[registry."example.com".warg] -config_file = "/a/path" +# default = "oci" +# [registry."example.com".oci] +# auth = { username = "open", password = "sesame" } +[registry."example.com".oci] +auth = { username = "open", password = "sesame" } # Configuration for the "another" registry defined above. [registry."another".oci] @@ -159,24 +144,19 @@ A full example of what this `registry.json` file should look like is below: ```json { - "preferredProtocol":"warg", - "warg": {"url":"https://warg.example.com"}, + "preferredProtocol":"oci", "oci": {"registry": "ghcr.io", "namespacePrefix": "webassembly/"} } ``` The `preferredProtocol` field is optional and specifies which protocol the registry expects you to -use in the case where it supports both OCI and Warg. If both `warg` and `oci` config is in the -`registry.json` it is _highly recommended_ that this field be set. +use. While this field is present for future compatibility, it's generally fixed to "oci" in this implementation. For the `oci` config, the `registry` field is the base URL of the OCI registry, and the `namespacePrefix` field is the prefix that is used to store components in the registry. So in the example above (which is for wasi.dev), the components will be available at `ghcr.io/webassembly/$NAMESPACE/$PACKAGE:$VERSION` (e.g. `ghcr.io/webassembly/wasi/http:0.2.1`). -For the `warg` config, the `url` field is the base URL of the Warg registry used when connecting the -client. Namespacing for warg is built in to the protocol. - Please note that for backwards compatibility, with previous tooling and versions of the `wkg` tool, you may also encounter a `registry.json` file that looks different. These files are still supported, but should be considered deprecated. @@ -190,16 +170,6 @@ For OCI registries, the JSON looks like this: } ``` - - -For Warg registries, the JSON looks like this: - -```json -{ - "wargUrl": "https://warg.wa.dev" -} -``` - ### Conventions for storing components in OCI Astute observers will note that OCI requires a specific structure for how those components are diff --git a/crates/wasm-pkg-client/Cargo.toml b/crates/wasm-pkg-client/Cargo.toml index 3b90c63..c7f9179 100644 --- a/crates/wasm-pkg-client/Cargo.toml +++ b/crates/wasm-pkg-client/Cargo.toml @@ -35,10 +35,7 @@ toml = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true } url = { workspace = true } -warg-client = { workspace = true } -warg-crypto = { workspace = true } wasm-metadata = { workspace = true } -warg-protocol = { workspace = true } wasm-pkg-common = { workspace = true, features = ["registry-config"] } wit-component = { workspace = true, features = ["semver-check"] } wit-parser = { workspace = true } diff --git a/crates/wasm-pkg-client/src/lib.rs b/crates/wasm-pkg-client/src/lib.rs index ccf63e0..89d0673 100644 --- a/crates/wasm-pkg-client/src/lib.rs +++ b/crates/wasm-pkg-client/src/lib.rs @@ -34,7 +34,6 @@ pub mod metadata; pub mod oci; mod publisher; mod release; -pub mod warg; use std::{cmp::Ordering, collections::HashMap, path::Path, pin::Pin, sync::Arc}; @@ -43,7 +42,7 @@ use bytes::Bytes; use decoded_component::DecodedComponent; use futures_util::Stream; use tokio::sync::RwLock; -use wasm_pkg_common::metadata::{LOCAL_PROTOCOL, OCI_PROTOCOL, WARG_PROTOCOL}; +use wasm_pkg_common::metadata::{LOCAL_PROTOCOL, OCI_PROTOCOL}; pub use wasm_pkg_common::{ Error, config::{Config, CustomConfig, RegistryMapping}, @@ -57,7 +56,7 @@ use crate::loader::VersionSort; use crate::local::LocalBackend; use crate::metadata::RegistryMetadataExt; pub use crate::{loader::PackageLoader, publisher::PackagePublisher}; -use crate::{oci::OciBackend, warg::WargBackend}; +use crate::oci::OciBackend; pub use release::{Release, VersionInfo}; @@ -334,9 +333,6 @@ impl Client { ®istry_config, ®istry_meta, )?), - WARG_PROTOCOL => { - Box::new(WargBackend::new(®istry, ®istry_config, ®istry_meta).await?) - } other => { return Err(Error::InvalidConfig(anyhow!( "unknown backend type {other:?}" diff --git a/crates/wasm-pkg-client/src/oci/loader.rs b/crates/wasm-pkg-client/src/oci/loader.rs index 2e22cdc..2f6b010 100644 --- a/crates/wasm-pkg-client/src/oci/loader.rs +++ b/crates/wasm-pkg-client/src/oci/loader.rs @@ -1,8 +1,10 @@ use async_trait::async_trait; use futures_util::{StreamExt, TryStreamExt}; use oci_client::{RegistryOperation, manifest::OciDescriptor}; -use warg_protocol::Version; -use wasm_pkg_common::{Error, package::PackageRef}; +use wasm_pkg_common::{ + Error, + package::{PackageRef, Version}, +}; use crate::{ ContentStream, @@ -36,7 +38,12 @@ impl PackageLoader for OciBackend { yanked: false, }), Err(err) => { - tracing::debug!(?tag, error = ?err, "Ignoring invalid version tag"); + // Signature tags all start with a SHA and shouldn't generate a warning + if tag.starts_with("sha256-") { + tracing::debug!(?tag, "Ignoring signature tag"); + } else { + tracing::warn!(?tag, error = ?err, "Ignoring invalid version tag"); + } None } }) diff --git a/crates/wasm-pkg-client/src/warg/config.rs b/crates/wasm-pkg-client/src/warg/config.rs deleted file mode 100644 index e575c27..0000000 --- a/crates/wasm-pkg-client/src/warg/config.rs +++ /dev/null @@ -1,214 +0,0 @@ -use std::{fmt::Debug, path::PathBuf, sync::Arc}; - -use secrecy::{ExposeSecret, SecretString}; -use serde::{Deserialize, Serialize, Serializer}; -use warg_crypto::signing::PrivateKey; -use wasm_pkg_common::{Error, config::RegistryConfig}; - -/// Registry configuration for Warg backends. -/// -/// See: [`RegistryConfig::backend_config`] -#[derive(Clone, Default, Serialize)] -#[serde(into = "WargRegistryConfigToml")] -pub struct WargRegistryConfig { - /// The configuration for the Warg client. - pub client_config: warg_client::Config, - /// The authentication token for the Warg registry. - pub auth_token: Option, - /// A signing key to use for publishing packages. - // NOTE(thomastaylor312): This couldn't be wrapped in a secret because the outer type doesn't - // implement Zeroize. However, the inner type is zeroized. - pub signing_key: Option>, - /// The path to the Warg config file, if specified. - pub config_file: Option, -} - -impl Debug for WargRegistryConfig { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("WargRegistryConfig") - .field("client_config", &self.client_config) - .field("auth_token", &self.auth_token) - .field("signing_key", &"[redacted]") - .field("config_file", &self.config_file) - .finish() - } -} - -impl TryFrom<&RegistryConfig> for WargRegistryConfig { - type Error = Error; - - fn try_from(registry_config: &RegistryConfig) -> Result { - let WargRegistryConfigToml { - auth_token, - signing_key, - config_file, - } = registry_config.backend_config("warg")?.unwrap_or_default(); - let (client_config, config_file) = match config_file { - Some(path) => ( - warg_client::Config::from_file(&path).map_err(Error::RegistryError)?, - Some(path), - ), - None => { - // NOTE(thomastaylor312): We could try to be smarter here and see which file it - // loaded, but there isn't a way to do that if it loaded from the current working - // directory. - ( - warg_client::Config::from_default_file() - .map_err(Error::RegistryError)? - .unwrap_or_default(), - None, - ) - } - }; - - Ok(Self { - client_config, - auth_token, - signing_key: signing_key - .map(|k| PrivateKey::decode(k).map(Arc::new)) - .transpose() - .map_err(|e| { - Error::InvalidConfig(anyhow::anyhow!("invalid signing key in config file: {e}")) - })?, - config_file, - }) - } -} - -#[derive(Default, Deserialize, Serialize)] -struct WargRegistryConfigToml { - #[serde(skip_serializing_if = "Option::is_none")] - config_file: Option, - #[serde( - skip_serializing_if = "Option::is_none", - serialize_with = "serialize_secret" - )] - auth_token: Option, - #[serde( - skip_serializing_if = "Option::is_none", - serialize_with = "serialize_secret" - )] - signing_key: Option, -} - -impl From for WargRegistryConfigToml { - fn from(value: WargRegistryConfig) -> Self { - WargRegistryConfigToml { - auth_token: value.auth_token, - config_file: value.config_file, - signing_key: value - .signing_key - .map(|k| SecretString::new(k.encode().to_string())), - } - } -} - -fn serialize_secret( - secret: &Option, - serializer: S, -) -> Result { - if let Some(secret) = secret { - secret.expose_secret().serialize(serializer) - } else { - serializer.serialize_none() - } -} - -#[cfg(test)] -mod tests { - use wasm_pkg_common::config::RegistryMapping; - - use crate::warg::WargRegistryMetadata; - - use super::*; - - #[tokio::test] - async fn test_warg_config_roundtrip() { - let dir = tempfile::tempdir().expect("Unable to create tempdir"); - let warg_config_path = dir.path().join("warg_config.json"); - let (_, key) = warg_crypto::signing::generate_p256_pair(); - let config = WargRegistryConfig { - client_config: warg_client::Config { - home_url: Some("https://example.com".to_owned()), - ..Default::default() - }, - auth_token: Some("imsecret".to_owned().into()), - signing_key: Some(Arc::new(key)), - config_file: Some(warg_config_path.clone()), - }; - - // Try loading it with the normal method to make sure it comes out right - let mut conf = crate::Config::empty(); - - let registry: crate::Registry = "example.com:8080".parse().unwrap(); - let reg_conf = conf.get_or_insert_registry_config_mut(®istry); - reg_conf - .set_backend_config("warg", &config) - .expect("Unable to set config"); - - let reg_conf = conf.registry_config(®istry).unwrap(); - - // Write the warg config to disk - tokio::fs::write( - &warg_config_path, - serde_json::to_vec(&config.client_config).unwrap(), - ) - .await - .unwrap(); - - let roundtripped = WargRegistryConfig::try_from(reg_conf).expect("Unable to load config"); - assert_eq!( - roundtripped - .client_config - .home_url - .expect("Should have a home url set"), - config.client_config.home_url.unwrap(), - "Home url should be set to the right value" - ); - assert_eq!( - roundtripped - .auth_token - .expect("Should have an auth token set") - .expose_secret(), - config.auth_token.unwrap().expose_secret(), - "Auth token should be set to the right value" - ); - assert_eq!( - roundtripped - .signing_key - .expect("Should have a signing key set") - .encode(), - config.signing_key.unwrap().encode(), - "Signing key should be set to the right value" - ); - } - - #[test] - fn test_custom_namespace_config() { - let toml_config = toml::toml! { - [namespace_registries] - test = { registry = "localhost:1234", metadata = { preferredProtocol = "warg", "warg" = { url = "http://localhost:1234" } } } - }; - - let cfg = wasm_pkg_common::config::Config::from_toml(&toml_config.to_string()) - .expect("Should be able to load config"); - - let ns_config = cfg - .namespace_registry(&"test".parse().unwrap()) - .expect("Should have a namespace config"); - let custom = match ns_config { - RegistryMapping::Custom(c) => c, - _ => panic!("Should have a custom namespace config"), - }; - let map: WargRegistryMetadata = custom - .metadata - .protocol_config("warg") - .expect("Should be able to deserialize config") - .expect("protocol config should be present"); - assert_eq!( - map.url, - Some("http://localhost:1234".into()), - "URL should be set to the right value" - ); - } -} diff --git a/crates/wasm-pkg-client/src/warg/loader.rs b/crates/wasm-pkg-client/src/warg/loader.rs deleted file mode 100644 index 1e27ca0..0000000 --- a/crates/wasm-pkg-client/src/warg/loader.rs +++ /dev/null @@ -1,70 +0,0 @@ -use anyhow::anyhow; -use async_trait::async_trait; -use futures_util::{StreamExt, TryStreamExt}; -use wasm_pkg_common::{ - Error, - package::{PackageRef, Version}, -}; - -use crate::{ - ContentStream, - loader::PackageLoader, - release::{Release, VersionInfo}, -}; - -use super::{WargBackend, package_ref_to_name, warg_registry_error}; - -#[async_trait] -impl PackageLoader for WargBackend { - async fn list_all_versions(&self, package: &PackageRef) -> Result, Error> { - let info = self.fetch_package_info(package).await?; - Ok(info - .state - .releases() - .map(|r| VersionInfo { - version: r.version.clone(), - yanked: r.yanked(), - }) - .collect()) - } - - async fn get_release(&self, package: &PackageRef, version: &Version) -> Result { - let info = self.fetch_package_info(package).await?; - let release = info - .state - .release(version) - .ok_or_else(|| Error::VersionNotFound(version.clone()))?; - let content_digest = release - .content() - .ok_or_else(|| Error::RegistryError(anyhow!("version {version} yanked")))? - .to_string(); - Ok(Release { - version: version.clone(), - content_digest: content_digest.parse()?, - }) - } - - async fn stream_content_unvalidated( - &self, - package: &PackageRef, - release: &Release, - ) -> Result { - self.stream_content(package, release).await - } - - async fn stream_content( - &self, - package: &PackageRef, - release: &Release, - ) -> Result { - let package_name = package_ref_to_name(package)?; - - // warg client validates the digest matches the content - let (_, stream) = self - .client - .download_exact_as_stream(&package_name, &release.version) - .await - .map_err(warg_registry_error)?; - Ok(stream.map_err(Error::RegistryError).boxed()) - } -} diff --git a/crates/wasm-pkg-client/src/warg/mod.rs b/crates/wasm-pkg-client/src/warg/mod.rs deleted file mode 100644 index 900170e..0000000 --- a/crates/wasm-pkg-client/src/warg/mod.rs +++ /dev/null @@ -1,105 +0,0 @@ -//! Warg package backend. - -use std::sync::Arc; - -use serde::Deserialize; -use warg_client::{ClientError, FileSystemClient, storage::PackageInfo}; -use warg_crypto::signing::PrivateKey; -use warg_protocol::registry::PackageName; -use wasm_pkg_common::{ - Error, config::RegistryConfig, metadata::RegistryMetadata, package::PackageRef, - registry::Registry, -}; - -mod config; -mod loader; -mod publisher; - -/// Re-exported for convenience. -pub use warg_client as client; - -pub use config::WargRegistryConfig; - -#[derive(Debug, Default, Deserialize)] -#[serde(rename_all = "camelCase")] -struct WargRegistryMetadata { - url: Option, -} - -pub(crate) struct WargBackend { - client: FileSystemClient, - signing_key: Option>, -} - -impl WargBackend { - pub async fn new( - registry: &Registry, - registry_config: &RegistryConfig, - registry_meta: &RegistryMetadata, - ) -> Result { - let warg_meta = registry_meta - .protocol_config::("warg")? - .unwrap_or_default(); - - let WargRegistryConfig { - client_config, - auth_token, - signing_key, - .. - } = registry_config.try_into()?; - - let url = warg_meta.url.unwrap_or_else(|| { - // If we just pass registry plain, warg will assume it is https. This is a workaround to - // assume that a local registry is http. - if registry.host() == "localhost" || registry.host() == "127.0.0.1" { - format!("http://{registry}") - } else { - format!("https://{registry}") - } - }); - - let client = - FileSystemClient::new_with_config(Some(url.as_str()), &client_config, auth_token) - .await - .map_err(warg_registry_error)?; - Ok(Self { - client, - signing_key, - }) - } - - pub(crate) async fn fetch_package_info( - &self, - package: &PackageRef, - ) -> Result { - let package_name = package_ref_to_name(package)?; - // NOTE(thomastaylor312): We need to make sure we're up to date with all packages, but if we - // bypass the cache every time, we'll have to fetch the whole package log every time rather - // than loading from cache on disk. The remaining question here is the performance impact. - // At scale, we don't know if this will result in a lot of HTTP requests even though the - // packages were updated on a previous call. This should be good enough for now, but we - // might need to revisit this later. - self.client - .update() - .await - .map_err(|e| Error::RegistryError(e.into()))?; - self.client - .package(&package_name) - .await - .map_err(warg_registry_error) - } -} - -pub(crate) fn package_ref_to_name(package_ref: &PackageRef) -> Result { - PackageName::new(package_ref.to_string()) - .map_err(|err| Error::InvalidPackageRef(err.to_string())) -} - -pub(crate) fn warg_registry_error(err: ClientError) -> Error { - match err { - ClientError::PackageDoesNotExist { .. } - | ClientError::PackageDoesNotExistWithHintHeader { .. } => Error::PackageNotFound, - ClientError::PackageVersionDoesNotExist { version, .. } => Error::VersionNotFound(version), - _ => Error::RegistryError(err.into()), - } -} diff --git a/crates/wasm-pkg-client/src/warg/publisher.rs b/crates/wasm-pkg-client/src/warg/publisher.rs deleted file mode 100644 index 0b657d9..0000000 --- a/crates/wasm-pkg-client/src/warg/publisher.rs +++ /dev/null @@ -1,67 +0,0 @@ -use std::time::Duration; - -use futures_util::TryStreamExt; -use tokio_util::codec::{BytesCodec, FramedRead}; -use warg_client::storage::{ContentStorage, PublishEntry, PublishInfo}; - -use crate::publisher::PackagePublisher; -use crate::{PackageRef, PublishingSource, Version}; - -use super::WargBackend; - -const DEFAULT_WAIT_INTERVAL: Duration = Duration::from_secs(1); - -#[async_trait::async_trait] -impl PackagePublisher for WargBackend { - async fn publish( - &self, - package: &PackageRef, - version: &Version, - data: PublishingSource, - dry_run: bool, - ) -> Result<(), crate::Error> { - // store the Wasm in Warg cache, so that it is available to Warg client for uploading - let content = self - .client - .content() - .store_content( - Box::pin( - FramedRead::new(data, BytesCodec::new()) - .map_ok(|b| b.freeze()) - .map_err(anyhow::Error::from), - ), - None, - ) - .await - .map_err(crate::Error::RegistryError)?; - - // convert package name to Warg package name - let name = super::package_ref_to_name(package)?; - - if dry_run { - return Ok(()); - } - - // start Warg publish, using the keyring to sign - let version = version.clone(); - let info = PublishInfo { - name: name.clone(), - head: None, - entries: vec![PublishEntry::Release { version, content }], - }; - let record_id = if let Some(key) = self.signing_key.as_ref() { - self.client.publish_with_info(key, info).await - } else { - self.client.sign_with_keyring_and_publish(Some(info)).await - } - .map_err(super::warg_registry_error)?; - - // wait for the Warg publish to finish - self.client - .wait_for_publish(&name, &record_id, DEFAULT_WAIT_INTERVAL) - .await - .map_err(super::warg_registry_error)?; - - Ok(()) - } -} diff --git a/crates/wasm-pkg-common/Cargo.toml b/crates/wasm-pkg-common/Cargo.toml index ebdcc95..d246758 100644 --- a/crates/wasm-pkg-common/Cargo.toml +++ b/crates/wasm-pkg-common/Cargo.toml @@ -23,7 +23,14 @@ bytes = { workspace = true } etcetera = { workspace = true, optional = true } futures-util = { workspace = true } http = { workspace = true } -semver = { workspace = true } +reqwest = { workspace = true, features = [ + "rustls-tls", + "charset", + "http2", + "macos-system-configuration", + "json", +], optional = true } +semver = { workspace = true, features = ["serde"] } serde = { workspace = true } serde_json = { workspace = true } sha2 = { workspace = true } diff --git a/crates/wasm-pkg-common/src/config/toml.rs b/crates/wasm-pkg-common/src/config/toml.rs index b52c4d4..efef68e 100644 --- a/crates/wasm-pkg-common/src/config/toml.rs +++ b/crates/wasm-pkg-common/src/config/toml.rs @@ -154,8 +154,8 @@ mod tests { [package_registry_overrides] - [registry."localhost:1234".warg] - config_file = "/a/path" + [registry."localhost:1234".oci] + auth = { username = "open", password = "sesame" } }; let toml_cfg: TomlConfig = toml_config.try_into().unwrap(); @@ -167,7 +167,7 @@ mod tests { reg_conf .default_backend() .expect("Should have a default set"), - "warg" + "oci" ); let toml_config = toml::toml! { @@ -176,10 +176,10 @@ mod tests { [package_registry_overrides] - [registry."localhost:1234".warg] - config_file = "/a/path" [registry."localhost:1234".oci] auth = { username = "open", password = "sesame" } + [registry."localhost:1234".other] + config = "value" }; let toml_cfg: TomlConfig = toml_config.try_into().unwrap(); @@ -200,10 +200,10 @@ mod tests { [registry."localhost:1234"] type = "foobar" - [registry."localhost:1234".warg] - config_file = "/a/path" [registry."localhost:1234".oci] auth = { username = "open", password = "sesame" } + [registry."localhost:1234".other] + config = "value" }; let toml_cfg: TomlConfig = toml_config.try_into().unwrap(); @@ -224,10 +224,10 @@ mod tests { [registry."localhost:1234"] default = "foobar" - [registry."localhost:1234".warg] - config_file = "/a/path" [registry."localhost:1234".oci] auth = { username = "open", password = "sesame" } + [registry."localhost:1234".other] + config = "value" }; let toml_cfg: TomlConfig = toml_config.try_into().unwrap(); diff --git a/crates/wasm-pkg-common/src/metadata.rs b/crates/wasm-pkg-common/src/metadata.rs index c2973cc..2565906 100644 --- a/crates/wasm-pkg-common/src/metadata.rs +++ b/crates/wasm-pkg-common/src/metadata.rs @@ -30,16 +30,10 @@ pub struct RegistryMetadata { /// OCI Namespace Prefix #[serde(skip_serializing)] oci_namespace_prefix: Option, - - /// Warg URL - #[serde(skip_serializing)] - warg_url: Option, } /// OCI registry try pub const OCI_PROTOCOL: &str = "oci"; -/// Warg registry key -pub const WARG_PROTOCOL: &str = "warg"; /// Local filesystem key pub const LOCAL_PROTOCOL: &str = "local"; @@ -56,12 +50,8 @@ impl RegistryMetadata { } if self.protocol_configs.len() == 1 { return self.protocol_configs.keys().next().map(|x| x.as_str()); - } else if self.protocol_configs.is_empty() { - match (self.oci_registry.is_some(), self.warg_url.is_some()) { - (true, false) => return Some(OCI_PROTOCOL), - (false, true) => return Some(WARG_PROTOCOL), - _ => {} - } + } else if self.protocol_configs.is_empty() && self.oci_registry.is_some() { + return Some(OCI_PROTOCOL); } None } @@ -73,9 +63,6 @@ impl RegistryMetadata { if self.oci_registry.is_some() || self.oci_namespace_prefix.is_some() { protos.insert(OCI_PROTOCOL.into()); } - if self.warg_url.is_some() { - protos.insert(WARG_PROTOCOL.into()); - } protos.into_iter().map(Into::into) } @@ -96,15 +83,9 @@ impl RegistryMetadata { .insert(key.into(), value.clone().into()); } }; - match protocol { - OCI_PROTOCOL => { - maybe_set("registry", &self.oci_registry); - maybe_set("namespacePrefix", &self.oci_namespace_prefix); - } - WARG_PROTOCOL => { - maybe_set("url", &self.warg_url); - } - _ => {} + if protocol == OCI_PROTOCOL { + maybe_set("registry", &self.oci_registry); + maybe_set("namespacePrefix", &self.oci_namespace_prefix); } if config.is_none() { @@ -145,31 +126,29 @@ mod tests { fn smoke_test() { let meta: RegistryMetadata = serde_json::from_value(json!({ "oci": {"registry": "oci.example.com"}, - "warg": {"url": "https://warg.example.com"}, + "other": {"key": "value"} })) .unwrap(); assert_eq!(meta.preferred_protocol(), None); assert_eq!( meta.configured_protocols().collect::>(), - ["oci", "warg"] + ["oci", "other"] ); let oci_config: JsonObject = meta.protocol_config("oci").unwrap().unwrap(); assert_eq!(oci_config["registry"], "oci.example.com"); - let warg_config: JsonObject = meta.protocol_config("warg").unwrap().unwrap(); - assert_eq!(warg_config["url"], "https://warg.example.com"); - let other_config: Option = meta.protocol_config("other").unwrap(); - assert_eq!(other_config, None); + let other_config: OtherProtocolConfig = meta.protocol_config("other").unwrap().unwrap(); + assert_eq!(other_config.key, "value"); } #[test] fn preferred_protocol_explicit() { let meta: RegistryMetadata = serde_json::from_value(json!({ - "preferredProtocol": "warg", + "preferredProtocol": "oci", "oci": {"registry": "oci.example.com"}, - "warg": {"url": "https://warg.example.com"}, + "other": {"key": "value"}, })) .unwrap(); - assert_eq!(meta.preferred_protocol(), Some("warg")); + assert_eq!(meta.preferred_protocol(), Some("oci")); } #[test] @@ -182,12 +161,12 @@ mod tests { } #[test] - fn preferred_protocol_implicit_warg() { + fn preferred_protocol_implicit_other() { let meta: RegistryMetadata = serde_json::from_value(json!({ - "warg": {"url": "https://warg.example.com"}, + "other": {"key": "value"}, })) .unwrap(); - assert_eq!(meta.preferred_protocol(), Some("warg")); + assert_eq!(meta.preferred_protocol(), Some("other")); } #[test] @@ -200,47 +179,32 @@ mod tests { assert_eq!(meta.preferred_protocol(), Some("oci")); } - #[test] - fn backward_compat_preferred_protocol_implicit_warg() { - let meta: RegistryMetadata = serde_json::from_value(json!({ - "wargUrl": "https://warg.example.com", - })) - .unwrap(); - assert_eq!(meta.preferred_protocol(), Some("warg")); - } - #[test] fn basic_backward_compat_test() { let meta: RegistryMetadata = serde_json::from_value(json!({ "ociRegistry": "oci.example.com", "ociNamespacePrefix": "prefix/", - "wargUrl": "https://warg.example.com", })) .unwrap(); - assert_eq!( - meta.configured_protocols().collect::>(), - ["oci", "warg"] - ); + assert_eq!(meta.configured_protocols().collect::>(), ["oci"]); let oci_config: JsonObject = meta.protocol_config("oci").unwrap().unwrap(); assert_eq!(oci_config["registry"], "oci.example.com"); assert_eq!(oci_config["namespacePrefix"], "prefix/"); - let warg_config: JsonObject = meta.protocol_config("warg").unwrap().unwrap(); - assert_eq!(warg_config["url"], "https://warg.example.com"); } #[test] fn merged_backward_compat_test() { let meta: RegistryMetadata = serde_json::from_value(json!({ - "wargUrl": "https://warg.example.com", + "ociRegistry": "oci.example.com", "other": {"key": "value"} })) .unwrap(); assert_eq!( meta.configured_protocols().collect::>(), - ["other", "warg"] + ["oci", "other"] ); - let warg_config: JsonObject = meta.protocol_config("warg").unwrap().unwrap(); - assert_eq!(warg_config["url"], "https://warg.example.com"); + let oci_config: JsonObject = meta.protocol_config("oci").unwrap().unwrap(); + assert_eq!(oci_config["registry"], "oci.example.com"); let other_config: OtherProtocolConfig = meta.protocol_config("other").unwrap().unwrap(); assert_eq!(other_config.key, "value"); } diff --git a/crates/wasm-pkg-core/Cargo.toml b/crates/wasm-pkg-core/Cargo.toml index 37800f1..ebe8cb1 100644 --- a/crates/wasm-pkg-core/Cargo.toml +++ b/crates/wasm-pkg-core/Cargo.toml @@ -44,3 +44,4 @@ tempfile = { workspace = true } sha2 = { workspace = true } rstest = { workspace = true } glob = { workspace = true } +tokio = { workspace = true, features = ["rt", "macros", "process"] } diff --git a/crates/wasm-pkg-core/src/lock.rs b/crates/wasm-pkg-core/src/lock.rs index 2e2fad2..441bbcd 100644 --- a/crates/wasm-pkg-core/src/lock.rs +++ b/crates/wasm-pkg-core/src/lock.rs @@ -8,13 +8,13 @@ use std::{ }; use anyhow::{Context, Result}; -use semver::{Version, VersionReq}; +use semver::VersionReq; use serde::{Deserialize, Serialize}; use tokio::{ fs::{File, OpenOptions}, io::{AsyncReadExt, AsyncSeekExt, AsyncWriteExt}, }; -use wasm_pkg_client::{ContentDigest, PackageRef}; +use wasm_pkg_client::{ContentDigest, PackageRef, Version}; use crate::resolver::{DependencyResolution, DependencyResolutionMap}; diff --git a/crates/wkg/Cargo.toml b/crates/wkg/Cargo.toml index d52cf28..3cfdc84 100644 --- a/crates/wkg/Cargo.toml +++ b/crates/wkg/Cargo.toml @@ -24,7 +24,12 @@ futures-util = { workspace = true, features = ["io"] } oci-client = { workspace = true } oci-wasm = { workspace = true } tempfile = { workspace = true } -tokio = { workspace = true, features = ["macros", "rt"] } +tokio = { workspace = true, features = [ + "macros", + "rt", + "rt-multi-thread", + "process", +] } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ["ansi"] } wasm-pkg-client = { workspace = true }