diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ef6700f0bea..1117d92712f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -13,25 +13,3 @@ updates: labels: [] schedule: interval: "monthly" -- package-ecosystem: "cargo" - directory: "/compiler-cli" - labels: [] - schedule: - interval: "monthly" -- package-ecosystem: "cargo" - directory: "/compiler-core" - labels: [] - schedule: - interval: "monthly" -- package-ecosystem: "cargo" - directory: "/compiler-wasm" - labels: [] - schedule: - interval: "monthly" -- package-ecosystem: "cargo" - # Does not have any custom deps right now, - # but can add them in the future: - directory: "/test-package-compiler" - labels: [] - schedule: - interval: "monthly" diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 580b94dd2f6..3e3d33583ea 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -82,11 +82,11 @@ jobs: uses: actions/checkout@v4 - name: Install musl-tools incl. musl-gcc - uses: awalsh128/cache-apt-pkgs-action@v1.5.0 + uses: awalsh128/cache-apt-pkgs-action@v1.5.1 with: # musl-tools provide `musl-gcc` which is required for `ring` which is required for `rustls` et al. packages: musl-tools - version: 1.1 + version: 1.2.5 if: ${{ matrix.target == 'x86_64-unknown-linux-musl'}} - name: Install Rust toolchain @@ -98,7 +98,7 @@ jobs: - name: Install Erlang uses: erlef/setup-beam@v1 with: - otp-version: "28.0.1" + otp-version: "28.0.2" elixir-version: "1.18" rebar3-version: "3" @@ -110,7 +110,7 @@ jobs: - name: Setup Deno uses: denoland/setup-deno@v2 with: - deno-version: "2.2" + deno-version: "2.4" - name: Setup Bun uses: oven-sh/setup-bun@v2 diff --git a/Cargo.lock b/Cargo.lock index 14aeb913aed..1ca4baa2ad2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,24 +4,18 @@ version = 4 [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" @@ -91,35 +85,11 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -132,43 +102,44 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "once_cell_polyfill", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arc-swap" @@ -178,46 +149,44 @@ checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "askama" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b79091df18a97caea757e28cd2d5fda49c6cd4bd01ddffd7ff01ace0c0ad2c28" +checksum = "f75363874b771be265f4ffe307ca705ef6f3baa19011c149da8674a87f1b75c4" dependencies = [ "askama_derive", - "askama_escape", - "humansize", - "num-traits", + "itoa", "percent-encoding", + "serde", + "serde_json", ] [[package]] name = "askama_derive" -version = "0.12.5" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19fe8d6cb13c4714962c072ea496f3392015f0989b1a2847bb4b2d9effd71d83" +checksum = "129397200fe83088e8a68407a8e2b1f826cf0086b21ccdb866a722c8bcd3a94f" dependencies = [ "askama_parser", "basic-toml", - "mime", - "mime_guess", + "memchr", "proc-macro2", "quote", + "rustc-hash 2.1.1", "serde", - "syn 2.0.101", + "serde_derive", + "syn 2.0.104", ] -[[package]] -name = "askama_escape" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" - [[package]] name = "askama_parser" -version = "0.2.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acb1161c6b64d1c3d83108213c2a2533a342ac225aabd0bda218278c2ddb00c0" +checksum = "d6ab5630b3d5eaf232620167977f95eb51f3432fc76852328774afbd242d4358" dependencies = [ - "nom", + "memchr", + "serde", + "serde_derive", + "winnow", ] [[package]] @@ -267,28 +236,28 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "autocfg" -version = "1.3.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", - "miniz_oxide 0.7.2", + "miniz_oxide", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -297,12 +266,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d27c3610c36aee21ce8ac510e6224498de4228ad772a171ed65643a24693a5a8" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -311,15 +274,15 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "basic-toml" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8" +checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" dependencies = [ "serde", ] @@ -338,11 +301,22 @@ checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" [[package]] name = "bincode" -version = "1.3.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" dependencies = [ + "bincode_derive", "serde", + "unty", +] + +[[package]] +name = "bincode_derive" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" +dependencies = [ + "virtue", ] [[package]] @@ -353,9 +327,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "bitmaps" @@ -377,68 +351,68 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", - "regex-automata 0.4.6", + "regex-automata 0.4.9", "serde", ] [[package]] name = "bumpalo" -version = "3.15.4" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytes" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "camino" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" dependencies = [ "serde", ] [[package]] name = "capnp" -version = "0.20.3" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bce4e2d41c16cf9188f47ca4d59fdcdca1f33705af211bdb41f0afbd3442f8b5" +checksum = "def25bdbbc2758b363d79129c7f277520e3347e8b647c404d4823591f837c4ad" dependencies = [ "embedded-io", ] [[package]] name = "capnpc" -version = "0.20.1" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aa3d5f01e69ed11656d2c7c47bf34327ea9bfb5c85c7de787fcd7b6c5e45b61" +checksum = "d93a18ec8176d4a87f1852b6a560b4196729365c01ba3cad03b73a376a23c56e" dependencies = [ "capnp", ] [[package]] name = "cc" -version = "1.2.16" +version = "1.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" dependencies = [ "shlex", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "cfg_aliases" @@ -470,18 +444,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "chrono" -version = "0.4.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "windows-link", -] - [[package]] name = "cipher" version = "0.4.4" @@ -495,9 +457,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "ed87a9d530bb41a67537289bafcac159cb3ee28460e0a4571123d2a778a6a882" dependencies = [ "clap_builder", "clap_derive", @@ -505,9 +467,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "64f4f3f3c77c94aff3c7e9aac9a2ca1974a5adf392a8bb751e827d6d127ab966" dependencies = [ "anstream", "anstyle", @@ -517,21 +479,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "codespan-reporting" @@ -546,20 +508,20 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "console" -version = "0.15.8" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ "encode_unicode", - "lazy_static", "libc", - "windows-sys 0.52.0", + "once_cell", + "windows-sys 0.59.0", ] [[package]] @@ -581,26 +543,20 @@ dependencies = [ "futures", ] -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -616,9 +572,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -635,9 +591,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" @@ -651,9 +607,9 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.4.5" +version = "3.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" +checksum = "46f93780a459b7d656ef7f071fe699c4d3d2cb201c4b24d085b6ddc505276e73" dependencies = [ "nix", "windows-sys 0.59.0", @@ -682,39 +638,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", -] - -[[package]] -name = "dashmap" -version = "6.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" -dependencies = [ - "cfg-if", - "crossbeam-utils", - "hashbrown 0.14.3", - "lock_api", - "once_cell", - "parking_lot_core", + "syn 2.0.104", ] [[package]] name = "data-encoding" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" - -[[package]] -name = "dbus" -version = "0.9.7" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" -dependencies = [ - "libc", - "libdbus-sys", - "winapi", -] +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "debug-ignore" @@ -738,9 +669,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.11" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", ] @@ -785,29 +716,29 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "ecow" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42fc0a93992b20c58b99e59d61eaf1635a25bfbe49e4275c34ba0aee98119ba" +checksum = "b92b481eb5d59fd8e80e92ff11d057d1ca8d144b2cd8c66cc8d5bd177a3c0dc5" dependencies = [ "serde", ] [[package]] name = "either" -version = "1.10.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "embedded-io" @@ -817,9 +748,9 @@ checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" [[package]] name = "encode_unicode" -version = "0.3.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "endian-type" @@ -829,25 +760,25 @@ checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] name = "fastrand" -version = "2.0.2" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fiat-crypto" @@ -857,14 +788,14 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.23" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", + "libredox", + "windows-sys 0.59.0", ] [[package]] @@ -873,7 +804,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2" dependencies = [ - "toml", + "toml 0.5.11", ] [[package]] @@ -884,12 +815,12 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", - "miniz_oxide 0.8.8", + "miniz_oxide", ] [[package]] @@ -1029,7 +960,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -1074,14 +1005,14 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -1092,16 +1023,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi", "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "gleam" @@ -1151,10 +1084,10 @@ dependencies = [ "tempfile", "termcolor", "tokio", - "toml", + "toml 0.9.4", "toml_edit", "tracing", - "tracing-subscriber 0.2.25", + "tracing-subscriber", ] [[package]] @@ -1193,7 +1126,7 @@ dependencies = [ "pubgrub", "pulldown-cmark", "radix_trie", - "rand 0.9.1", + "rand 0.9.2", "regex", "serde", "serde_derive", @@ -1203,8 +1136,8 @@ dependencies = [ "strum", "tar", "termcolor", - "thiserror 1.0.69", - "toml", + "thiserror 2.0.12", + "toml 0.9.4", "tracing", "unicode-segmentation", "vec1", @@ -1217,7 +1150,7 @@ version = "1.12.0-rc2" dependencies = [ "camino", "console_error_panic_hook", - "getrandom 0.2.15", + "getrandom 0.3.3", "gleam-core", "hexpm", "im", @@ -1240,22 +1173,16 @@ dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata 0.4.6", - "regex-syntax 0.8.3", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", "serde", ] [[package]] name = "hashbrown" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" - -[[package]] -name = "hashbrown" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" dependencies = [ "allocator-api2", "equivalent", @@ -1268,12 +1195,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hexpm" version = "4.1.0" @@ -1340,18 +1261,18 @@ dependencies = [ [[package]] name = "http-auth-basic" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd2e17aacf7f4a2428def798e2ff4f4f883c0987bdaf47dd5c8bc027bc9f1ebc" +checksum = "0e0c088bddfd73005b09807131224ad12c302655436b1270c8346a3ae8aaa37a" dependencies = [ - "base64 0.13.1", + "base64 0.22.1", ] [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http", @@ -1359,9 +1280,9 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", @@ -1372,24 +1293,15 @@ dependencies = [ [[package]] name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "humansize" -version = "2.1.3" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" -dependencies = [ - "libm", -] +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "hyper" -version = "1.5.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", @@ -1406,11 +1318,10 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.2" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "futures-util", "http", "hyper", "hyper-util", @@ -1424,18 +1335,23 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.0", "tokio", "tower-service", "tracing", @@ -1443,9 +1359,9 @@ dependencies = [ [[package]] name = "i18n-config" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e88074831c0be5b89181b05e6748c4915f77769ecc9a4c372f88b169a8509c9" +checksum = "3e06b90c8a0d252e203c94344b21e35a30f3a3a85dc7db5af8f8df9f3e0c63ef" dependencies = [ "basic-toml", "log", @@ -1457,9 +1373,9 @@ dependencies = [ [[package]] name = "i18n-embed" -version = "0.15.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7839d8c7bb8da7bd58c1112d3a1aeb7f178ff3df4ae87783e758ca3bfb750b7" +checksum = "669ffc2c93f97e6ddf06ddbe999fcd6782e3342978bb85f7d3c087c7978404c4" dependencies = [ "arc-swap", "fluent", @@ -1467,7 +1383,6 @@ dependencies = [ "fluent-syntax", "i18n-embed-impl", "intl-memoizer", - "lazy_static", "log", "parking_lot", "rust-embed", @@ -1478,22 +1393,20 @@ dependencies = [ [[package]] name = "i18n-embed-fl" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e9571c3cba9eba538eaa5ee40031b26debe76f0c7e17bafc97ea57a76cd82e" +checksum = "04b2969d0b3fc6143776c535184c19722032b43e6a642d710fa3f88faec53c2d" dependencies = [ - "dashmap", "find-crate", "fluent", "fluent-syntax", "i18n-config", "i18n-embed", - "lazy_static", "proc-macro-error2", "proc-macro2", "quote", "strsim", - "syn 2.0.101", + "syn 2.0.104", "unic-langid", ] @@ -1507,50 +1420,27 @@ dependencies = [ "i18n-config", "proc-macro2", "quote", - "syn 2.0.101", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", + "syn 2.0.104", ] [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -1559,31 +1449,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -1591,67 +1461,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "id-arena" version = "2.2.1" @@ -1671,9 +1528,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -1681,15 +1538,15 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" dependencies = [ "crossbeam-deque", "globset", "log", "memchr", - "regex-automata 0.4.6", + "regex-automata 0.4.9", "same-file", "walkdir", "winapi-util", @@ -1711,42 +1568,41 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", - "hashbrown 0.15.3", + "hashbrown", ] [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "generic-array", ] [[package]] name = "insta" -version = "1.41.1" +version = "1.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9ffc4d4892617c50a928c52b2961cb5174b6fc6ebf252b2fac9d21955c48b8" +checksum = "154934ea70c58054b556dd430b99a98c2a7ff5309ac9891597e339b5c28f4371" dependencies = [ "console", "globset", - "lazy_static", - "linked-hash-map", + "once_cell", "similar", "walkdir", ] [[package]] name = "intl-memoizer" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe22e020fce238ae18a6d5d8c502ee76a52a6e880d99477657e6acc30ec57bda" +checksum = "310da2e345f5eb861e7a07ee182262e94975051db9e4223e909ba90f392f163f" dependencies = [ "type-map", "unic-langid", @@ -1761,6 +1617,17 @@ dependencies = [ "unic-langid", ] +[[package]] +name = "io-uring" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "io_tee" version = "0.1.1" @@ -1769,15 +1636,25 @@ checksum = "4b3f7cef34251886990511df1c61443aa928499d598a9473929ab5a90a527304" [[package]] name = "ipnet" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" @@ -1790,80 +1667,60 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.172" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] -name = "libdbus-sys" -version = "0.2.5" +name = "libredox" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" +checksum = "360e552c93fa0e8152ab463bc4c4837fce76a225df11dfaeea66c313de5e61f7" dependencies = [ - "cc", - "pkg-config", + "bitflags 2.9.1", + "libc", + "redox_syscall", ] [[package]] -name = "libm" -version = "0.2.8" +name = "linux-raw-sys" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] -name = "libredox" -version = "0.1.3" +name = "litemap" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.5.0", - "libc", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linux-raw-sys" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -1871,9 +1728,15 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "lsp-server" @@ -1903,33 +1766,27 @@ dependencies = [ [[package]] name = "matchers" -version = "0.0.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ "regex-automata 0.1.10", ] [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] -name = "mime" -version = "0.3.17" +name = "minicov" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +checksum = "f27fe9f1cc3c22e1687f9446c2083c4c5fc7f0bcf1c7a86bdbded14985895b4b" dependencies = [ - "mime", - "unicase", + "cc", + "walkdir", ] [[package]] @@ -1940,39 +1797,29 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" -dependencies = [ - "adler", -] - -[[package]] -name = "miniz_oxide" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ - "hermit-abi", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] name = "multimap" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "nibble_vec" @@ -1985,11 +1832,11 @@ dependencies = [ [[package]] name = "nix" -version = "0.29.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.9.1", "cfg-if", "cfg_aliases", "libc", @@ -2007,11 +1854,21 @@ dependencies = [ [[package]] name = "normpath" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5831952a9476f2fed74b77d74182fa5ddc4d21c72ec45a333b250e3ed0272804" +checksum = "c8911957c4b1549ac0dc74e30db9c8b0e66ddcd6d7acc33098f4c63a64a6d7ed" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", ] [[package]] @@ -2051,9 +1908,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.1" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] @@ -2069,9 +1926,15 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "opaque-debug" @@ -2081,21 +1944,26 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "opener" -version = "0.7.2" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0812e5e4df08da354c851a3376fead46db31c2214f849d3de356d774d057681" +checksum = "771b9704f8cd8b424ec747a320b30b47517a6966ba2c7da90047c16f4a962223" dependencies = [ "bstr", - "dbus", "normpath", "windows-sys 0.59.0", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -2103,13 +1971,13 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.7", + "redox_syscall", "smallvec", "windows-targets 0.52.6", ] @@ -2156,36 +2024,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54acf3a685220b533e437e264e4d932cfbdc4cc7ec0cd232ed73c08d03b8a7ca" dependencies = [ "fixedbitset", - "hashbrown 0.15.3", + "hashbrown", "indexmap", "serde", ] [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -2193,12 +2061,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - [[package]] name = "poly1305" version = "0.8.0" @@ -2210,6 +2072,15 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -2218,9 +2089,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] [[package]] name = "pretty_assertions" @@ -2234,19 +2108,19 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.17" +version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" +checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" dependencies = [ "proc-macro2", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "priority-queue" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef08705fa1589a1a59aa924ad77d14722cb0cd97b67dd5004ed5f4a4873fce8d" +checksum = "5676d703dda103cbb035b653a9f11448c0a7216c7926bd35fcb5865475d0c970" dependencies = [ "autocfg", "equivalent", @@ -2272,7 +2146,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -2310,7 +2184,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.101", + "syn 2.0.104", "tempfile", ] @@ -2324,7 +2198,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -2354,7 +2228,7 @@ dependencies = [ "indexmap", "log", "priority-queue", - "rustc-hash 2.0.0", + "rustc-hash 2.1.1", "thiserror 2.0.12", "version-ranges", ] @@ -2365,7 +2239,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.9.1", "memchr", "pulldown-cmark-escape", "unicase", @@ -2379,64 +2253,73 @@ checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae" [[package]] name = "quinn" -version = "0.11.2" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad" +checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" dependencies = [ "bytes", + "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 1.1.0", + "rustc-hash 2.1.1", "rustls", - "thiserror 1.0.69", + "socket2 0.5.10", + "thiserror 2.0.12", "tokio", "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" dependencies = [ "bytes", - "rand 0.8.5", + "getrandom 0.3.3", + "lru-slab", + "rand 0.9.2", "ring", - "rustc-hash 2.0.0", + "rustc-hash 2.1.1", "rustls", + "rustls-pki-types", "slab", - "thiserror 1.0.69", + "thiserror 2.0.12", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.4" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" dependencies = [ + "cfg_aliases", "libc", "once_cell", - "socket2", - "windows-sys 0.52.0", + "socket2 0.5.10", + "tracing", + "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "radix_trie" @@ -2461,9 +2344,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -2495,7 +2378,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", ] [[package]] @@ -2518,43 +2401,34 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.7" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.9.1", ] [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "libredox", "thiserror 1.0.69", ] [[package]] name = "regex" -version = "1.10.5" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.6", - "regex-syntax 0.8.3", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -2568,13 +2442,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.3", + "regex-syntax 0.8.5", ] [[package]] @@ -2585,36 +2459,31 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.12" +version = "0.12.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "bytes", "futures-core", - "futures-util", "http", "http-body", "http-body-util", "hyper", "hyper-rustls", "hyper-util", - "ipnet", "js-sys", "log", - "mime", - "once_cell", "percent-encoding", "pin-project-lite", "quinn", "rustls", - "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", @@ -2623,24 +2492,24 @@ dependencies = [ "tokio", "tokio-rustls", "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", "webpki-roots", - "windows-registry", ] [[package]] name = "ring" -version = "0.17.13" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.15", + "getrandom 0.2.16", "libc", "untrusted", "windows-sys 0.52.0", @@ -2659,19 +2528,19 @@ dependencies = [ [[package]] name = "rtoolbox" -version = "0.0.2" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "rust-embed" -version = "8.5.0" +version = "8.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa66af4a4fdd5e7ebc276f115e895611a34739a9c1c01028383d612d550953c0" +checksum = "025908b8682a26ba8d12f6f2d66b987584a4a87bc024abc5bbc12553a8cd178a" dependencies = [ "rust-embed-impl", "rust-embed-utils", @@ -2680,22 +2549,22 @@ dependencies = [ [[package]] name = "rust-embed-impl" -version = "8.5.0" +version = "8.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6125dbc8867951125eec87294137f4e9c2c96566e61bf72c45095a7c77761478" +checksum = "6065f1a4392b71819ec1ea1df1120673418bf386f50de1d6f54204d836d4349c" dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.101", + "syn 2.0.104", "walkdir", ] [[package]] name = "rust-embed-utils" -version = "8.5.0" +version = "8.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5347777e9aacb56039b0e1f28785929a8a3b709e87482e7442c72e7c12529d" +checksum = "f6cc0c81648b20b70c491ff8cce00c1c3b223bb8ed2b5d41f0e54c6c4c0a3594" dependencies = [ "sha2", "walkdir", @@ -2703,9 +2572,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -2715,9 +2584,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc_version" @@ -2739,22 +2608,22 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.32" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] name = "rustls" -version = "0.23.7" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebbbdb961df0ad3f2652da8f3fdc4b36122f568f968f45ad3316f26c025c677b" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "once_cell", "ring", @@ -2765,26 +2634,20 @@ dependencies = [ ] [[package]] -name = "rustls-pemfile" -version = "2.1.2" +name = "rustls-pki-types" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" dependencies = [ - "base64 0.22.0", - "rustls-pki-types", + "web-time", + "zeroize", ] -[[package]] -name = "rustls-pki-types" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" - [[package]] name = "rustls-webpki" -version = "0.102.2" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ "ring", "rustls-pki-types", @@ -2793,15 +2656,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "salsa20" @@ -2821,12 +2684,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" @@ -2859,20 +2716,20 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d" dependencies = [ - "self_cell 1.0.4", + "self_cell 1.2.0", ] [[package]] name = "self_cell" -version = "1.0.4" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" +checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" [[package]] name = "semver" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" [[package]] name = "serde" @@ -2902,14 +2759,14 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.141" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" dependencies = [ "itoa", "memchr", @@ -2919,13 +2776,22 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.18" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", +] + +[[package]] +name = "serde_spanned" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +dependencies = [ + "serde", ] [[package]] @@ -2942,9 +2808,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -2968,9 +2834,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "similar" -version = "2.5.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" [[package]] name = "sized-chunks" @@ -2984,34 +2850,41 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "spdx" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58b69356da67e2fc1f542c71ea7e654a361a79c938e4424392ecf4fa065d2193" +checksum = "c3e17e880bafaeb362a7b751ec46bdc5b61445a188f80e0606e68167cd540fa3" dependencies = [ "smallvec", ] @@ -3049,31 +2922,30 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.26.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.26.4" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ "heck", "proc-macro2", "quote", - "rustversion", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -3088,9 +2960,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.101" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -3099,9 +2971,9 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -3120,13 +2992,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -3142,12 +3014,12 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.12.0" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ - "cfg-if", "fastrand", + "getrandom 0.3.3", "once_cell", "rustix", "windows-sys 0.59.0", @@ -3172,7 +3044,7 @@ dependencies = [ "insta", "itertools", "regex", - "toml", + "toml 0.9.4", "walkdir", ] @@ -3198,7 +3070,7 @@ dependencies = [ "itertools", "regex", "test-helpers-rs", - "toml", + "toml 0.9.4", ] [[package]] @@ -3212,7 +3084,7 @@ dependencies = [ "itertools", "regex", "test-helpers-rs", - "toml", + "toml 0.9.4", ] [[package]] @@ -3241,7 +3113,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] @@ -3252,24 +3124,23 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] name = "time" -version = "0.3.36" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", @@ -3282,15 +3153,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ "num-conv", "time-core", @@ -3298,9 +3169,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -3308,9 +3179,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -3323,27 +3194,28 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.42.1" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209a14885b74764cce87ffa777ffa1b8ce81a3f3166c6f886b83337fe7e077f" +checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "pin-project-lite", - "socket2", - "windows-sys 0.52.0", + "slab", + "socket2 0.6.0", + "windows-sys 0.59.0", ] [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ "rustls", - "rustls-pki-types", "tokio", ] @@ -3356,29 +3228,57 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ae868b5a0f67631c14589f7e250c1ea2c574ee5ba21c6c8dd4b1485705a5a1" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_parser", + "toml_writer", + "winnow", +] + [[package]] name = "toml_datetime" -version = "0.6.9" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" +checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" -version = "0.22.26" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +checksum = "d1dee9dc43ac2aaf7d3b774e2fba5148212bf2bd9374f4e50152ebe9afd03d42" dependencies = [ "indexmap", "toml_datetime", - "toml_write", + "toml_parser", + "toml_writer", "winnow", ] [[package]] -name = "toml_write" -version = "0.1.1" +name = "toml_parser" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" +checksum = "97200572db069e74c512a14117b296ba0a80a30123fbbb5aa1f4a348f639ca30" +dependencies = [ + "winnow", +] + +[[package]] +name = "toml_writer" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" [[package]] name = "tower" @@ -3395,6 +3295,24 @@ dependencies = [ "tower-service", ] +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.1", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -3409,9 +3327,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -3420,20 +3338,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -3441,56 +3359,31 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", "once_cell", "tracing-core", ] -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - [[package]] name = "tracing-subscriber" -version = "0.2.25" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ - "ansi_term", - "chrono", - "lazy_static", "matchers", + "nu-ansi-term", + "once_cell", "regex", - "serde", - "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", - "tracing-serde", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" -dependencies = [ - "sharded-slab", - "thread_local", - "tracing-core", ] [[package]] @@ -3500,7 +3393,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" dependencies = [ "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber", "wasm-bindgen", ] @@ -3512,33 +3405,33 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "type-map" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb68604048ff8fa93347f02441e4487594adc20bb8a084f9e564d2b827a0a9f" +checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90" dependencies = [ - "rustc-hash 1.1.0", + "rustc-hash 2.1.1", ] [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "unic-langid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dd9d1e72a73b25e07123a80776aae3e7b0ec461ef94f9151eed6ec88005a44" +checksum = "a28ba52c9b05311f4f6e62d5d9d46f094bd6e84cb8df7b3ef952748d752a7d05" dependencies = [ "unic-langid-impl", ] [[package]] name = "unic-langid-impl" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5422c1f65949306c99240b81de9f3f15929f5a8bfe05bb44b034cc8bf593e5" +checksum = "dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658" dependencies = [ "serde", "tinystr", @@ -3546,18 +3439,15 @@ dependencies = [ [[package]] name = "unicase" -version = "2.7.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-segmentation" @@ -3567,15 +3457,15 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -3593,6 +3483,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "url" version = "2.5.4" @@ -3605,12 +3501,6 @@ dependencies = [ "serde", ] -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -3619,15 +3509,15 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vec1" @@ -3646,9 +3536,15 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "virtue" +version = "0.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" [[package]] name = "walkdir" @@ -3671,9 +3567,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" @@ -3686,12 +3582,13 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "serde", "serde_json", "wasm-bindgen-macro", @@ -3699,35 +3596,36 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3735,32 +3633,34 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-bindgen-test" -version = "0.3.42" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9bf62a58e0780af3e852044583deee40983e5886da43a271dd772379987667b" +checksum = "66c8d5e33ca3b6d9fa3b4676d774c5778031d27a578c2b007f905acf816152c3" dependencies = [ - "console_error_panic_hook", "js-sys", - "scoped-tls", + "minicov", "wasm-bindgen", "wasm-bindgen-futures", "wasm-bindgen-test-macro", @@ -3768,20 +3668,30 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.42" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f89739351a2e03cb94beb799d47fb2cac01759b40ec441f7de39b00cbf7ef0" +checksum = "17d5042cc5fa009658f9a7333ef24291b1291a25b6382dd68862a7f3b969f69b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -3789,9 +3699,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] @@ -3814,11 +3724,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -3827,103 +3737,11 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-core" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result 0.3.2", - "windows-strings 0.4.0", -] - -[[package]] -name = "windows-implement" -version = "0.60.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "windows-interface" -version = "0.59.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "windows-link" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - -[[package]] -name = "windows-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" -dependencies = [ - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-strings" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-sys" @@ -3944,18 +3762,12 @@ dependencies = [ ] [[package]] -name = "windows-targets" -version = "0.48.5" +name = "windows-sys" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 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", + "windows-targets 0.53.3", ] [[package]] @@ -3967,7 +3779,7 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", @@ -3975,10 +3787,21 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" +name = "windows-targets" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] [[package]] name = "windows_aarch64_gnullvm" @@ -3987,10 +3810,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" +name = "windows_aarch64_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" @@ -3999,10 +3822,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] -name = "windows_i686_gnu" -version = "0.48.5" +name = "windows_aarch64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" @@ -4010,6 +3833,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" @@ -4017,10 +3846,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] -name = "windows_i686_msvc" -version = "0.48.5" +name = "windows_i686_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" @@ -4029,10 +3858,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" +name = "windows_i686_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" @@ -4041,10 +3870,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" +name = "windows_x86_64_gnu" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" @@ -4053,10 +3882,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" +name = "windows_x86_64_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" @@ -4064,11 +3893,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" -version = "0.7.9" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9fb597c990f03753e08d3c29efbfcf2019a003b4bf4ba19225c158e1549f0f3" +checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" dependencies = [ "memchr", ] @@ -4079,20 +3914,14 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.9.1", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "x25519-dalek" @@ -4125,12 +3954,11 @@ dependencies = [ [[package]] name = "xattr" -version = "1.3.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", - "linux-raw-sys", "rustix", ] @@ -4148,9 +3976,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -4160,42 +3988,62 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", + "synstructure 0.13.2", +] + +[[package]] +name = "zerocopy" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", - "synstructure 0.13.1", + "syn 2.0.104", ] [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", - "synstructure 0.13.1", + "syn 2.0.104", + "synstructure 0.13.2", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -4208,14 +4056,25 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", ] [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" dependencies = [ "yoke", "zerofrom", @@ -4224,11 +4083,11 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.104", ] diff --git a/Cargo.toml b/Cargo.toml index 5c688c09959..5496bf1d99f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,11 +54,11 @@ ecow = "0" # Drop in replacement for std::path but with only utf-8 camino = "1" # std::error::Error definition macro -thiserror = "1" +thiserror = "2" # Test assertion errors with diffs pretty_assertions = "1" # Snapshot testing to make test maintenance easier insta = { version = "1", features = ["glob"] } # A transitive dependency needed to compile into wasm32-unknown-unknown # See https://docs.rs/getrandom/latest/getrandom/index.html#webassembly-support -getrandom = { version = "0.2", features = ["js"] } +getrandom = { version = "0.3", features = ["wasm_js"] } diff --git a/compiler-cli/src/dependencies.rs b/compiler-cli/src/dependencies.rs index 485bb684815..4c44a6b1071 100644 --- a/compiler-cli/src/dependencies.rs +++ b/compiler-cli/src/dependencies.rs @@ -1037,11 +1037,11 @@ pub fn unlock_packages( let mut packages_to_unlock: Vec = packages_to_unlock.to_vec(); while let Some(package_name) = packages_to_unlock.pop() { - if locked.remove(&package_name).is_some() { - if let Some(package) = manifest.packages.iter().find(|p| p.name == package_name) { - let deps_to_unlock = find_deps_to_unlock(package, locked, manifest); - packages_to_unlock.extend(deps_to_unlock); - } + if locked.remove(&package_name).is_some() + && let Some(package) = manifest.packages.iter().find(|p| p.name == package_name) + { + let deps_to_unlock = find_deps_to_unlock(package, locked, manifest); + packages_to_unlock.extend(deps_to_unlock); } } } else { diff --git a/compiler-cli/src/new/tests.rs b/compiler-cli/src/new/tests.rs index e4d22969ef7..6a12200af46 100644 --- a/compiler-cli/src/new/tests.rs +++ b/compiler-cli/src/new/tests.rs @@ -36,7 +36,7 @@ fn new() { #[test] fn new_with_default_template() { let tmp = tempfile::tempdir().unwrap(); - let path = Utf8PathBuf::from_path_buf(tmp.into_path()).expect("Non Utf8 Path"); + let path = Utf8PathBuf::from_path_buf(tmp.keep()).expect("Non Utf8 Path"); let creator = super::Creator::new( super::NewOptions { @@ -66,7 +66,7 @@ fn new_with_default_template() { #[test] fn new_with_javascript_template() { let tmp = tempfile::tempdir().unwrap(); - let path = Utf8PathBuf::from_path_buf(tmp.into_path()).expect("Non Utf8 Path"); + let path = Utf8PathBuf::from_path_buf(tmp.keep()).expect("Non Utf8 Path"); let creator = super::Creator::new( super::NewOptions { diff --git a/compiler-cli/src/publish.rs b/compiler-cli/src/publish.rs index c4fa5f13a05..d1dff790e32 100644 --- a/compiler-cli/src/publish.rs +++ b/compiler-cli/src/publish.rs @@ -342,17 +342,13 @@ fn do_build_hex_tarball(paths: &ProjectPaths, config: &mut PackageConfig) -> Res // Otherwise we need to check that the annotated version range is // correct and includes the minimum required version. Some(gleam_version) => { - if let Some(lowest_allowed_version) = gleam_version.lowest_version() { - if lowest_allowed_version < minimum_required_version { - return Err(Error::CannotPublishWrongVersion { - minimum_required_version: SmallVersion::from_hexpm( - minimum_required_version, - ), - wrongfully_allowed_version: SmallVersion::from_hexpm( - lowest_allowed_version, - ), - }); - } + if let Some(lowest_allowed_version) = gleam_version.lowest_version() + && lowest_allowed_version < minimum_required_version + { + return Err(Error::CannotPublishWrongVersion { + minimum_required_version: SmallVersion::from_hexpm(minimum_required_version), + wrongfully_allowed_version: SmallVersion::from_hexpm(lowest_allowed_version), + }); } } } diff --git a/compiler-cli/src/run.rs b/compiler-cli/src/run.rs index 762ba096857..46f7e3ff1ca 100644 --- a/compiler-cli/src/run.rs +++ b/compiler-cli/src/run.rs @@ -56,12 +56,12 @@ pub fn setup( no_print_progress: bool, ) -> Result { // Validate the module path - if let Some(mod_path) = &module { - if !is_gleam_module(mod_path) { - return Err(Error::InvalidModuleName { - module: mod_path.to_owned(), - }); - } + if let Some(mod_path) = &module + && !is_gleam_module(mod_path) + { + return Err(Error::InvalidModuleName { + module: mod_path.to_owned(), + }); }; let telemetry: &'static dyn Telemetry = if no_print_progress { diff --git a/compiler-core/Cargo.toml b/compiler-core/Cargo.toml index dd857dea66c..5b47cd734b1 100644 --- a/compiler-core/Cargo.toml +++ b/compiler-core/Cargo.toml @@ -25,7 +25,7 @@ dirs-next = "2" # SPDX license parsing spdx = "0" # Binary format de-serialization -bincode = "1" +bincode = { version = "2", features = ["serde"] } # cross platform single glob and glob set matching globset = { version = "0", features = ["serde1"] } # Checksums diff --git a/compiler-core/src/analyse.rs b/compiler-core/src/analyse.rs index 820f4d2a417..5a8614e958f 100644 --- a/compiler-core/src/analyse.rs +++ b/compiler-core/src/analyse.rs @@ -643,10 +643,10 @@ impl<'a, A> ModuleAnalyzer<'a, A> { } => self.track_feature_usage(FeatureKind::InternalAnnotation, location), } - if let Some((module, _, location)) = &external_javascript { - if module.contains('@') { - self.track_feature_usage(FeatureKind::AtInJavascriptModules, *location) - } + if let Some((module, _, location)) = &external_javascript + && module.contains('@') + { + self.track_feature_usage(FeatureKind::AtInJavascriptModules, *location) } // Assert that the inferred type matches the type of any recursive call @@ -1558,21 +1558,21 @@ impl<'a, A> ModuleAnalyzer<'a, A> { // Then if the required version is not in the specified version for the // range we emit a warning highlighting the usage of the feature. - if let Some(gleam_version) = &self.package_config.gleam_version { - if let Some(lowest_allowed_version) = gleam_version.lowest_version() { - // There is a version in the specified range that is lower than - // the one required by this feature! This means that the - // specified range is wrong and would allow someone to run a - // compiler that is too old to know of this feature. - if minimum_required_version > lowest_allowed_version { - self.problems - .warning(Warning::FeatureRequiresHigherGleamVersion { - location, - feature_kind, - minimum_required_version: minimum_required_version.clone(), - wrongfully_allowed_version: lowest_allowed_version, - }) - } + if let Some(gleam_version) = &self.package_config.gleam_version + && let Some(lowest_allowed_version) = gleam_version.lowest_version() + { + // There is a version in the specified range that is lower than + // the one required by this feature! This means that the + // specified range is wrong and would allow someone to run a + // compiler that is too old to know of this feature. + if minimum_required_version > lowest_allowed_version { + self.problems + .warning(Warning::FeatureRequiresHigherGleamVersion { + location, + feature_kind, + minimum_required_version: minimum_required_version.clone(), + wrongfully_allowed_version: lowest_allowed_version, + }) } } diff --git a/compiler-core/src/ast.rs b/compiler-core/src/ast.rs index 1228ad8fee2..42a13c59749 100644 --- a/compiler-core/src/ast.rs +++ b/compiler-core/src/ast.rs @@ -962,10 +962,10 @@ impl TypedDefinition { Definition::ModuleConstant(constant) => { // Check if location is within the annotation. - if let Some(annotation) = &constant.annotation { - if let Some(l) = annotation.find_node(byte_index, constant.type_.clone()) { - return Some(l); - } + if let Some(annotation) = &constant.annotation + && let Some(l) = annotation.find_node(byte_index, constant.type_.clone()) + { + return Some(l); } if let Some(located) = constant.value.find_node(byte_index) { @@ -3635,10 +3635,10 @@ pub type UntypedAssignment = Assignment<(), UntypedExpr>; impl TypedAssignment { pub fn find_node(&self, byte_index: u32) -> Option> { - if let Some(annotation) = &self.annotation { - if let Some(l) = annotation.find_node(byte_index, self.pattern.type_()) { - return Some(l); - } + if let Some(annotation) = &self.annotation + && let Some(l) = annotation.find_node(byte_index, self.pattern.type_()) + { + return Some(l); } self.pattern .find_node(byte_index) @@ -3665,10 +3665,10 @@ impl TypedAssert { if let Some(found) = self.value.find_node(byte_index) { return Some(found); } - if let Some(message) = &self.message { - if let Some(found) = message.find_node(byte_index) { - return Some(found); - } + if let Some(message) = &self.message + && let Some(found) = message.find_node(byte_index) + { + return Some(found); } None } diff --git a/compiler-core/src/ast/typed.rs b/compiler-core/src/ast/typed.rs index 66ed7f8ce57..564a4920b81 100644 --- a/compiler-core/src/ast/typed.rs +++ b/compiler-core/src/ast/typed.rs @@ -339,10 +339,10 @@ impl TypedExpr { } } - if let Some(tail) = tail { - if let Some(node) = tail.find_node(byte_index) { - return Some(node); - } + if let Some(tail) = tail + && let Some(node) = tail.find_node(byte_index) + { + return Some(node); } self.self_if_contains_location(byte_index) } @@ -484,10 +484,10 @@ impl TypedExpr { } } - if let Some(tail) = tail { - if let Some(node) = tail.find_statement(byte_index) { - return Some(node); - } + if let Some(tail) = tail + && let Some(node) = tail.find_statement(byte_index) + { + return Some(node); } None } diff --git a/compiler-core/src/bit_array.rs b/compiler-core/src/bit_array.rs index fa62afe9b80..641cb349d9b 100644 --- a/compiler-core/src/bit_array.rs +++ b/compiler-core/src/bit_array.rs @@ -208,15 +208,14 @@ where } // All but the last segment in a pattern must have an exact size - if must_have_size { - if let SegmentOptionCategories { + if must_have_size + && let SegmentOptionCategories { type_: Some(opt @ (Bytes { .. } | Bits { .. })), size: None, .. } = categories - { - return err(ErrorType::SegmentMustHaveSize, opt.location()); - } + { + return err(ErrorType::SegmentMustHaveSize, opt.location()); } // Endianness is only valid for int, utf16, utf16_codepoint, utf32, @@ -312,13 +311,12 @@ where size: Some(size), .. } = categories + && let Some(abox) = size.value() { - if let Some(abox) = size.value() { - match abox.as_int_literal() { - None => (), - Some(value) if value == 16.into() || value == 32.into() || value == 64.into() => (), - _ => return err(ErrorType::FloatWithSize, size.location()), - } + match abox.as_int_literal() { + None => (), + Some(value) if value == 16.into() || value == 32.into() || value == 64.into() => (), + _ => return err(ErrorType::FloatWithSize, size.location()), } } diff --git a/compiler-core/src/build/package_compiler.rs b/compiler-core/src/build/package_compiler.rs index 45a7d5ca059..5528c14c9d5 100644 --- a/compiler-core/src/build/package_compiler.rs +++ b/compiler-core/src/build/package_compiler.rs @@ -317,7 +317,8 @@ where // cannot fix directly. if self.cached_warnings.should_use() { let warnings = &module.ast.type_info.warnings; - let data = bincode::serialize(warnings).expect("Serialise warnings"); + let data = bincode::serde::encode_to_vec(warnings, bincode::config::legacy()) + .expect("Serialise warnings"); self.io.write_bytes(&cache_files.warnings_path, &data)?; } } @@ -659,11 +660,14 @@ pub(crate) struct CacheMetadata { impl CacheMetadata { pub fn to_binary(&self) -> Vec { - bincode::serialize(self).expect("Serializing cache info") + bincode::serde::encode_to_vec(self, bincode::config::legacy()) + .expect("Serializing cache info") } pub fn from_binary(bytes: &[u8]) -> Result { - bincode::deserialize(bytes).map_err(|e| e.to_string()) + bincode::serde::borrow_decode_from_slice(bytes, bincode::config::legacy()) + .map(|(s, _)| s) + .map_err(|e| e.to_string()) } } diff --git a/compiler-core/src/build/package_loader.rs b/compiler-core/src/build/package_loader.rs index 5a0528e727c..a0adaf33798 100644 --- a/compiler-core/src/build/package_loader.rs +++ b/compiler-core/src/build/package_loader.rs @@ -1,13 +1,13 @@ #[cfg(test)] mod tests; +use bincode::serde::borrow_decode_from_slice; +use camino::{Utf8Path, Utf8PathBuf}; use std::{ collections::{HashMap, HashSet}, time::{Duration, SystemTime}, }; -use camino::{Utf8Path, Utf8PathBuf}; - // TODO: emit warnings for cached modules even if they are not compiled again. use ecow::EcoString; @@ -191,12 +191,14 @@ where let path = cache_files.warnings_path; if self.io.exists(&path) { let bytes = self.io.read_bytes(&path)?; - module.warnings = bincode::deserialize(&bytes).map_err(|e| Error::FileIo { - kind: FileKind::File, - action: FileIoAction::Parse, - path, - err: Some(e.to_string()), - })?; + module.warnings = borrow_decode_from_slice(&bytes, bincode::config::legacy()) + .map(|(s, _)| s) + .map_err(|e| Error::FileIo { + kind: FileKind::File, + action: FileIoAction::Parse, + path, + err: Some(e.to_string()), + })?; } } diff --git a/compiler-core/src/config.rs b/compiler-core/src/config.rs index bf0b1765001..7dacec0061d 100644 --- a/compiler-core/src/config.rs +++ b/compiler-core/src/config.rs @@ -12,7 +12,7 @@ use globset::{Glob, GlobSetBuilder}; use hexpm::version::{self, LowestVersion, Version}; use http::Uri; use serde::ser::SerializeSeq; -use serde::{Deserialize, Serialize}; +use serde::{Deserialize, Deserializer, Serialize}; use std::collections::HashMap; use std::fmt::{self}; use std::marker::PhantomData; @@ -50,16 +50,14 @@ impl ToString for SpdxLicense { impl<'de> Deserialize<'de> for SpdxLicense { fn deserialize(deserializer: D) -> Result where - D: serde::Deserializer<'de>, + D: Deserializer<'de>, { - let s: &str = Deserialize::deserialize(deserializer)?; - match spdx::license_id(s) { + let s: String = Deserialize::deserialize(deserializer)?; + match spdx::license_id(&s) { None => Err(serde::de::Error::custom(format!( "{s} is not a valid SPDX License ID" ))), - Some(_) => Ok(SpdxLicense { - licence: String::from(s), - }), + Some(_) => Ok(SpdxLicense { licence: s }), } } } @@ -127,11 +125,20 @@ impl GleamVersion { } } +pub fn deserialize_version<'de, D>(deserializer: D) -> std::result::Result +where + D: Deserializer<'de>, +{ + let string: String = Deserialize::deserialize(deserializer) + .map_err(|e| serde::de::Error::custom(e.to_string()))?; + Version::parse(&string).map_err(|e| serde::de::Error::custom(e.to_string())) +} + #[derive(Deserialize, Serialize, Debug, PartialEq, Clone)] pub struct PackageConfig { #[serde(deserialize_with = "package_name::deserialize")] pub name: EcoString, - #[serde(default = "default_version")] + #[serde(default = "default_version", deserialize_with = "deserialize_version")] pub version: Version, #[serde( @@ -180,9 +187,10 @@ where pub fn deserialise_gleam_version<'de, D>(deserialiser: D) -> Result, D::Error> where - D: serde::Deserializer<'de>, + D: Deserializer<'de>, { - match Deserialize::deserialize(deserialiser)? { + let result: Option = Deserialize::deserialize(deserialiser).ok(); + match result { Some(range_string) => { let hex = version::Range::new(range_string).map_err(serde::de::Error::custom)?; Ok(Some(hex.into())) @@ -716,7 +724,7 @@ impl Serialize for DenoFlag { fn bool_or_seq_string_to_deno_flag<'de, D>(deserializer: D) -> Result where - D: serde::Deserializer<'de>, + D: Deserializer<'de>, { struct StringOrVec(PhantomData>); @@ -1015,10 +1023,10 @@ mod package_name { where D: Deserializer<'de>, { - let name: &str = serde::de::Deserialize::deserialize(deserializer)?; + let name: String = serde::de::Deserialize::deserialize(deserializer)?; if PACKAGE_NAME_PATTERN .get_or_init(|| Regex::new("^[a-z][a-z0-9_]*$").expect("Package name regex")) - .is_match(name) + .is_match(&name) { Ok(name.into()) } else { @@ -1037,8 +1045,9 @@ name = "one-two" assert_eq!( toml::from_str::(input) .unwrap_err() + .message() .to_string(), - "Package names may only contain lowercase letters, numbers, and underscores for key `name` at line 1 column 1" + "Package names may only contain lowercase letters, numbers, and underscores" ) } @@ -1050,8 +1059,9 @@ name = "1" assert_eq!( toml::from_str::(input) .unwrap_err() + .message() .to_string(), - "Package names may only contain lowercase letters, numbers, and underscores for key `name` at line 1 column 1" + "Package names may only contain lowercase letters, numbers, and underscores" ) } diff --git a/compiler-core/src/dependency.rs b/compiler-core/src/dependency.rs index f65ece9830f..2efa146a064 100644 --- a/compiler-core/src/dependency.rs +++ b/compiler-core/src/dependency.rs @@ -8,7 +8,7 @@ use hexpm::{ version::{Range, Version}, }; use pubgrub::{Dependencies, Map}; -use thiserror::Error; +use thiserror; pub type PackageVersions = HashMap; @@ -192,7 +192,7 @@ pub trait PackageFetcher { fn get_dependencies(&self, package: &str) -> Result, PackageFetchError>; } -#[derive(Debug, Error)] +#[derive(Debug, thiserror::Error)] pub enum PackageFetchError { #[error("{0}")] ApiError(hexpm::ApiError), diff --git a/compiler-core/src/erlang.rs b/compiler-core/src/erlang.rs index b8980b7d494..61811822a4b 100644 --- a/compiler-core/src/erlang.rs +++ b/compiler-core/src/erlang.rs @@ -1034,12 +1034,11 @@ where } fn block<'a>(statements: &'a Vec1, env: &mut Env<'a>) -> Document<'a> { - if statements.len() == 1 { - if let Statement::Expression(expression) = statements.first() { - if !needs_begin_end_wrapping(expression) { - return docvec!['(', expr(expression, env), ')']; - } - } + if statements.len() == 1 + && let Statement::Expression(expression) = statements.first() + && !needs_begin_end_wrapping(expression) + { + return docvec!['(', expr(expression, env), ')']; } let vars = env.current_scope_vars.clone(); @@ -3165,10 +3164,10 @@ fn find_private_functions_referenced_in_importable_constants( let mut overridden_publicity = im::HashSet::new(); for definition in module.definitions.iter() { - if let Definition::ModuleConstant(constant) = definition { - if constant.publicity.is_importable() { - find_referenced_private_functions(&constant.value, &mut overridden_publicity) - } + if let Definition::ModuleConstant(constant) = definition + && constant.publicity.is_importable() + { + find_referenced_private_functions(&constant.value, &mut overridden_publicity) } } overridden_publicity @@ -3189,10 +3188,10 @@ fn find_referenced_private_functions( TypedConstant::Var { name, constructor, .. } => { - if let Some(ValueConstructor { type_, .. }) = constructor.as_deref() { - if let Type::Fn { .. } = **type_ { - let _ = already_found.insert(name.clone()); - } + if let Some(ValueConstructor { type_, .. }) = constructor.as_deref() + && let Type::Fn { .. } = **type_ + { + let _ = already_found.insert(name.clone()); } } diff --git a/compiler-core/src/error.rs b/compiler-core/src/error.rs index 779a19de090..d2326361693 100644 --- a/compiler-core/src/error.rs +++ b/compiler-core/src/error.rs @@ -688,21 +688,22 @@ pub fn edit_distance(a: &str, b: &str, limit: usize) -> Option { ); } - if (i > 1) && (j > 1) { - if let (Some(&a_val), Some(&b_val_prev), Some(&a_val_prev), Some(&b_val)) = ( + if (i > 1) + && (j > 1) + && let (Some(&a_val), Some(&b_val_prev), Some(&a_val_prev), Some(&b_val)) = ( a.get(a_idx), b.get(b_idx - 1), a.get(a_idx - 1), b.get(b_idx), - ) { - if (a_val == b_val_prev) && (a_val_prev == b_val) { - // transposition - if let Some(curr) = current.get_mut(j) { - if let Some(&prev_prev_val) = prev_prev.get(j - 2) { - *curr = std::cmp::min(*curr, prev_prev_val + 1); - } - } - } + ) + && (a_val == b_val_prev) + && (a_val_prev == b_val) + { + // transposition + if let Some(curr) = current.get_mut(j) + && let Some(&prev_prev_val) = prev_prev.get(j - 2) + { + *curr = std::cmp::min(*curr, prev_prev_val + 1); } } } diff --git a/compiler-core/src/format.rs b/compiler-core/src/format.rs index 0fb05037c4e..bcef8b2401d 100644 --- a/compiler-core/src/format.rs +++ b/compiler-core/src/format.rs @@ -2198,10 +2198,10 @@ impl<'comments> Formatter<'comments> { let item_location = item.location(); // A list has multiple items on the same line if two consecutive // ones do not span multiple lines. - if let Some(previous) = previous { - if !self.spans_multiple_lines(previous.end, item_location.start) { - return true; - } + if let Some(previous) = previous + && !self.spans_multiple_lines(previous.end, item_location.start) + { + return true; } previous = Some(item_location); } diff --git a/compiler-core/src/javascript/expression.rs b/compiler-core/src/javascript/expression.rs index 9b210321e6a..1dc14874ceb 100644 --- a/compiler-core/src/javascript/expression.rs +++ b/compiler-core/src/javascript/expression.rs @@ -1754,11 +1754,12 @@ impl<'module, 'a> Generator<'module, 'a> { // If there's no arguments and the type is a function that takes // arguments then this is the constructor being referenced, not the // function being called. - if let Some(arity) = type_.fn_arity() { - if arguments.is_empty() && arity != 0 { - let arity = arity as u16; - return record_constructor(type_.clone(), None, name, arity, self.tracker); - } + if let Some(arity) = type_.fn_arity() + && arguments.is_empty() + && arity != 0 + { + let arity = arity as u16; + return record_constructor(type_.clone(), None, name, arity, self.tracker); } let field_values = arguments @@ -2135,11 +2136,12 @@ impl<'module, 'a> Generator<'module, 'a> { // If there's no arguments and the type is a function that takes // arguments then this is the constructor being referenced, not the // function being called. - if let Some(arity) = type_.fn_arity() { - if arguments.is_empty() && arity != 0 { - let arity = arity as u16; - return record_constructor(type_.clone(), None, name, arity, self.tracker); - } + if let Some(arity) = type_.fn_arity() + && arguments.is_empty() + && arity != 0 + { + let arity = arity as u16; + return record_constructor(type_.clone(), None, name, arity, self.tracker); } let field_values = arguments diff --git a/compiler-core/src/language_server/code_action.rs b/compiler-core/src/language_server/code_action.rs index 142fe7c6fe3..d9dec853b24 100644 --- a/compiler-core/src/language_server/code_action.rs +++ b/compiler-core/src/language_server/code_action.rs @@ -1442,24 +1442,23 @@ impl<'ast> ast::visit::Visit<'ast> for QualifiedToUnqualifiedImportFirstPass<'as arguments: &'ast Vec, ) { let range = src_span_to_lsp_range(*location, self.line_numbers); - if overlaps(self.params.range, range) { - if let Some((module_alias, _)) = module { - if let Some(import) = self.module.find_node(location.end).and_then(|node| { - if let Located::Annotation { type_, .. } = node { - if let Some((module, _)) = type_.named_type_name() { - return self.get_module_import(&module, name, ast::Layer::Type); - } - } - None - }) { - self.qualified_constructor = Some(QualifiedConstructor { - import, - used_name: module_alias.clone(), - constructor: name.clone(), - layer: ast::Layer::Type, - }); + if overlaps(self.params.range, range) + && let Some((module_alias, _)) = module + && let Some(import) = self.module.find_node(location.end).and_then(|node| { + if let Located::Annotation { type_, .. } = node + && let Some((module, _)) = type_.named_type_name() + { + return self.get_module_import(&module, name, ast::Layer::Type); } - } + None + }) + { + self.qualified_constructor = Some(QualifiedConstructor { + import, + used_name: module_alias.clone(), + constructor: name.clone(), + layer: ast::Layer::Type, + }); } ast::visit::visit_type_ast_constructor( self, @@ -1487,23 +1486,20 @@ impl<'ast> ast::visit::Visit<'ast> for QualifiedToUnqualifiedImportFirstPass<'as // ↑ // This allows us to offer a code action when hovering over the module name. let range = src_span_to_lsp_range(*location, self.line_numbers); - if overlaps(self.params.range, range) { - if let ModuleValueConstructor::Record { + if overlaps(self.params.range, range) + && let ModuleValueConstructor::Record { name: constructor_name, .. } = constructor - { - if let Some(import) = - self.get_module_import(module_name, constructor_name, ast::Layer::Value) - { - self.qualified_constructor = Some(QualifiedConstructor { - import, - used_name: module_alias.clone(), - constructor: constructor_name.clone(), - layer: ast::Layer::Value, - }); - } - } + && let Some(import) = + self.get_module_import(module_name, constructor_name, ast::Layer::Value) + { + self.qualified_constructor = Some(QualifiedConstructor { + import, + used_name: module_alias.clone(), + constructor: constructor_name.clone(), + layer: ast::Layer::Value, + }); } ast::visit::visit_typed_expr_module_select( self, @@ -1529,21 +1525,18 @@ impl<'ast> ast::visit::Visit<'ast> for QualifiedToUnqualifiedImportFirstPass<'as type_: &'ast Arc, ) { let range = src_span_to_lsp_range(*location, self.line_numbers); - if overlaps(self.params.range, range) { - if let Some((module_alias, _)) = module { - if let analyse::Inferred::Known(constructor) = constructor { - if let Some(import) = - self.get_module_import(&constructor.module, name, ast::Layer::Value) - { - self.qualified_constructor = Some(QualifiedConstructor { - import, - used_name: module_alias.clone(), - constructor: name.clone(), - layer: ast::Layer::Value, - }); - } - } - } + if overlaps(self.params.range, range) + && let Some((module_alias, _)) = module + && let analyse::Inferred::Known(constructor) = constructor + && let Some(import) = + self.get_module_import(&constructor.module, name, ast::Layer::Value) + { + self.qualified_constructor = Some(QualifiedConstructor { + import, + used_name: module_alias.clone(), + constructor: name.clone(), + layer: ast::Layer::Value, + }); } ast::visit::visit_typed_pattern_constructor( self, @@ -1754,18 +1747,18 @@ impl<'ast> ast::visit::Visit<'ast> for QualifiedToUnqualifiedImportSecondPass<'a spread: &'ast Option, type_: &'ast Arc, ) { - if let Some((module_alias, _)) = module { - if let analyse::Inferred::Known(_) = constructor { - let QualifiedConstructor { - used_name, - constructor, - layer, - .. - } = &self.qualified_constructor; + if let Some((module_alias, _)) = module + && let analyse::Inferred::Known(_) = constructor + { + let QualifiedConstructor { + used_name, + constructor, + layer, + .. + } = &self.qualified_constructor; - if layer.is_value() && used_name == module_alias && name == constructor { - self.remove_module_qualifier(*location); - } + if layer.is_value() && used_name == module_alias && name == constructor { + self.remove_module_qualifier(*location); } } ast::visit::visit_typed_pattern_constructor( @@ -1957,17 +1950,17 @@ impl<'ast> ast::visit::Visit<'ast> for UnqualifiedToQualifiedImportFirstPass<'as name: &'ast EcoString, ) { let range = src_span_to_lsp_range(*location, self.line_numbers); - if overlaps(self.params.range, range) { - if let Some(module_name) = match &constructor.variant { + if overlaps(self.params.range, range) + && let Some(module_name) = match &constructor.variant { type_::ValueConstructorVariant::ModuleConstant { module, .. } | type_::ValueConstructorVariant::ModuleFn { module, .. } | type_::ValueConstructorVariant::Record { module, .. } => Some(module), type_::ValueConstructorVariant::LocalVariable { .. } | type_::ValueConstructorVariant::LocalConstant { .. } => None, - } { - self.get_module_import_from_value_constructor(module_name, name); } + { + self.get_module_import_from_value_constructor(module_name, name); } ast::visit::visit_typed_expr_var(self, location, constructor, name); } @@ -1988,10 +1981,9 @@ impl<'ast> ast::visit::Visit<'ast> for UnqualifiedToQualifiedImportFirstPass<'as self.params.range, src_span_to_lsp_range(*location, self.line_numbers), ) + && let analyse::Inferred::Known(constructor) = constructor { - if let analyse::Inferred::Known(constructor) = constructor { - self.get_module_import_from_value_constructor(&constructor.module, name); - } + self.get_module_import_from_value_constructor(&constructor.module, name); } ast::visit::visit_typed_pattern_constructor( @@ -2595,10 +2587,10 @@ impl<'ast> ast::visit::Visit<'ast> for ConvertToUse<'ast> { // The cursor has to be inside the last statement of the function to // offer the code action. let last_statement_range = self.edits.src_span_to_lsp_range(fun.body.last().location()); - if within(self.params.range, last_statement_range) { - if let Some(call_data) = turn_statement_into_use(fun.body.last()) { - self.selected_call = Some(call_data); - } + if within(self.params.range, last_statement_range) + && let Some(call_data) = turn_statement_into_use(fun.body.last()) + { + self.selected_call = Some(call_data); } ast::visit::visit_typed_function(self, fun) @@ -2616,10 +2608,10 @@ impl<'ast> ast::visit::Visit<'ast> for ConvertToUse<'ast> { // The cursor has to be inside the last statement of the body to // offer the code action. let last_statement_range = self.edits.src_span_to_lsp_range(body.last().location()); - if within(self.params.range, last_statement_range) { - if let Some(call_data) = turn_statement_into_use(body.last()) { - self.selected_call = Some(call_data); - } + if within(self.params.range, last_statement_range) + && let Some(call_data) = turn_statement_into_use(body.last()) + { + self.selected_call = Some(call_data); } ast::visit::visit_typed_expr_fn( @@ -3614,15 +3606,16 @@ impl<'ast> ast::visit::Visit<'ast> for ExpandFunctionCapture<'ast> { return_annotation: &'ast Option, ) { let fn_range = self.edits.src_span_to_lsp_range(*location); - if within(self.params.range, fn_range) && kind.is_capture() { - if let [argument] = arguments { - self.function_capture_data = Some(FunctionCaptureData { - function_span: *location, - hole_span: argument.location, - hole_type: argument.type_.clone(), - reserved_names: VariablesNames::from_statements(body), - }); - } + if within(self.params.range, fn_range) + && kind.is_capture() + && let [argument] = arguments + { + self.function_capture_data = Some(FunctionCaptureData { + function_span: *location, + hole_span: argument.location, + hole_type: argument.type_.clone(), + reserved_names: VariablesNames::from_statements(body), + }); } ast::visit::visit_typed_expr_fn( @@ -6612,34 +6605,32 @@ impl<'ast> ast::visit::Visit<'ast> for FillUnusedFields<'ast> { spread: Some(spread_location), .. } = pattern - { - if let Some(PatternUnusedArguments { + && let Some(PatternUnusedArguments { positional, labelled, }) = pattern.unused_arguments() - { - // If there's any unused argument that's being ignored we want to - // suggest the code action. - let first_labelled_argument_start = arguments - .iter() - .find(|arg| !arg.is_implicit() && arg.label.is_some()) - .map(|arg| arg.location.start); + { + // If there's any unused argument that's being ignored we want to + // suggest the code action. + let first_labelled_argument_start = arguments + .iter() + .find(|arg| !arg.is_implicit() && arg.label.is_some()) + .map(|arg| arg.location.start); - let last_argument_end = arguments - .iter() - .filter(|arg| !arg.is_implicit()) - .next_back() - .map(|arg| arg.location.end); - - self.data = Some(FillUnusedFieldsData { - positional, - labelled, - first_labelled_argument_start, - last_argument_end, - spread_location: *spread_location, - }); - }; - } + let last_argument_end = arguments + .iter() + .filter(|arg| !arg.is_implicit()) + .next_back() + .map(|arg| arg.location.end); + + self.data = Some(FillUnusedFieldsData { + positional, + labelled, + first_labelled_argument_start, + last_argument_end, + spread_location: *spread_location, + }); + }; ast::visit::visit_typed_pattern(self, pattern); } diff --git a/compiler-core/src/language_server/completer.rs b/compiler-core/src/language_server/completer.rs index b49355a8933..0d4eb97225b 100644 --- a/compiler-core/src/language_server/completer.rs +++ b/compiler-core/src/language_server/completer.rs @@ -455,10 +455,10 @@ where if let Some(module) = import.used_name() { // If the user has already started a module select then don't show irrelevant modules. // e.x. when the user has typed mymodule.| we should only show items from mymodule. - if let Some(input_mod_name) = &module_select { - if &module != input_mod_name { - continue; - } + if let Some(input_mod_name) = &module_select + && &module != input_mod_name + { + continue; } completions.push(type_completion( Some(&module), @@ -515,10 +515,10 @@ where // If the user has already started a module select then don't show irrelevant modules. // e.x. when the user has typed mymodule.| we should only show items from mymodule. - if let Some(input_mod_name) = &module_select { - if qualifier != input_mod_name { - continue; - } + if let Some(input_mod_name) = &module_select + && qualifier != input_mod_name + { + continue; } // Qualified types @@ -650,10 +650,10 @@ where if let Some(module) = import.used_name() { // If the user has already started a module select then don't show irrelevant modules. // e.x. when the user has typed mymodule.| we should only show items from mymodule. - if let Some(input_mod_name) = &module_select { - if &module != input_mod_name { - continue; - } + if let Some(input_mod_name) = &module_select + && &module != input_mod_name + { + continue; } completions.push(value_completion( Some(&module), @@ -709,10 +709,10 @@ where // If the user has already started a module select then don't show irrelevant modules. // e.x. when the user has typed mymodule.| we should only show items from mymodule. - if let Some(input_mod_name) = &module_select { - if qualifier != input_mod_name { - continue; - } + if let Some(input_mod_name) = &module_select + && qualifier != input_mod_name + { + continue; } // Qualified values diff --git a/compiler-core/src/manifest.rs b/compiler-core/src/manifest.rs index d9c275374c8..e374e161d72 100644 --- a/compiler-core/src/manifest.rs +++ b/compiler-core/src/manifest.rs @@ -1,6 +1,7 @@ use std::collections::HashMap; use crate::Result; +use crate::config::deserialize_version; use crate::io::{make_relative, ordered_map}; use crate::requirement::Requirement; use camino::{Utf8Path, Utf8PathBuf}; @@ -138,8 +139,8 @@ impl<'de> serde::Deserialize<'de> for Base16Checksum { where D: serde::Deserializer<'de>, { - let s: &str = serde::de::Deserialize::deserialize(deserializer)?; - base16::decode(s) + let s: String = serde::de::Deserialize::deserialize(deserializer)?; + base16::decode(&s) .map(Base16Checksum) .map_err(serde::de::Error::custom) } @@ -148,6 +149,7 @@ impl<'de> serde::Deserialize<'de> for Base16Checksum { #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, serde::Serialize, serde::Deserialize)] pub struct ManifestPackage { pub name: EcoString, + #[serde(deserialize_with = "deserialize_version")] pub version: Version, pub build_tools: Vec, #[serde(default)] diff --git a/compiler-core/src/parse.rs b/compiler-core/src/parse.rs index b633a0e999a..bca833e932f 100644 --- a/compiler-core/src/parse.rs +++ b/compiler-core/src/parse.rs @@ -470,12 +470,11 @@ where ) -> Result<(), ParseError> { // Produce better error message for `[x] = [1]` outside // of `let` statement. - if !is_let_binding { - if let UntypedExpr::List { .. } = unit { - if let Some((start, Token::Equal, end)) = self.tok0 { - return parse_error(ParseErrorType::NoLetBinding, SrcSpan { start, end }); - } - } + if !is_let_binding + && let UntypedExpr::List { .. } = unit + && let Some((start, Token::Equal, end)) = self.tok0 + { + return parse_error(ParseErrorType::NoLetBinding, SrcSpan { start, end }); } Ok(()) } @@ -1187,10 +1186,10 @@ where fn parse_statement_errors(&mut self) -> Result<(), ParseError> { // Better error: name definitions must start with `let` - if let Some((_, Token::Name { .. }, _)) = self.tok0.as_ref() { - if let Some((start, Token::Equal | Token::Colon, end)) = self.tok1 { - return parse_error(ParseErrorType::NoLetBinding, SrcSpan { start, end }); - } + if let Some((_, Token::Name { .. }, _)) = self.tok0.as_ref() + && let Some((start, Token::Equal | Token::Colon, end)) = self.tok1 + { + return parse_error(ParseErrorType::NoLetBinding, SrcSpan { start, end }); } Ok(()) } diff --git a/compiler-core/src/type_.rs b/compiler-core/src/type_.rs index f9e05367b52..addc33072fd 100644 --- a/compiler-core/src/type_.rs +++ b/compiler-core/src/type_.rs @@ -630,10 +630,10 @@ impl TypeVar { } pub fn collapse_links(t: Arc) -> Arc { - if let Type::Var { type_ } = t.deref() { - if let TypeVar::Link { type_ } = type_.borrow().deref() { - return collapse_links(type_.clone()); - } + if let Type::Var { type_ } = t.deref() + && let TypeVar::Link { type_ } = type_.borrow().deref() + { + return collapse_links(type_.clone()); } t } diff --git a/compiler-core/src/type_/environment.rs b/compiler-core/src/type_/environment.rs index 5cba6ef7011..969efcc266c 100644 --- a/compiler-core/src/type_/environment.rs +++ b/compiler-core/src/type_/environment.rs @@ -877,10 +877,10 @@ pub fn unify(t1: Arc, t2: Arc) -> Result<(), UnifyError> { } // Collapse right hand side type links. Left hand side will be collapsed in the next block. - if let Type::Var { type_ } = t2.deref() { - if let TypeVar::Link { type_ } = type_.borrow().deref() { - return unify(t1, type_.clone()); - } + if let Type::Var { type_ } = t2.deref() + && let TypeVar::Link { type_ } = type_.borrow().deref() + { + return unify(t1, type_.clone()); } if let Type::Var { type_ } = t1.deref() { @@ -899,11 +899,11 @@ pub fn unify(t1: Arc, t2: Arc) -> Result<(), UnifyError> { } TypeVar::Generic { id } => { - if let Type::Var { type_ } = t2.deref() { - if type_.borrow().is_unbound() { - *type_.borrow_mut() = TypeVar::Generic { id: *id }; - return Ok(()); - } + if let Type::Var { type_ } = t2.deref() + && type_.borrow().is_unbound() + { + *type_.borrow_mut() = TypeVar::Generic { id: *id }; + return Ok(()); } Action::CouldNotUnify } diff --git a/compiler-core/src/type_/error.rs b/compiler-core/src/type_/error.rs index 8227cd4aa97..27bd3a78eb1 100644 --- a/compiler-core/src/type_/error.rs +++ b/compiler-core/src/type_/error.rs @@ -61,6 +61,7 @@ impl Problems { } } +#[allow(dead_code)] #[derive(Debug, Eq, PartialEq, Clone)] pub struct UnknownType { pub location: SrcSpan, diff --git a/compiler-core/src/type_/expression.rs b/compiler-core/src/type_/expression.rs index 6281238e284..307c2a86515 100644 --- a/compiler-core/src/type_/expression.rs +++ b/compiler-core/src/type_/expression.rs @@ -903,11 +903,11 @@ impl<'a, 'b> ExprTyper<'a, 'b> { .error(convert_unify_error(error, value.location())); } - if let TypedExpr::Int { value: ref v, .. } = value { - if v.starts_with('-') { - self.problems - .warning(Warning::UnnecessaryDoubleIntNegation { location }); - } + if let TypedExpr::Int { value: ref v, .. } = value + && v.starts_with('-') + { + self.problems + .warning(Warning::UnnecessaryDoubleIntNegation { location }); } if let TypedExpr::NegateInt { .. } = value { @@ -1259,20 +1259,19 @@ impl<'a, 'b> ExprTyper<'a, 'b> { (Ok(record_access), _) => { // If this is actually record access and not module access, and we didn't register // the reference earlier, we register it now. - if let TypedExpr::RecordAccess { record, .. } = &record_access { - if let TypedExpr::Var { + if let TypedExpr::RecordAccess { record, .. } = &record_access + && let TypedExpr::Var { location, constructor, name, } = record.as_ref() - { - self.register_value_constructor_reference( - name, - &constructor.variant, - *location, - ReferenceKind::Unqualified, - ) - } + { + self.register_value_constructor_reference( + name, + &constructor.variant, + *location, + ReferenceKind::Unqualified, + ) } record_access } @@ -4135,26 +4134,26 @@ impl<'a, 'b> ExprTyper<'a, 'b> { // argument that is implicitly passed by the compiler. // This way we can provide better argument hints for incomplete use // expressions. - if let CallKind::Use { .. } = kind { - if let Some(last) = arguments.pop() { - for _ in 0..missing_arguments { - arguments.push(CallArg { - label: None, - location, - value: UntypedExpr::Placeholder { - // We intentionally give this an empty span since it - // is an implicit argument being passed by the compiler - // that doesn't appear in the source code. - location: SrcSpan { - start: last.location().start, - end: last.location().start, - }, + if let CallKind::Use { .. } = kind + && let Some(last) = arguments.pop() + { + for _ in 0..missing_arguments { + arguments.push(CallArg { + label: None, + location, + value: UntypedExpr::Placeholder { + // We intentionally give this an empty span since it + // is an implicit argument being passed by the compiler + // that doesn't appear in the source code. + location: SrcSpan { + start: last.location().start, + end: last.location().start, }, - implicit: Some(ImplicitCallArgOrigin::IncorrectArityUse), - }); - } - arguments.push(last); + }, + implicit: Some(ImplicitCallArgOrigin::IncorrectArityUse), + }); } + arguments.push(last); }; // Ensure that the given args have the correct types @@ -4383,30 +4382,30 @@ impl<'a, 'b> ExprTyper<'a, 'b> { let mut body = body_typer.infer_statements(body); // Check that any return type is accurate. - if let Some(return_type) = return_type { - if let Err(error) = unify(return_type, body.last().type_()) { - let error = error - .return_annotation_mismatch() - .into_error(body.last().type_defining_location()); - body_typer.problems.error(error); - - // If the return type doesn't match with the annotation we - // add a new expression to the end of the function to match - // the annotated type and allow type inference to keep - // going. - body.push(Statement::Expression(TypedExpr::Invalid { - // This is deliberately an empty span since this - // placeholder expression is implicitly inserted by the - // compiler and doesn't actually appear in the source - // code. - location: SrcSpan { - start: body.last().location().end, - end: body.last().location().end, - }, - type_: body_typer.new_unbound_var(), - })) - }; - } + if let Some(return_type) = return_type + && let Err(error) = unify(return_type, body.last().type_()) + { + let error = error + .return_annotation_mismatch() + .into_error(body.last().type_defining_location()); + body_typer.problems.error(error); + + // If the return type doesn't match with the annotation we + // add a new expression to the end of the function to match + // the annotated type and allow type inference to keep + // going. + body.push(Statement::Expression(TypedExpr::Invalid { + // This is deliberately an empty span since this + // placeholder expression is implicitly inserted by the + // compiler and doesn't actually appear in the source + // code. + location: SrcSpan { + start: body.last().location().end, + end: body.last().location().end, + }, + type_: body_typer.new_unbound_var(), + })) + }; Ok((arguments, body)) }) @@ -4499,21 +4498,21 @@ impl<'a, 'b> ExprTyper<'a, 'b> { // Then if the required version is not in the specified version for the // range we emit a warning highlighting the usage of the feature. - if let Some(gleam_version) = &self.environment.gleam_version { - if let Some(lowest_allowed_version) = gleam_version.lowest_version() { - // There is a version in the specified range that is lower than - // the one required by this feature! This means that the - // specified range is wrong and would allow someone to run a - // compiler that is too old to know of this feature. - if minimum_required_version > lowest_allowed_version { - self.problems - .warning(Warning::FeatureRequiresHigherGleamVersion { - location, - feature_kind, - minimum_required_version: minimum_required_version.clone(), - wrongfully_allowed_version: lowest_allowed_version, - }) - } + if let Some(gleam_version) = &self.environment.gleam_version + && let Some(lowest_allowed_version) = gleam_version.lowest_version() + { + // There is a version in the specified range that is lower than + // the one required by this feature! This means that the + // specified range is wrong and would allow someone to run a + // compiler that is too old to know of this feature. + if minimum_required_version > lowest_allowed_version { + self.problems + .warning(Warning::FeatureRequiresHigherGleamVersion { + location, + feature_kind, + minimum_required_version: minimum_required_version.clone(), + wrongfully_allowed_version: lowest_allowed_version, + }) } } diff --git a/compiler-core/src/type_/pattern.rs b/compiler-core/src/type_/pattern.rs index fbd92953b93..71e4725a8cb 100644 --- a/compiler-core/src/type_/pattern.rs +++ b/compiler-core/src/type_/pattern.rs @@ -1001,24 +1001,23 @@ impl<'a, 'b> PatternTyper<'a, 'b> { } } - if let Some(spread_location) = spread { - if let ValueConstructorVariant::Record { arity, .. } = + if let Some(spread_location) = spread + && let ValueConstructorVariant::Record { arity, .. } = &constructor.variant - { - while pattern_arguments.len() < usize::from(*arity) { - pattern_arguments.push(CallArg { - value: Pattern::Discard { - name: "_".into(), - location: spread_location, - type_: (), - }, + { + while pattern_arguments.len() < usize::from(*arity) { + pattern_arguments.push(CallArg { + value: Pattern::Discard { + name: "_".into(), location: spread_location, - label: None, - implicit: Some(ImplicitCallArgOrigin::PatternFieldSpread), - }); - } - }; - } + type_: (), + }, + location: spread_location, + label: None, + implicit: Some(ImplicitCallArgOrigin::PatternFieldSpread), + }); + } + }; } } @@ -1316,21 +1315,21 @@ impl<'a, 'b> PatternTyper<'a, 'b> { // Then if the required version is not in the specified version for the // range we emit a warning highlighting the usage of the feature. - if let Some(gleam_version) = &self.environment.gleam_version { - if let Some(lowest_allowed_version) = gleam_version.lowest_version() { - // There is a version in the specified range that is lower than - // the one required by this feature! This means that the - // specified range is wrong and would allow someone to run a - // compiler that is too old to know of this feature. - if minimum_required_version > lowest_allowed_version { - self.problems - .warning(Warning::FeatureRequiresHigherGleamVersion { - location, - feature_kind, - minimum_required_version: minimum_required_version.clone(), - wrongfully_allowed_version: lowest_allowed_version, - }) - } + if let Some(gleam_version) = &self.environment.gleam_version + && let Some(lowest_allowed_version) = gleam_version.lowest_version() + { + // There is a version in the specified range that is lower than + // the one required by this feature! This means that the + // specified range is wrong and would allow someone to run a + // compiler that is too old to know of this feature. + if minimum_required_version > lowest_allowed_version { + self.problems + .warning(Warning::FeatureRequiresHigherGleamVersion { + location, + feature_kind, + minimum_required_version: minimum_required_version.clone(), + wrongfully_allowed_version: lowest_allowed_version, + }) } } diff --git a/compiler-core/src/type_/pipe.rs b/compiler-core/src/type_/pipe.rs index 71a6b446e04..a36a8bb976c 100644 --- a/compiler-core/src/type_/pipe.rs +++ b/compiler-core/src/type_/pipe.rs @@ -417,25 +417,21 @@ impl<'a, 'b, 'c> PipeTyper<'a, 'b, 'c> { } fn warn_if_call_first_argument_is_hole(&mut self, call: &UntypedExpr) { - if let UntypedExpr::Fn { kind, body, .. } = &call { - if kind.is_capture() { - if let Statement::Expression(UntypedExpr::Call { arguments, .. }) = body.first() { - match arguments.as_slice() { - // If the first argument is labelled, we don't warn the user - // as they might be intentionally adding it to provide more - // information about exactly which argument is being piped into. - [first] | [first, ..] - if first.is_capture_hole() && first.label.is_none() => - { - self.expr_typer.problems.warning( - Warning::RedundantPipeFunctionCapture { - location: first.location, - }, - ) - } - _ => (), - } - } + if let UntypedExpr::Fn { kind, body, .. } = &call + && kind.is_capture() + && let Statement::Expression(UntypedExpr::Call { arguments, .. }) = body.first() + { + match arguments.as_slice() { + // If the first argument is labelled, we don't warn the user + // as they might be intentionally adding it to provide more + // information about exactly which argument is being piped into. + [first] | [first, ..] if first.is_capture_hole() && first.label.is_none() => self + .expr_typer + .problems + .warning(Warning::RedundantPipeFunctionCapture { + location: first.location, + }), + _ => (), } } } diff --git a/compiler-wasm/Cargo.toml b/compiler-wasm/Cargo.toml index 8493cf961eb..e76b0974cd3 100644 --- a/compiler-wasm/Cargo.toml +++ b/compiler-wasm/Cargo.toml @@ -13,7 +13,7 @@ crate-type = ["cdylib", "rlib"] gleam-core = { path = "../compiler-core" } console_error_panic_hook = "0" serde-wasm-bindgen = "0" -wasm-bindgen = { version = "=0.2.99", features = ["serde-serialize"] } +wasm-bindgen = { version = "=0.2.100", features = ["serde-serialize"] } tracing-wasm = "*" camino.workspace = true hexpm.workspace = true diff --git a/compiler-wasm/src/log_telemetry.rs b/compiler-wasm/src/log_telemetry.rs index a34f86fdb5c..d79d1c55fe0 100644 --- a/compiler-wasm/src/log_telemetry.rs +++ b/compiler-wasm/src/log_telemetry.rs @@ -1,4 +1,6 @@ use gleam_core::build::Telemetry; + +#[allow(dead_code)] #[derive(Debug)] pub struct LogTelemetry; @@ -40,6 +42,7 @@ impl Telemetry for LogTelemetry { } } +#[allow(dead_code)] pub fn seconds(duration: std::time::Duration) -> String { format!("{:.2}s", duration.as_millis() as f32 / 1000.) }