diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 60304ad1f80..d899575effe 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -90,7 +90,7 @@ jobs: with: auto-install: true cache: ${{ runner.os == 'Linux' }} - proto-version: '0.39.7' # Keep in sync + proto-version: '0.40.0' # Keep in sync - uses: mozilla-actions/sccache-action@v0.0.5 if: ${{ vars.ENABLE_SCCACHE == 'true' }} - name: Checking coverage status diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d8695b8902..27b6467213b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - We've sunset the CI insights feature in moonbase. We will no longer be tracking CI run history. This is a retroactive change that applies to all moon versions. +- Updated proto to v0.40.0 (from v0.39.7). ## 1.27.6 diff --git a/Cargo.lock b/Cargo.lock index b2cbcb263c7..873c0f0b092 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -341,7 +341,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -404,7 +404,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -597,7 +597,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -860,7 +860,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1236,7 +1236,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1247,7 +1247,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1267,7 +1267,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1389,7 +1389,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1557,7 +1557,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1573,9 +1573,9 @@ dependencies = [ [[package]] name = "extism-pdk" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c26a361aeddab8ebbb6157eeed9a8341358d6843c5f5a53677466caf5f0b5eaf" +checksum = "0334e38735348bd085e518bfc284395fcb5c198ba65ce36f9712bd25ff9e7be0" dependencies = [ "anyhow", "base64 0.22.1", @@ -1588,13 +1588,13 @@ dependencies = [ [[package]] name = "extism-pdk-derive" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a024b0f20295098d1d19ad443fad077c1d8c1d81d09a2c20f0618ebd201517e" +checksum = "cc4b8ea80a1b89cf8b053bdc5df2385125bcb9110d19be289c2030c61c7c6ad9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1811,7 +1811,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1898,7 +1898,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1929,7 +1929,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" dependencies = [ "fallible-iterator", - "indexmap 2.3.0", + "indexmap 2.4.0", "stable_deref_trait", ] @@ -2012,7 +2012,7 @@ dependencies = [ "futures-sink", "futures-util", "http 1.1.0", - "indexmap 2.3.0", + "indexmap 2.4.0", "slab", "tokio", "tokio-util", @@ -2355,9 +2355,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2725,7 +2725,7 @@ dependencies = [ "manyhow-macros", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -2741,9 +2741,9 @@ dependencies = [ [[package]] name = "markdown" -version = "1.0.0-alpha.18" +version = "1.0.0-alpha.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e61c5c85b392273c4d4ea546e6399ace3e3db172ab01b6de8f3d398d1dbd2ec" +checksum = "911a8325e6fb87b89890cd4529a2ab34c2669c026279e61c26b7140a3d821ccb" dependencies = [ "unicode-id", ] @@ -2821,7 +2821,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -3301,7 +3301,7 @@ name = "moon_config" version = "0.0.9" dependencies = [ "httpmock", - "indexmap 2.3.0", + "indexmap 2.4.0", "miette", "moon_common", "moon_target", @@ -4216,7 +4216,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad444c78696e8b4de2de8a45468d0cc76630e2ed235c84e102c197b89d295a0b" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "rustc-hash 1.1.0", "semver", "serde", @@ -4292,7 +4292,7 @@ checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "crc32fast", "hashbrown 0.14.3", - "indexmap 2.3.0", + "indexmap 2.4.0", "memchr", ] @@ -4302,18 +4302,6 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "once_map" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa7085055bbe9c8edbd982048dbcf8181794d4a81cb04a11931673e63cc18dc6" -dependencies = [ - "ahash", - "hashbrown 0.14.3", - "parking_lot", - "stable_deref_trait", -] - [[package]] name = "open" version = "5.3.0" @@ -4348,7 +4336,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -4502,7 +4490,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -4523,7 +4511,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.3.0", + "indexmap 2.4.0", "serde", "serde_derive", ] @@ -4598,7 +4586,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -4776,16 +4764,16 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] name = "proto_core" -version = "0.39.3" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2399232f292feb8ccd34e06fdee9e4560c6e0d682f1112d567bba4097435bc8" +checksum = "de7bcbe6695616b9e27299ccdfe964095a8a3dba0e5240b959febbd8deeb1263" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "miette", "minisign-verify", "once_cell", @@ -4813,11 +4801,10 @@ dependencies = [ [[package]] name = "proto_installer" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3749317e806e800c1f95e868825cc7440679dd68134ac02134a00f1ec2f98fdc" +checksum = "8add18458b1ee84f59731a96507908f6bbc10e69015086fa0dda65c62216fe49" dependencies = [ - "futures", "miette", "reqwest", "starbase_archive", @@ -4830,11 +4817,12 @@ dependencies = [ [[package]] name = "proto_pdk_api" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f025cab878f43c8a4c1a3eaf062a81ef6383694d91a874614769523d5b67c67a" +checksum = "7707a07768c2d4a0e8c28e7a24aa7651c88f0aab0197332cd05e2a3f8eda0b2c" dependencies = [ "rustc-hash 2.0.0", + "schematic", "semver", "serde", "serde_json", @@ -4846,9 +4834,9 @@ dependencies = [ [[package]] name = "proto_shim" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e524e880e758cb90639ec1e54b17e8ebc0f185a342c19afd0665536cc690fbb9" +checksum = "4d5eba553bde4d4d934bd8755167c7ef20bfed088e87ca28759f01a0aa5a3b26" dependencies = [ "command-group", "dirs 5.0.1", @@ -5274,9 +5262,9 @@ dependencies = [ [[package]] name = "scc" -version = "2.1.9" +version = "2.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ff467073ddaff34c3a39e5b454f25dd982484a26fff50254ca793c56a1b714" +checksum = "aeb7ac86243095b70a7920639507b71d51a63390d1ba26c4f60a552fbb914a37" dependencies = [ "sdd", "serde", @@ -5304,12 +5292,12 @@ dependencies = [ [[package]] name = "schematic" -version = "0.16.6" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39662af6f427584874872ecc0e42888bccd0c42510d32d519c4ac9319f4c52f3" +checksum = "14bf79931c9c99d9bcdc29a448836dbcea9ad5991285cc83dd4c9f46cf771ac2" dependencies = [ "garde", - "indexmap 2.3.0", + "indexmap 2.4.0", "markdown", "miette", "reqwest", @@ -5328,26 +5316,28 @@ dependencies = [ [[package]] name = "schematic_macros" -version = "0.16.6" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9747db30b2549f7a3d5c5c61e00a4da45d6fe7f4a413594ffc5e598f5ced1330" +checksum = "ea2f037e36d93185ba8e25049754095e4aabb985ed5a8157da369d40be60d9fa" dependencies = [ "convert_case", "darling", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] name = "schematic_types" -version = "0.8.4" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6196a0b23e5b4ee02e3894a937606fc49ccc9211e1650a9bef759062cfff3d58" +checksum = "7ce97b2ad673e2183ec94cce86b039e692ecdf1b3b8a1195c90ad31f8adbbd0d" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "semver", + "serde", "serde_json", + "serde_yaml", "toml 0.8.19", "url", ] @@ -5360,9 +5350,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sdd" -version = "2.1.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177258b64c0faaa9ffd3c65cd3262c2bc7e2588dbbd9c1641d0346145c1bbda8" +checksum = "0495e4577c672de8254beb68d01a9b62d0e8a13c099edecdbedccce3223cd29f" [[package]] name = "security-framework" @@ -5398,31 +5388,31 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.204" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] name = "serde_json" -version = "1.0.122" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "itoa", "memchr", "ryu", @@ -5476,7 +5466,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "itoa", "ryu", "serde", @@ -5505,7 +5495,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -5732,7 +5722,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -5777,9 +5767,9 @@ dependencies = [ [[package]] name = "starbase_utils" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8353d4dd059139755ceafe835d95292e049b44d99e78de0f2718df0bfa33c4d" +checksum = "3f21ce2ab027c71bdee539effc654b529f4016c62f65d9687dcaf08b856232fc" dependencies = [ "dirs 5.0.1", "ec4rs", @@ -5884,9 +5874,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.72" +version = "2.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" dependencies = [ "proc-macro2", "quote", @@ -5951,9 +5941,9 @@ dependencies = [ [[package]] name = "system_env" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c064041fa3a15e81801a7853412a5188d0796e7638b0a9578dd72a52d03304d" +checksum = "ce619f78837291fe16f40f216ba2493b66b34e3f8c37201f96cd5833ae95b44f" dependencies = [ "schematic", "serde", @@ -6058,7 +6048,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -6117,6 +6107,7 @@ dependencies = [ "bytes", "libc", "mio 1.0.1", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2 0.5.5", @@ -6133,7 +6124,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -6218,7 +6209,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "serde", "serde_spanned", "toml_datetime", @@ -6231,7 +6222,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "toml_datetime", "winnow 0.5.34", ] @@ -6242,7 +6233,7 @@ version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "serde", "serde_spanned", "toml_datetime", @@ -6297,7 +6288,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -6379,7 +6370,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7cc416eaf05297012ead9d192226fe9a92e9a20f64f8780efb9085aaae9b590" dependencies = [ "clean-path", - "indexmap 2.3.0", + "indexmap 2.4.0", "rustc-hash 1.1.0", "serde", "serde_json", @@ -6583,9 +6574,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "version_spec" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037cc6c66ece56eaf96a6be8484a59eb6a3fe64fb1b26475468ffc4afc727c8a" +checksum = "1a8115efd6e9e71ef4f9b71169432fe99b042d435cd80e41314d3d869dab2d33" dependencies = [ "human-sort", "regex", @@ -6631,16 +6622,16 @@ dependencies = [ [[package]] name = "warpgate" -version = "0.16.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c13c5620a7841df6284fc9d366a7e45baf91041f54f86f01142d8060df9d38" +checksum = "1fb9948cc8854946cd87aa6a1ee8e99fc4fde22c8f13c9facb0f229abd169185" dependencies = [ "extism", "miette", "once_cell", - "once_map", "regex", "reqwest", + "scc", "schematic", "serde", "serde_json", @@ -6650,6 +6641,7 @@ dependencies = [ "starbase_utils", "system_env", "thiserror", + "tokio", "tracing", "ureq", "warpgate_api", @@ -6657,9 +6649,9 @@ dependencies = [ [[package]] name = "warpgate_api" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e6f834d0999022b7c35b96be8f14d7fe3935281f00e5aaa0ddb6ba7960b889" +checksum = "5d4fb1a48a03154125e71b7dd3b26887cbc78732d5598859795c6475fdabba6b" dependencies = [ "anyhow", "rustc-hash 2.0.0", @@ -6672,9 +6664,9 @@ dependencies = [ [[package]] name = "warpgate_pdk" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "334ab34dab6ab0977e54a1857884aae2ba3d1687c5ec7653e311e2d84d32b9b7" +checksum = "2b23ffd7947eb4886375e93104849ec7aec35ff8c4aefeae2d31cab4d0ff46e5" dependencies = [ "extism-pdk", "serde", @@ -6751,7 +6743,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", "wasm-bindgen-shared", ] @@ -6785,7 +6777,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6833,7 +6825,7 @@ version = "0.118.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77f1154f1ab868e2a01d9834a805faca7bf8b50d041b4ca714d005d0dab1c50c" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "semver", ] @@ -6844,7 +6836,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" dependencies = [ "bitflags 2.4.2", - "indexmap 2.3.0", + "indexmap 2.4.0", "semver", ] @@ -6871,7 +6863,7 @@ dependencies = [ "cfg-if", "encoding_rs", "fxprof-processed-profile", - "indexmap 2.3.0", + "indexmap 2.4.0", "libc", "log", "object", @@ -6935,7 +6927,7 @@ dependencies = [ "anyhow", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", "wasmtime-component-util", "wasmtime-wit-bindgen", "wit-parser", @@ -6997,7 +6989,7 @@ dependencies = [ "anyhow", "cranelift-entity", "gimli", - "indexmap 2.3.0", + "indexmap 2.4.0", "log", "object", "serde", @@ -7086,7 +7078,7 @@ dependencies = [ "cc", "cfg-if", "encoding_rs", - "indexmap 2.3.0", + "indexmap 2.4.0", "libc", "log", "mach", @@ -7127,7 +7119,7 @@ checksum = "e04682ce587aa8fa9311d3c95148381f08a1db274ad6bcd3553f7c97c8c2debb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -7190,7 +7182,7 @@ checksum = "af5fbb1adaadad70271fe18a3f938741edb2b5178bf2fc164ab20544018626b8" dependencies = [ "anyhow", "heck 0.4.1", - "indexmap 2.3.0", + "indexmap 2.4.0", "wit-parser", ] @@ -7301,7 +7293,7 @@ dependencies = [ "proc-macro2", "quote", "shellexpand", - "syn 2.0.72", + "syn 2.0.75", "witx", ] @@ -7313,7 +7305,7 @@ checksum = "4a781d29bfd788595f4a392a6f606699e59577b7f4b2858da2ae4068f4d757c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", "wiggle-generate", ] @@ -7403,7 +7395,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -7414,7 +7406,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -7611,7 +7603,7 @@ checksum = "316b36a9f0005f5aa4b03c39bc3728d045df136f8c13a73b7db4510dec725e08" dependencies = [ "anyhow", "id-arena", - "indexmap 2.3.0", + "indexmap 2.4.0", "log", "semver", "serde", @@ -7685,7 +7677,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -7705,7 +7697,7 @@ dependencies = [ "crossbeam-utils", "displaydoc", "flate2", - "indexmap 2.3.0", + "indexmap 2.4.0", "memchr", "thiserror", "zopfli", diff --git a/Cargo.toml b/Cargo.toml index a0b698c5c6c..536b65e8bc8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ reqwest = { version = "0.12.5", default-features = false, features = [ ] } rustc-hash = "2.0.0" scc = "2.1.9" -schematic = { version = "0.16.6", default-features = false, features = [ +schematic = { version = "0.17.2", default-features = false, features = [ "schema", ] } serial_test = "3.1.1" @@ -92,14 +92,14 @@ uuid = { version = "1.10.0", features = ["v4"] } # proto/plugin related extism = "=1.3.0" -extism-pdk = "1.2.0" -proto_core = "0.39.3" -proto_installer = "0.6.0" -system_env = "0.5.0" -version_spec = "0.6.1" -warpgate = "0.16.1" -warpgate_api = "0.9.0" -warpgate_pdk = "0.7.0" +extism-pdk = "1.2.1" +proto_core = "0.40.1" +proto_installer = "0.7.0" +system_env = "0.6.0" +version_spec = "0.7.0" +warpgate = "0.17.0" +warpgate_api = "0.10.0" +warpgate_pdk = "0.8.0" # proto_core = { path = "../proto/crates/core" } # proto_installer = { path = "../proto/crates/installer" } diff --git a/crates/app/src/commands/ext.rs b/crates/app/src/commands/ext.rs index 29df727a871..1801fbb8fd2 100644 --- a/crates/app/src/commands/ext.rs +++ b/crates/app/src/commands/ext.rs @@ -38,9 +38,19 @@ pub async fn ext(session: CliSession, args: ExtArgs) -> AppResult { .await?; // Execute the plugin - extensions.perform_sync(&id, |plugin, context| { - plugin.execute(args.passthrough.clone(), context) - })?; + let plugin = extensions.get(&id).await?; + + plugin + .execute(args.passthrough, extensions.create_context()) + .await?; + + // let passthrough_args = args.passthrough.clone(); + + // extensions + // .perform(&id, |plugin, context| async move { + // plugin.execute(passthrough_args, context).await + // }) + // .await?; Ok(()) } diff --git a/crates/cli/tests/ext_test.rs b/crates/cli/tests/ext_test.rs index 75b69276849..8b724536054 100644 --- a/crates/cli/tests/ext_test.rs +++ b/crates/cli/tests/ext_test.rs @@ -1,7 +1,7 @@ use moon_common::Id; use moon_config::PartialExtensionConfig; use moon_test_utils::{create_sandbox_with_config, create_sandbox_with_factory, predicates}; -use proto_core::PluginLocator; +use proto_core::{warpgate::FileLocator, PluginLocator}; use rustc_hash::FxHashMap; use std::path::PathBuf; @@ -74,10 +74,10 @@ mod ext_download { .insert( Id::raw("example"), PartialExtensionConfig { - plugin: Some(PluginLocator::File { + plugin: Some(PluginLocator::File(Box::new(FileLocator { file: "invalid.wasm".into(), path: Some(PathBuf::from("invalid.wasm")), - }), + }))), config: None, }, ); @@ -88,9 +88,7 @@ mod ext_download { cmd.arg("ext").arg("example"); }) .failure() - .stderr(predicates::str::contains( - "Cannot load example plugin, source file invalid.wasm does not exist.", - )); + .stderr(predicates::str::contains("Cannot load example plugin")); } #[test] diff --git a/crates/common/src/consts.rs b/crates/common/src/consts.rs index b2b9815ac6f..76bc7964d25 100644 --- a/crates/common/src/consts.rs +++ b/crates/common/src/consts.rs @@ -16,4 +16,4 @@ pub const CONFIG_PROJECT_FILENAME: &str = "moon.yml"; pub const CONFIG_TEMPLATE_FILENAME: &str = "template.yml"; -pub const PROTO_CLI_VERSION: &str = "0.39.7"; +pub const PROTO_CLI_VERSION: &str = "0.40.0"; diff --git a/crates/config-schema/src/json_schemas.rs b/crates/config-schema/src/json_schemas.rs index 5fd754ad1f5..a689460acf8 100644 --- a/crates/config-schema/src/json_schemas.rs +++ b/crates/config-schema/src/json_schemas.rs @@ -3,7 +3,7 @@ use schematic::schema::json_schema::{JsonSchemaOptions, JsonSchemaRenderer}; use schematic::schema::SchemaGenerator; use std::path::Path; -fn create_jsonschema_renderer() -> JsonSchemaRenderer<'static> { +fn create_jsonschema_renderer() -> JsonSchemaRenderer { JsonSchemaRenderer::new(JsonSchemaOptions { markdown_description: true, mark_struct_fields_required: false, diff --git a/crates/config/Cargo.toml b/crates/config/Cargo.toml index 7638d11dd22..360b9a06ab2 100644 --- a/crates/config/Cargo.toml +++ b/crates/config/Cargo.toml @@ -21,11 +21,14 @@ regex = { workspace = true } rustc-hash = { workspace = true } schematic = { workspace = true, features = [ "config", + "env", + "extends", + "json", "schema", "type_indexmap", "type_semver", - "type_serde_json", - "valid_url", + "validate", + "validate_url", "yaml", ] } semver = { workspace = true, features = ["serde"] } diff --git a/crates/config/src/config_cache.rs b/crates/config/src/config_cache.rs index 65f408ed39c..a7f2516f713 100644 --- a/crates/config/src/config_cache.rs +++ b/crates/config/src/config_cache.rs @@ -1,7 +1,7 @@ use moon_common::consts::CONFIG_DIRNAME; use moon_common::path::hash_component; use rustc_hash::FxHashMap; -use schematic::{Cacher, ConfigError}; +use schematic::{Cacher, HandlerError}; use std::fs; use std::path::PathBuf; use std::time::{Duration, SystemTime}; @@ -32,7 +32,13 @@ impl ConfigCache { // If reading/writing the cache fails, don't crash the entire process, // just store in memory and move on! impl Cacher for ConfigCache { - fn read(&mut self, url: &str) -> Result, ConfigError> { + fn get_file_path(&self, url: &str) -> Result, HandlerError> { + let file = self.get_temp_path(url); + + Ok(if file.exists() { Some(file) } else { None }) + } + + fn read(&mut self, url: &str) -> Result, HandlerError> { if let Some(contents) = self.memory.get(url) { return Ok(Some(contents.to_owned())); } @@ -61,7 +67,7 @@ impl Cacher for ConfigCache { Ok(None) } - fn write(&mut self, url: &str, contents: &str) -> Result<(), ConfigError> { + fn write(&mut self, url: &str, contents: &str) -> Result<(), HandlerError> { if !self.memory.contains_key(url) { let file = self.get_temp_path(url); diff --git a/crates/config/src/inherited_tasks_config.rs b/crates/config/src/inherited_tasks_config.rs index 843e2d57d3e..15703f0c87b 100644 --- a/crates/config/src/inherited_tasks_config.rs +++ b/crates/config/src/inherited_tasks_config.rs @@ -4,7 +4,7 @@ use crate::project_config::{ProjectType, StackType}; use crate::shapes::InputPath; use moon_common::{cacheable, Id}; use rustc_hash::{FxHashMap, FxHasher}; -use schematic::schema::{IndexMap, IndexSet}; +use schematic::schema::indexmap::{IndexMap, IndexSet}; use schematic::{merge, validate, Config, MergeResult}; use std::collections::BTreeMap; use std::hash::{BuildHasherDefault, Hash}; @@ -311,17 +311,20 @@ impl InheritedTasksManager { config .validate(&context, true) - .map_err(|error| ConfigError::Validator { - config: format!( - "inherited tasks {}", - if platform.is_javascript() { - format!("({}, {}, {}, {})", platform, language, stack, project) - } else { - format!("({}, {}, {})", language, stack, project) - } - ), - error: Box::new(error), - help: Some(color::muted_light("https://moonrepo.dev/docs/config/tasks")), + .map_err(|error| match error { + ConfigError::Validator { error, .. } => ConfigError::Validator { + location: format!( + "inherited tasks {}", + if platform.is_javascript() { + format!("({}, {}, {}, {})", platform, language, stack, project) + } else { + format!("({}, {}, {})", language, stack, project) + } + ), + error, + help: Some(color::muted_light("https://moonrepo.dev/docs/config/tasks")), + }, + _ => error, })?; let result = InheritedTasksResult { diff --git a/crates/config/src/lib.rs b/crates/config/src/lib.rs index 79ded084476..b1fd3359656 100644 --- a/crates/config/src/lib.rs +++ b/crates/config/src/lib.rs @@ -1,3 +1,4 @@ +#[cfg(feature = "loader")] mod config_cache; mod inherited_tasks_config; mod language_platform; @@ -8,6 +9,8 @@ mod project_config; mod shapes; mod template; mod template_config; +#[cfg(feature = "template")] +mod templates; mod toolchain; mod toolchain_config; mod types; @@ -15,9 +18,6 @@ mod validate; mod workspace; mod workspace_config; -#[cfg(feature = "template")] -mod templates; - pub use inherited_tasks_config::*; pub use language_platform::*; pub use portable_path::*; diff --git a/crates/config/src/workspace/plugins_config.rs b/crates/config/src/workspace/plugins_config.rs index 451a6430e5b..54442ba1c08 100644 --- a/crates/config/src/workspace/plugins_config.rs +++ b/crates/config/src/workspace/plugins_config.rs @@ -1,7 +1,7 @@ use moon_common::Id; use rustc_hash::FxHashMap; use schematic::Config; -use warpgate_api::PluginLocator; +use warpgate_api::{PluginLocator, UrlLocator}; /// Configures an individual extension. #[derive(Clone, Config, Debug, PartialEq)] @@ -27,21 +27,27 @@ pub(crate) fn default_extensions() -> FxHashMap { ( Id::raw("download"), ExtensionConfig { - plugin: Some(PluginLocator::Url { url: "https://github.com/moonrepo/moon-extensions/releases/download/moon_download_extension-v0.0.5/moon_download_extension.wasm".into() }), + plugin: Some(PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/moon-extensions/releases/download/moon_download_extension-v0.0.5/moon_download_extension.wasm".into() + }))), config: FxHashMap::default(), }, ), ( Id::raw("migrate-nx"), ExtensionConfig { - plugin: Some(PluginLocator::Url { url: "https://github.com/moonrepo/moon-extensions/releases/download/moon_migrate_nx_extension-v0.0.5/moon_migrate_nx_extension.wasm".into() }), + plugin: Some(PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/moon-extensions/releases/download/moon_migrate_nx_extension-v0.0.5/moon_migrate_nx_extension.wasm".into() + }))), config: FxHashMap::default(), }, ), ( Id::raw("migrate-turborepo"), ExtensionConfig { - plugin: Some(PluginLocator::Url { url: "https://github.com/moonrepo/moon-extensions/releases/download/moon_migrate_turborepo_extension-v0.1.2/moon_migrate_turborepo_extension.wasm".into() }), + plugin: Some(PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/moon-extensions/releases/download/moon_migrate_turborepo_extension-v0.1.2/moon_migrate_turborepo_extension.wasm".into() + }))), config: FxHashMap::default(), }, ), diff --git a/crates/config/tests/toolchain_config_test.rs b/crates/config/tests/toolchain_config_test.rs index 6f6053105f8..edf7785fa1c 100644 --- a/crates/config/tests/toolchain_config_test.rs +++ b/crates/config/tests/toolchain_config_test.rs @@ -2,7 +2,7 @@ mod utils; use httpmock::prelude::*; use moon_config::{BinConfig, BinEntry, NodePackageManager, NodeVersionFormat, ToolchainConfig}; -use proto_core::{Id, PluginLocator, ProtoConfig, UnresolvedVersionSpec}; +use proto_core::{warpgate::UrlLocator, Id, PluginLocator, ProtoConfig, UnresolvedVersionSpec}; use serial_test::serial; use starbase_sandbox::{create_empty_sandbox, create_sandbox}; use std::env; @@ -182,9 +182,9 @@ deno: {{}} assert_eq!( config.bun.unwrap().plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/bun_tool-v0.12.3/bun_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/bun_tool-v0.13.0/bun_tool.wasm".into() + })) ); } @@ -385,9 +385,9 @@ deno: assert_eq!( config.deno.unwrap().plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/deno_tool-v0.11.4/deno_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/deno_tool-v0.12.0/deno_tool.wasm".into() + })) ); } @@ -512,9 +512,9 @@ node: assert_eq!( config.node.unwrap().plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/node_tool-v0.11.8/node_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/node_tool-v0.12.0/node_tool.wasm".into() + })) ); } @@ -616,9 +616,9 @@ node: assert_eq!( config.node.unwrap().npm.plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/node_depman_tool-v0.12.0/node_depman_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/node_depman_tool-v0.13.0/node_depman_tool.wasm".into() + })) ); } @@ -708,9 +708,9 @@ node: assert_eq!( config.node.unwrap().pnpm.unwrap().plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/node_depman_tool-v0.12.0/node_depman_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/node_depman_tool-v0.13.0/node_depman_tool.wasm".into() + })) ); } @@ -732,9 +732,9 @@ node: assert_eq!( config.node.unwrap().pnpm.unwrap().plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/node_depman_tool-v0.12.0/node_depman_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/node_depman_tool-v0.13.0/node_depman_tool.wasm".into() + })) ); } @@ -834,9 +834,9 @@ node: assert_eq!( config.node.unwrap().yarn.unwrap().plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/node_depman_tool-v0.12.0/node_depman_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/node_depman_tool-v0.13.0/node_depman_tool.wasm".into() + })) ); } @@ -858,9 +858,9 @@ node: assert_eq!( config.node.unwrap().yarn.unwrap().plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/node_depman_tool-v0.12.0/node_depman_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/node_depman_tool-v0.13.0/node_depman_tool.wasm".into() + })) ); } @@ -960,9 +960,9 @@ node: assert_eq!( config.node.unwrap().bun.unwrap().plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/bun_tool-v0.12.3/bun_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/bun_tool-v0.13.0/bun_tool.wasm".into() + })) ); } @@ -984,9 +984,9 @@ node: assert_eq!( config.node.unwrap().bun.unwrap().plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/bun_tool-v0.12.3/bun_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/bun_tool-v0.13.0/bun_tool.wasm".into() + })) ); } @@ -1217,9 +1217,9 @@ rust: assert_eq!( config.rust.unwrap().plugin.unwrap(), - PluginLocator::Url { - url: "https://github.com/moonrepo/tools/releases/download/rust_tool-v0.10.6/rust_tool.wasm".into() - } + PluginLocator::Url(Box::new(UrlLocator { + url: "https://github.com/moonrepo/tools/releases/download/rust_tool-v0.11.0/rust_tool.wasm".into() + })) ); } diff --git a/crates/config/tests/workspace_config_test.rs b/crates/config/tests/workspace_config_test.rs index 6e7a4450988..b045ca0f8a7 100644 --- a/crates/config/tests/workspace_config_test.rs +++ b/crates/config/tests/workspace_config_test.rs @@ -5,6 +5,7 @@ use moon_common::Id; use moon_config::{ ExtensionConfig, FilePath, TemplateLocator, VcsProvider, WorkspaceConfig, WorkspaceProjects, }; +use proto_core::warpgate::UrlLocator; use rustc_hash::FxHashMap; use semver::Version; use starbase_sandbox::{create_empty_sandbox, create_sandbox}; @@ -811,9 +812,9 @@ extensions: config.extensions.get("test-id").unwrap(), &ExtensionConfig { config: FxHashMap::default(), - plugin: Some(PluginLocator::Url { + plugin: Some(PluginLocator::Url(Box::new(UrlLocator { url: "https://domain.com".into() - }), + }))), } ); } @@ -839,9 +840,9 @@ extensions: ("fooBar".into(), serde_json::Value::String("abc".into())), ("bar-baz".into(), serde_json::Value::Bool(true)), ]), - plugin: Some(PluginLocator::Url { + plugin: Some(PluginLocator::Url(Box::new(UrlLocator { url: "https://domain.com".into() - }), + }))), } ); } diff --git a/crates/extension-plugin/src/lib.rs b/crates/extension-plugin/src/lib.rs index 0f8e7ced684..5267afd1770 100644 --- a/crates/extension-plugin/src/lib.rs +++ b/crates/extension-plugin/src/lib.rs @@ -9,11 +9,10 @@ pub struct ExtensionPlugin { impl ExtensionPlugin { #[instrument(skip(self, context))] - pub fn execute(&self, args: Vec, context: MoonContext) -> miette::Result<()> { - self.plugin.call_func_without_output( - "execute_extension", - ExecuteExtensionInput { args, context }, - )?; + pub async fn execute(&self, args: Vec, context: MoonContext) -> miette::Result<()> { + self.plugin + .call_func_without_output("execute_extension", ExecuteExtensionInput { args, context }) + .await?; Ok(()) } diff --git a/crates/pdk-test-utils/src/lib.rs b/crates/pdk-test-utils/src/lib.rs index 5dfd4e7c405..c4b54e686f2 100644 --- a/crates/pdk-test-utils/src/lib.rs +++ b/crates/pdk-test-utils/src/lib.rs @@ -8,9 +8,10 @@ use std::env; use std::fs::{self, OpenOptions}; use std::io::Write; use std::path::{Path, PathBuf}; -use warpgate::host_funcs::{create_host_functions, HostData}; use warpgate::{ - inject_default_manifest_config, test_utils, Id, PluginContainer, PluginManifest, Wasm, + host::{create_host_functions, HostData}, + inject_default_manifest_config, test_utils, Id, PluginContainer, PluginLoader, PluginManifest, + Wasm, }; pub use moon_pdk_api::*; @@ -22,7 +23,7 @@ pub fn create_plugin_container_with_config( config: HashMap, ) -> PluginContainer { let id = Id::new(id).unwrap(); - + let loader = PluginLoader::new(sandbox.join("plugins"), sandbox.join("temp")); let virtual_paths = BTreeMap::::from_iter([ (sandbox.to_path_buf(), "/cwd".into()), (sandbox.to_path_buf(), "/workspace".into()), @@ -50,6 +51,7 @@ pub fn create_plugin_container_with_config( manifest.config.extend(config); let funcs = create_host_functions(HostData { + http_client: loader.get_client().unwrap().clone(), virtual_paths, working_dir: sandbox.to_path_buf(), }); diff --git a/crates/pdk-test-utils/src/wrappers.rs b/crates/pdk-test-utils/src/wrappers.rs index 3290cf28670..20740851465 100644 --- a/crates/pdk-test-utils/src/wrappers.rs +++ b/crates/pdk-test-utils/src/wrappers.rs @@ -14,9 +14,10 @@ impl ExtensionTestWrapper { } } - pub fn execute_extension(&self, input: ExecuteExtensionInput) { + pub async fn execute_extension(&self, input: ExecuteExtensionInput) { self.plugin .call_func_without_output("execute_extension", input) + .await .unwrap(); } } diff --git a/crates/plugin/src/plugin_registry.rs b/crates/plugin/src/plugin_registry.rs index 04cb902d0f2..4c5c83146d3 100644 --- a/crates/plugin/src/plugin_registry.rs +++ b/crates/plugin/src/plugin_registry.rs @@ -3,14 +3,16 @@ use crate::plugin_error::PluginError; use moon_env::MoonEnvironment; use moon_pdk_api::MoonContext; use proto_core::{is_offline, ProtoEnvironment}; +use scc::hash_map::OccupiedEntry; use scc::HashMap; use starbase_utils::fs; use std::fmt::Debug; +use std::ops::{Deref, DerefMut}; use std::{collections::BTreeMap, future::Future, path::PathBuf, sync::Arc}; use tracing::{debug, instrument}; use warpgate::{ - host_funcs::*, inject_default_manifest_config, to_virtual_path, Id, PluginContainer, - PluginLoader, PluginLocator, PluginManifest, Wasm, + host::*, inject_default_manifest_config, to_virtual_path, Id, PluginContainer, PluginLoader, + PluginLocator, PluginManifest, Wasm, }; #[allow(dead_code)] @@ -151,6 +153,18 @@ impl PluginRegistry { op(plugin.get()) } + pub async fn get(&self, id: &Id) -> miette::Result> { + Ok(self + .plugins + .get_async(id) + .await + .map(|entry| PluginInstance { entry }) + .ok_or_else(|| PluginError::UnknownId { + name: self.type_of.get_label().to_owned(), + id: id.to_owned(), + })?) + } + pub async fn perform(&self, id: &Id, mut op: F) -> miette::Result where F: FnMut(&mut T, MoonContext) -> Fut, @@ -241,6 +255,7 @@ impl PluginRegistry { // Create host functions (provided by warpgate) let functions = create_host_functions(HostData { + http_client: self.loader.get_client()?.clone(), virtual_paths: self.virtual_paths.clone(), working_dir: self.moon_env.working_dir.clone(), }); @@ -280,3 +295,21 @@ impl PluginRegistry { let _ = self.plugins.insert(id, plugin); } } + +pub struct PluginInstance<'l, T: Plugin> { + entry: OccupiedEntry<'l, Id, T>, +} + +impl<'l, T: Plugin> Deref for PluginInstance<'l, T> { + type Target = T; + + fn deref(&self) -> &Self::Target { + self.entry.get() + } +} + +impl<'l, T: Plugin> DerefMut for PluginInstance<'l, T> { + fn deref_mut(&mut self) -> &mut Self::Target { + self.entry.get_mut() + } +} diff --git a/crates/plugin/tests/plugin_registry_test.rs b/crates/plugin/tests/plugin_registry_test.rs index ac9e523fe00..bd9c4f8b98d 100644 --- a/crates/plugin/tests/plugin_registry_test.rs +++ b/crates/plugin/tests/plugin_registry_test.rs @@ -2,7 +2,7 @@ use moon_env::MoonEnvironment; use moon_plugin::{ Plugin, PluginId as Id, PluginLocator, PluginRegistration, PluginRegistry, PluginType, }; -use proto_core::ProtoEnvironment; +use proto_core::{warpgate::FileLocator, ProtoEnvironment}; use starbase_sandbox::{create_empty_sandbox, create_sandbox}; use std::fs; use std::path::Path; @@ -107,10 +107,10 @@ mod plugin_registry { registry .load( Id::raw("id"), - PluginLocator::File { + PluginLocator::File(Box::new(FileLocator { file: "".into(), path: Some(sandbox.path().join("test.wasm")), - }, + })), ) .await .unwrap(); @@ -125,10 +125,10 @@ mod plugin_registry { registry .load( Id::raw("id"), - PluginLocator::File { + PluginLocator::File(Box::new(FileLocator { file: "".into(), path: Some(sandbox.path().join("test.wasm")), - }, + })), ) .await .unwrap(); @@ -136,10 +136,10 @@ mod plugin_registry { registry .load( Id::raw("id"), - PluginLocator::File { + PluginLocator::File(Box::new(FileLocator { file: "".into(), path: Some(sandbox.path().join("test.wasm")), - }, + })), ) .await .unwrap(); diff --git a/crates/toolchain-plugin/src/toolchain_plugin.rs b/crates/toolchain-plugin/src/toolchain_plugin.rs index 9125560bc43..9fef88cad3e 100644 --- a/crates/toolchain-plugin/src/toolchain_plugin.rs +++ b/crates/toolchain-plugin/src/toolchain_plugin.rs @@ -17,40 +17,43 @@ pub struct ToolchainPlugin { impl ToolchainPlugin { #[instrument(skip_all)] - pub fn sync_workspace(&self, context: MoonContext) -> miette::Result<()> { - if !self.plugin.has_func("sync_workspace") { + pub async fn sync_workspace(&self, context: MoonContext) -> miette::Result<()> { + if !self.plugin.has_func("sync_workspace").await { return Ok(()); } debug!(toolchain = self.id.as_str(), "Syncing workspace"); self.plugin - .call_func_without_output("sync_workspace", SyncWorkspaceInput { context })?; + .call_func_without_output("sync_workspace", SyncWorkspaceInput { context }) + .await?; Ok(()) } #[instrument(skip_all)] - pub fn sync_project( + pub async fn sync_project( &self, project: SyncProjectRecord, dependencies: FxHashMap, context: MoonContext, ) -> miette::Result<()> { - if !self.plugin.has_func("sync_project") { + if !self.plugin.has_func("sync_project").await { return Ok(()); } debug!(toolchain = self.id.as_str(), "Syncing project"); - self.plugin.call_func_without_output( - "sync_project", - SyncProjectInput { - context, - dependencies, - project, - }, - )?; + self.plugin + .call_func_without_output( + "sync_project", + SyncProjectInput { + context, + dependencies, + project, + }, + ) + .await?; Ok(()) } @@ -63,15 +66,16 @@ impl Plugin for ToolchainPlugin { Ok(Self { // Only create the proto tool instance if we know that // the WASM file has support for it! - tool: if plugin.has_func("register_tool") { - Some(Tool::new( - registration.id.clone(), - Arc::clone(®istration.proto_env), - Arc::clone(&plugin), - )?) - } else { - None - }, + // tool: if plugin.has_func("register_tool") { + // Some(Tool::new( + // registration.id.clone(), + // Arc::clone(®istration.proto_env), + // Arc::clone(&plugin), + // )?) + // } else { + // None + // }, + tool: None, id: registration.id, plugin, }) diff --git a/legacy/bun/tool/src/bun_tool.rs b/legacy/bun/tool/src/bun_tool.rs index 0950576f1b3..1487959e4da 100644 --- a/legacy/bun/tool/src/bun_tool.rs +++ b/legacy/bun/tool/src/bun_tool.rs @@ -9,6 +9,7 @@ use moon_tool::{ }; use moon_toolchain::RuntimeReq; use moon_utils::get_workspace_root; +use proto_core::flow::install::InstallOptions; use proto_core::{Id, ProtoEnvironment, Tool as ProtoTool, UnresolvedVersionSpec}; use rustc_hash::FxHashMap; use starbase_utils::fs; @@ -120,7 +121,7 @@ impl Tool for BunTool { .out .print_checkpoint(Checkpoint::Setup, format!("installing bun {version}"))?; - if self.tool.setup(version, false).await? { + if self.tool.setup(version, InstallOptions::default()).await? { last_versions.insert("bun".into(), version.to_owned()); count += 1; } diff --git a/legacy/core/tool/src/lib.rs b/legacy/core/tool/src/lib.rs index 2e3ec0d6f2a..bdd9e10a783 100644 --- a/legacy/core/tool/src/lib.rs +++ b/legacy/core/tool/src/lib.rs @@ -96,7 +96,7 @@ pub async fn load_tool_plugin( inject_default_manifest_config(id, &proto.home, &mut manifest)?; inject_proto_manifest_config(id, proto, &mut manifest)?; - ProtoTool::load_from_manifest(id, proto, manifest) + ProtoTool::load_from_manifest(id, proto, manifest).await } static LOCKS: OnceLock>>>> = OnceLock::new(); diff --git a/legacy/deno/tool/src/deno_tool.rs b/legacy/deno/tool/src/deno_tool.rs index a5fb8aa19fe..120f945cbc5 100644 --- a/legacy/deno/tool/src/deno_tool.rs +++ b/legacy/deno/tool/src/deno_tool.rs @@ -8,6 +8,7 @@ use moon_tool::{ }; use moon_toolchain::RuntimeReq; use moon_utils::get_workspace_root; +use proto_core::flow::install::InstallOptions; use proto_core::{Id, ProtoEnvironment, Tool as ProtoTool, UnresolvedVersionSpec}; use rustc_hash::FxHashMap; use starbase_utils::env::path_var; @@ -126,7 +127,7 @@ impl Tool for DenoTool { .out .print_checkpoint(Checkpoint::Setup, format!("installing deno {version}"))?; - if self.tool.setup(version, false).await? { + if self.tool.setup(version, InstallOptions::default()).await? { last_versions.insert("deno".into(), version.to_owned()); count += 1; } diff --git a/legacy/node/tool/src/bun_tool.rs b/legacy/node/tool/src/bun_tool.rs index 7e7fc70761f..d6ae74aad52 100644 --- a/legacy/node/tool/src/bun_tool.rs +++ b/legacy/node/tool/src/bun_tool.rs @@ -10,6 +10,7 @@ use moon_tool::{ prepend_path_env_var, use_global_tool_on_path, DependencyManager, Tool, }; use moon_utils::get_workspace_root; +use proto_core::flow::install::InstallOptions; use proto_core::{Id, ProtoEnvironment, Tool as ProtoTool, UnresolvedVersionSpec}; use rustc_hash::FxHashMap; use starbase_utils::fs; @@ -125,7 +126,7 @@ impl Tool for BunTool { .out .print_checkpoint(Checkpoint::Setup, format!("installing bun {version}"))?; - if self.tool.setup(version, false).await? { + if self.tool.setup(version, InstallOptions::default()).await? { last_versions.insert("bun".into(), version.to_owned()); count += 1; } diff --git a/legacy/node/tool/src/node_tool.rs b/legacy/node/tool/src/node_tool.rs index 1bfe0263c15..6fd914637e7 100644 --- a/legacy/node/tool/src/node_tool.rs +++ b/legacy/node/tool/src/node_tool.rs @@ -11,6 +11,7 @@ use moon_tool::{ prepend_path_env_var, use_global_tool_on_path, DependencyManager, Tool, ToolError, }; use moon_toolchain::RuntimeReq; +use proto_core::flow::install::InstallOptions; use proto_core::{Id, ProtoEnvironment, Tool as ProtoTool}; use rustc_hash::FxHashMap; use std::path::{Path, PathBuf}; @@ -260,7 +261,7 @@ impl Tool for NodeTool { format!("installing node {version}"), )?; - if self.tool.setup(version, false).await? { + if self.tool.setup(version, InstallOptions::default()).await? { last_versions.insert("node".into(), version.to_owned()); installed += 1; } diff --git a/legacy/node/tool/src/npm_tool.rs b/legacy/node/tool/src/npm_tool.rs index 08b7f65867b..d89e9f72593 100644 --- a/legacy/node/tool/src/npm_tool.rs +++ b/legacy/node/tool/src/npm_tool.rs @@ -10,6 +10,7 @@ use moon_tool::{ use_global_tool_on_path, DependencyManager, Tool, }; use moon_utils::{get_workspace_root, is_ci}; +use proto_core::flow::install::InstallOptions; use proto_core::{Id, ProtoEnvironment, Tool as ProtoTool, UnresolvedVersionSpec}; use rustc_hash::FxHashMap; use starbase_utils::fs; @@ -100,7 +101,7 @@ impl Tool for NpmTool { .out .print_checkpoint(Checkpoint::Setup, format!("installing npm {version}"))?; - if self.tool.setup(version, false).await? { + if self.tool.setup(version, InstallOptions::default()).await? { last_versions.insert("npm".into(), version.to_owned()); count += 1; } diff --git a/legacy/node/tool/src/pnpm_tool.rs b/legacy/node/tool/src/pnpm_tool.rs index 3f0752ae7dd..e08e9d4a268 100644 --- a/legacy/node/tool/src/pnpm_tool.rs +++ b/legacy/node/tool/src/pnpm_tool.rs @@ -10,6 +10,7 @@ use moon_tool::{ use_global_tool_on_path, DependencyManager, Tool, }; use moon_utils::get_workspace_root; +use proto_core::flow::install::InstallOptions; use proto_core::{ Id, ProtoEnvironment, Tool as ProtoTool, UnresolvedVersionSpec, VersionReq, VersionSpec, }; @@ -108,7 +109,7 @@ impl Tool for PnpmTool { .out .print_checkpoint(Checkpoint::Setup, format!("installing pnpm {version}"))?; - if self.tool.setup(version, false).await? { + if self.tool.setup(version, InstallOptions::default()).await? { last_versions.insert("pnpm".into(), version.to_owned()); count += 1; } diff --git a/legacy/node/tool/src/yarn_tool.rs b/legacy/node/tool/src/yarn_tool.rs index 285096c9152..22dd6c17f3c 100644 --- a/legacy/node/tool/src/yarn_tool.rs +++ b/legacy/node/tool/src/yarn_tool.rs @@ -10,6 +10,7 @@ use moon_tool::{ use_global_tool_on_path, DependencyManager, Tool, ToolError, }; use moon_utils::get_workspace_root; +use proto_core::flow::install::InstallOptions; use proto_core::{Id, ProtoEnvironment, Tool as ProtoTool, UnresolvedVersionSpec}; use rustc_hash::FxHashMap; use starbase_utils::fs; @@ -146,7 +147,7 @@ impl Tool for YarnTool { .out .print_checkpoint(Checkpoint::Setup, format!("installing yarn {version}"))?; - if self.tool.setup(version, false).await? { + if self.tool.setup(version, InstallOptions::default()).await? { last_versions.insert("yarn".into(), version.to_owned()); count += 1; } diff --git a/legacy/rust/tool/src/rust_tool.rs b/legacy/rust/tool/src/rust_tool.rs index 1f73ce6f847..082bdacf21c 100644 --- a/legacy/rust/tool/src/rust_tool.rs +++ b/legacy/rust/tool/src/rust_tool.rs @@ -7,6 +7,7 @@ use moon_tool::{ Tool, }; use moon_toolchain::RuntimeReq; +use proto_core::flow::install::InstallOptions; use proto_core::{Id, ProtoEnvironment, Tool as ProtoTool, UnresolvedVersionSpec}; use rustc_hash::FxHashMap; use starbase_utils::env::path_var; @@ -158,7 +159,7 @@ impl Tool for RustTool { .out .print_checkpoint(Checkpoint::Setup, format!("installing rust {version}"))?; - if self.tool.setup(version, false).await? { + if self.tool.setup(version, InstallOptions::default()).await? { last_versions.insert("rust".into(), version.to_owned()); installed += 1; } diff --git a/packages/types/src/project-config.ts b/packages/types/src/project-config.ts index 32ca2d697fc..ea4b29d4b83 100644 --- a/packages/types/src/project-config.ts +++ b/packages/types/src/project-config.ts @@ -22,12 +22,14 @@ export interface DependencyConfig { * Scope of the dependency relationship. * * @default 'production' + * @type {'build' | 'development' | 'peer' | 'production' | 'root'} */ scope: DependencyScope; /** * Source of where the dependeny came from. * * @default 'explicit' + * @type {'explicit' | 'implicit'} */ source: DependencySource; /** Metadata about the source. */ @@ -230,6 +232,7 @@ export interface ProjectConfig { * The primary programming language of the project. * * @default 'unknown' + * @type {'bash' | 'batch' | 'go' | 'javascript' | 'php' | 'python' | 'ruby' | 'rust' | 'typescript' | 'unknown' | string} */ language: LanguageType; /** @@ -250,6 +253,7 @@ export interface ProjectConfig { * The technology stack of the project, for categorizing. * * @default 'unknown' + * @type {'backend' | 'frontend' | 'infrastructure' | 'systems' | 'unknown'} */ stack: StackType; /** @@ -265,6 +269,7 @@ export interface ProjectConfig { * The type of project. * * @default 'unknown' + * @type {'application' | 'automation' | 'configuration' | 'library' | 'scaffolding' | 'tool' | 'unknown'} */ type: ProjectType; /** Overrides top-level workspace settings, scoped to this project. */ diff --git a/packages/types/src/tasks-config.ts b/packages/types/src/tasks-config.ts index d4ab4e46015..ccaebed47a2 100644 --- a/packages/types/src/tasks-config.ts +++ b/packages/types/src/tasks-config.ts @@ -205,6 +205,7 @@ export interface TaskConfig { * be automatically detected. * * @default 'unknown' + * @type {'bun' | 'deno' | 'node' | 'rust' | 'system' | 'unknown'} */ platform: PlatformType; /** diff --git a/packages/types/src/toolchain-config.ts b/packages/types/src/toolchain-config.ts index 6d17a12a6af..013da31e736 100644 --- a/packages/types/src/toolchain-config.ts +++ b/packages/types/src/toolchain-config.ts @@ -28,6 +28,7 @@ export interface BunConfig { * as dependencies. * * @default 'workspace' + * @type {'file' | 'link' | 'star' | 'version' | 'version-caret' | 'version-tilde' | 'workspace' | 'workspace-caret' | 'workspace-tilde'} */ dependencyVersionFormat: NodeVersionFormat; /** Automatically infer moon tasks from `package.json` scripts. */ @@ -189,6 +190,7 @@ export interface NodeConfig { * as dependencies. * * @default 'workspace' + * @type {'file' | 'link' | 'star' | 'version' | 'version-caret' | 'version-tilde' | 'workspace' | 'workspace-caret' | 'workspace-tilde'} */ dependencyVersionFormat: NodeVersionFormat; /** Automatically infer moon tasks from `package.json` scripts. */ @@ -199,6 +201,7 @@ export interface NodeConfig { * The package manager to use for installing dependencies. * * @default 'npm' + * @type {'bun' | 'npm' | 'pnpm' | 'yarn'} */ packageManager: NodePackageManager; /** Location of the WASM plugin to use for Node.js support. */ diff --git a/packages/types/src/workspace-config.ts b/packages/types/src/workspace-config.ts index 825a9e2793a..2d84737610e 100644 --- a/packages/types/src/workspace-config.ts +++ b/packages/types/src/workspace-config.ts @@ -18,6 +18,7 @@ export interface CodeownersConfig { * How to order ownership rules within the generated file. * * @default 'file-source' + * @type {'file-source' | 'project-name'} */ orderBy: CodeownersOrderBy; /** @@ -155,12 +156,14 @@ export interface HasherConfig { * The optimization to use when hashing. * * @default 'accuracy' + * @type {'accuracy' | 'performance'} */ optimization: HasherOptimization; /** * The strategy to use when walking the file system. * * @default 'vcs' + * @type {'glob' | 'vcs'} */ walkStrategy: HasherWalkStrategy; /** @@ -243,6 +246,7 @@ export interface VcsConfig { * The VCS client being utilized by the repository. * * @default 'git' + * @type {'git'} */ manager: VcsManager; /** @@ -250,6 +254,7 @@ export interface VcsConfig { * source code is stored. * * @default 'github' + * @type {'bitbucket' | 'github' | 'gitlab' | 'other'} */ provider: VcsProvider; /** List of remote's in which to compare branches against. */ diff --git a/wasm/test-plugin/Cargo.lock b/wasm/test-plugin/Cargo.lock index 75cd0951a44..11ee02b4be6 100644 --- a/wasm/test-plugin/Cargo.lock +++ b/wasm/test-plugin/Cargo.lock @@ -145,9 +145,9 @@ dependencies = [ [[package]] name = "garde" -version = "0.19.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29a44029f2f9359712d0c34cb78dc36266e9949ffbfcc13f5f737f6e6f1a7226" +checksum = "0a3233677ea1554a48235d81bb59d2a41654969a8e29a1316c48105fd1701693" dependencies = [ "compact_str", "garde_derive", @@ -159,9 +159,9 @@ dependencies = [ [[package]] name = "garde_derive" -version = "0.19.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e2e952fbf2bcd9dae6854d7ebcbfb05f261656d1131f4f1f4fac9da450adec" +checksum = "8796f322e43105351a7ec35148807b32b5b6058a539656dafe4a5b456d5ca41f" dependencies = [ "proc-macro2", "quote", @@ -210,9 +210,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown", @@ -396,9 +396,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.5" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -452,9 +452,9 @@ checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "schematic" -version = "0.16.5" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5186a0ee6296b0bec9f35d0e926e1cb736f14b557875a52847dbfb757385f50c" +checksum = "14bf79931c9c99d9bcdc29a448836dbcea9ad5991285cc83dd4c9f46cf771ac2" dependencies = [ "garde", "indexmap", @@ -462,6 +462,7 @@ dependencies = [ "schematic_macros", "schematic_types", "serde", + "serde_json", "serde_path_to_error", "serde_yaml", "starbase_styles", @@ -471,9 +472,9 @@ dependencies = [ [[package]] name = "schematic_macros" -version = "0.16.5" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbba5ab97b490c225145d5beba9d565c49049a4c3798227d9ef1dba23f6fcb0f" +checksum = "ea2f037e36d93185ba8e25049754095e4aabb985ed5a8157da369d40be60d9fa" dependencies = [ "convert_case", "darling", @@ -484,13 +485,14 @@ dependencies = [ [[package]] name = "schematic_types" -version = "0.8.3" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e23da8bf72241430f0a710266256139667125e51d11283e60147df0015da4758" +checksum = "7ce97b2ad673e2183ec94cce86b039e692ecdf1b3b8a1195c90ad31f8adbbd0d" dependencies = [ "indexmap", "semver", "serde_json", + "serde_yaml", ] [[package]] @@ -504,18 +506,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.204" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", @@ -524,11 +526,13 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.120" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ + "indexmap", "itoa", + "memchr", "ryu", "serde", ] @@ -570,9 +574,9 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "starbase_styles" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcdc25102288ba49a8ae037a3de74dde8bcd519dfe00dc00dae4ed7344475983" +checksum = "44854a14e28e3b1d602d802576162380504df73efae50d4b901934d25579524b" dependencies = [ "dirs", "owo-colors", @@ -603,9 +607,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.70" +version = "2.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0209b68b3613b093e0ec905354eccaedcfe83b8cb37cbdeae64026c3064c16" +checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" dependencies = [ "proc-macro2", "quote", @@ -614,9 +618,9 @@ dependencies = [ [[package]] name = "system_env" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c064041fa3a15e81801a7853412a5188d0796e7638b0a9578dd72a52d03304d" +checksum = "ce619f78837291fe16f40f216ba2493b66b34e3f8c37201f96cd5833ae95b44f" dependencies = [ "schematic", "serde", @@ -636,18 +640,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", @@ -656,9 +660,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -714,9 +718,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -741,9 +745,9 @@ checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -752,9 +756,9 @@ dependencies = [ [[package]] name = "version_spec" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037cc6c66ece56eaf96a6be8484a59eb6a3fe64fb1b26475468ffc4afc727c8a" +checksum = "1a8115efd6e9e71ef4f9b71169432fe99b042d435cd80e41314d3d869dab2d33" dependencies = [ "human-sort", "regex", @@ -766,9 +770,9 @@ dependencies = [ [[package]] name = "warpgate_api" -version = "0.8.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a829b6551d7c8aa49ee4134ebce5cf888af77a2e09ffdcb6d1deab7dfbc00f36" +checksum = "5d4fb1a48a03154125e71b7dd3b26887cbc78732d5598859795c6475fdabba6b" dependencies = [ "anyhow", "rustc-hash",