diff --git a/Cargo.lock b/Cargo.lock index ac5bc96..d6130d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -36,7 +36,7 @@ dependencies = [ "proc-macro2", "quote", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -84,9 +84,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "annotate-snippets" @@ -100,9 +100,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -115,43 +115,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "arc-swap" @@ -186,13 +186,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -243,14 +243,14 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" @@ -348,21 +348,21 @@ checksum = "3eeab4423108c5d7c744f4d234de88d18d636100093ae04caf4825134b9c3a32" [[package]] name = "borsh" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" dependencies = [ "cfg_aliases", ] [[package]] name = "bstr" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +checksum = "1a68f1f47cdf0ec8ee4b941b2eee2a80cb796db73118c0dd09ac63fbe405be22" dependencies = [ "memchr", - "regex-automata 0.4.7", + "regex-automata 0.4.9", "serde", ] @@ -380,9 +380,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.2" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" [[package]] name = "bytesize" @@ -412,7 +412,6 @@ dependencies = [ "clap", "executable_path_finder", "futures", - "internment", "lsp-async-stub", "my-cargo", "once_cell", @@ -425,7 +424,7 @@ dependencies = [ "serde", "serde_json", "taplo", - "thiserror", + "thiserror 2.0.3", "tokio", "tokio-util", "tower-lsp", @@ -452,7 +451,7 @@ dependencies = [ "rustsec", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -464,7 +463,7 @@ dependencies = [ "libc", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "time", "windows-sys 0.59.0", ] @@ -548,7 +547,7 @@ dependencies = [ "serde", "serde-untagged", "serde-value", - "thiserror", + "thiserror 1.0.69", "toml", "unicode-xid", "url", @@ -556,9 +555,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.21" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "jobserver", "libc", @@ -579,9 +578,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "clap" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -589,9 +588,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", @@ -602,9 +601,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.35" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07a13ab5b8cb13dbe35e68b83f6c12f9293b2f601797b71bc9f23befdb329feb" +checksum = "d9647a559c112175f17cf724dc72d3645680a883c58481332779192b0d8e7a01" dependencies = [ "clap", "clap_lex", @@ -621,14 +620,14 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "clru" @@ -651,30 +650,30 @@ dependencies = [ [[package]] name = "color-print" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee543c60ff3888934877a5671f45494dd27ed4ba25c6670b9a7576b7ed7a8c0" +checksum = "3aa954171903797d5623e047d9ab69d91b493657917bdfb8c2c80ecaf9cdb6f4" dependencies = [ "color-print-proc-macro", ] [[package]] name = "color-print-proc-macro" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ff1a80c5f3cb1ca7c06ffdd71b6a6dd6d8f896c42141fbd43f50ed28dcdb93" +checksum = "692186b5ebe54007e45a59aea47ece9eb4108e141326c304cdc91699a7118a22" dependencies = [ "nom", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "const-oid" @@ -722,9 +721,9 @@ checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" dependencies = [ "libc", ] @@ -738,7 +737,7 @@ dependencies = [ "percent-encoding", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "url", ] @@ -815,9 +814,9 @@ checksum = "026ac6ceace6298d2c557ef5ed798894962296469ec7842288ea64674201a2d1" [[package]] name = "curl" -version = "0.4.46" +version = "0.4.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" +checksum = "d9fb4d13a1be2b58f14d60adba57c9834b78c62fd86c3e76a148f732686e9265" dependencies = [ "curl-sys", "libc", @@ -830,9 +829,9 @@ dependencies = [ [[package]] name = "curl-sys" -version = "0.4.76+curl-8.10.1" +version = "0.4.78+curl-8.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00462dbe9cbb9344e1b2be34d9094d74e3b8aac59a883495b335eafd02e25120" +checksum = "8eec768341c5c7789611ae51cf6c459099f22e64a5d5d0ce4892434e33821eaf" dependencies = [ "cc", "libc", @@ -915,6 +914,17 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bc2146e86bc19f52f4c064a64782f05f139ca464ed72937301631e73f8d6cf5" +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "dunce" version = "1.0.5" @@ -973,9 +983,9 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -1008,11 +1018,12 @@ dependencies = [ [[package]] name = "executable_path_finder" -version = "0.0.3" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b52ca083ce24dc7bdbb5254e76ea4d332699b036132e4c70bd47d5e8f1b02ff8" +checksum = "94a012b058654372ff849a0854fcc95a1e96071165b14661abbf227c9af07d84" dependencies = [ "camino", + "windows-sys 0.59.0", ] [[package]] @@ -1045,9 +1056,9 @@ checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "ff" @@ -1085,9 +1096,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "libz-sys", @@ -1110,12 +1121,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foldhash" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" - [[package]] name = "foreign-types" version = "0.3.2" @@ -1205,7 +1210,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -1346,7 +1351,7 @@ dependencies = [ "once_cell", "prodash", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1361,7 +1366,7 @@ dependencies = [ "gix-commitgraph", "gix-config 0.40.0", "gix-credentials", - "gix-date 0.9.0", + "gix-date 0.9.1", "gix-diff 0.46.0", "gix-discover 0.35.0", "gix-features", @@ -1398,7 +1403,7 @@ dependencies = [ "gix-worktree-state", "once_cell", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1411,7 +1416,7 @@ dependencies = [ "gix-date 0.8.7", "gix-utils", "itoa", - "thiserror", + "thiserror 1.0.69", "winnow", ] @@ -1422,10 +1427,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc19e312cd45c4a66cd003f909163dc2f8e1623e30a0c0c6df3776e89b308665" dependencies = [ "bstr", - "gix-date 0.9.0", + "gix-date 0.9.1", "gix-utils", "itoa", - "thiserror", + "thiserror 1.0.69", "winnow", ] @@ -1442,33 +1447,33 @@ dependencies = [ "gix-trace", "kstring", "smallvec", - "thiserror", + "thiserror 1.0.69", "unicode-bom", ] [[package]] name = "gix-bitmap" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae" +checksum = "10f78312288bd02052be5dbc2ecbc342c9f4eb791986d86c0a5c06b92dc72efa" dependencies = [ - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "gix-chunk" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c8751169961ba7640b513c3b24af61aa962c967aaf04116734975cd5af0c52" +checksum = "6c28b58ba04f0c004722344390af9dbc85888fbb84be1981afb934da4114d4cf" dependencies = [ - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "gix-command" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff2e692b36bbcf09286c70803006ca3fd56551a311de450be317a0ab8ea92e7" +checksum = "c201d2b9e9cce2365a6638fd0a966f751ed92d74be5c0727ac331e6a29ef5846" dependencies = [ "bstr", "gix-path", @@ -1487,7 +1492,7 @@ dependencies = [ "gix-features", "gix-hash", "memmap2", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1506,7 +1511,7 @@ dependencies = [ "memchr", "once_cell", "smallvec", - "thiserror", + "thiserror 1.0.69", "unicode-bom", "winnow", ] @@ -1527,22 +1532,22 @@ dependencies = [ "memchr", "once_cell", "smallvec", - "thiserror", + "thiserror 1.0.69", "unicode-bom", "winnow", ] [[package]] name = "gix-config-value" -version = "0.14.8" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03f76169faa0dec598eac60f83d7fcdd739ec16596eca8fb144c88973dbe6f8c" +checksum = "f3de3fdca9c75fa4b83a76583d265fa49b1de6b088ebcd210749c24ceeb74660" dependencies = [ "bitflags 2.6.0", "bstr", "gix-path", "libc", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1559,7 +1564,7 @@ dependencies = [ "gix-sec", "gix-trace", "gix-url", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1570,20 +1575,20 @@ checksum = "9eed6931f21491ee0aeb922751bd7ec97b4b2fe8fbfedcb678e2a2dce5f3b8c0" dependencies = [ "bstr", "itoa", - "thiserror", + "thiserror 1.0.69", "time", ] [[package]] name = "gix-date" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c84b7af01e68daf7a6bb8bb909c1ff5edb3ce4326f1f43063a5a96d3c3c8a5" +checksum = "d10d543ac13c97292a15e8e8b7889cd006faf739777437ed95362504b8fe81a0" dependencies = [ "bstr", "itoa", "jiff", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1595,7 +1600,7 @@ dependencies = [ "bstr", "gix-hash", "gix-object 0.42.3", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1607,7 +1612,7 @@ dependencies = [ "bstr", "gix-hash", "gix-object 0.44.0", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1627,7 +1632,7 @@ dependencies = [ "gix-trace", "gix-utils", "gix-worktree 0.34.1", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1643,7 +1648,7 @@ dependencies = [ "gix-path", "gix-ref 0.45.0", "gix-sec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1659,7 +1664,7 @@ dependencies = [ "gix-path", "gix-ref 0.47.0", "gix-sec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1680,7 +1685,7 @@ dependencies = [ "parking_lot", "prodash", "sha1_smol", - "thiserror", + "thiserror 1.0.69", "walkdir", ] @@ -1702,7 +1707,7 @@ dependencies = [ "gix-trace", "gix-utils", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1723,7 +1728,7 @@ dependencies = [ "gix-trace", "gix-utils", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1756,7 +1761,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e" dependencies = [ "faster-hex", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1808,7 +1813,7 @@ dependencies = [ "memmap2", "rustix", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1836,7 +1841,7 @@ dependencies = [ "memmap2", "rustix", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1847,7 +1852,7 @@ checksum = "e3bc7fe297f1f4614774989c00ec8b1add59571dc9b024b4c00acb7dedd4e19d" dependencies = [ "gix-tempfile", "gix-utils", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1858,7 +1863,7 @@ checksum = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -1874,7 +1879,7 @@ dependencies = [ "gix-object 0.42.3", "gix-revwalk 0.13.2", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1885,12 +1890,12 @@ checksum = "b4063bf329a191a9e24b6f948a17ccf6698c0380297f5e169cee4f1d2ab9475b" dependencies = [ "bitflags 2.6.0", "gix-commitgraph", - "gix-date 0.9.0", + "gix-date 0.9.1", "gix-hash", "gix-object 0.44.0", "gix-revwalk 0.15.0", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1908,7 +1913,7 @@ dependencies = [ "gix-validate 0.8.5", "itoa", "smallvec", - "thiserror", + "thiserror 1.0.69", "winnow", ] @@ -1920,14 +1925,14 @@ checksum = "2f5b801834f1de7640731820c2df6ba88d95480dc4ab166a5882f8ff12b88efa" dependencies = [ "bstr", "gix-actor 0.32.0", - "gix-date 0.9.0", + "gix-date 0.9.1", "gix-features", "gix-hash", "gix-utils", "gix-validate 0.9.1", "itoa", "smallvec", - "thiserror", + "thiserror 1.0.69", "winnow", ] @@ -1948,7 +1953,7 @@ dependencies = [ "gix-quote", "parking_lot", "tempfile", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1958,7 +1963,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3158068701c17df54f0ab2adda527f5a6aca38fd5fd80ceb7e3c0a2717ec747" dependencies = [ "arc-swap", - "gix-date 0.9.0", + "gix-date 0.9.1", "gix-features", "gix-fs", "gix-hash", @@ -1968,7 +1973,7 @@ dependencies = [ "gix-quote", "parking_lot", "tempfile", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1988,7 +1993,7 @@ dependencies = [ "memmap2", "parking_lot", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2008,7 +2013,7 @@ dependencies = [ "memmap2", "parking_lot", "smallvec", - "thiserror", + "thiserror 1.0.69", "uluru", ] @@ -2021,7 +2026,7 @@ dependencies = [ "bstr", "faster-hex", "gix-trace", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2033,20 +2038,20 @@ dependencies = [ "bstr", "faster-hex", "gix-trace", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "gix-path" -version = "0.10.11" +version = "0.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebfc4febd088abdcbc9f1246896e57e37b7a34f6909840045a1767c6dafac7af" +checksum = "c04e5a94fdb56b1e91eb7df2658ad16832428b8eeda24ff1a0f0288de2bce554" dependencies = [ "bstr", "gix-trace", "home", "once_cell", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2061,20 +2066,20 @@ dependencies = [ "gix-config-value", "gix-glob", "gix-path", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "gix-prompt" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74fde865cdb46b30d8dad1293385d9bcf998d3a39cbf41bee67d0dab026fe6b1" +checksum = "57944bbdb87f7a9893907032276e99ff4eba3640d8db1bdfb1eba8c07edfd006" dependencies = [ "gix-command", "gix-config-value", "parking_lot", "rustix", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2085,25 +2090,25 @@ checksum = "cc43a1006f01b5efee22a003928c9eb83dde2f52779ded9d4c0732ad93164e3e" dependencies = [ "bstr", "gix-credentials", - "gix-date 0.9.0", + "gix-date 0.9.1", "gix-features", "gix-hash", "gix-transport", "gix-utils", "maybe-async", - "thiserror", + "thiserror 1.0.69", "winnow", ] [[package]] name = "gix-quote" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbff4f9b9ea3fa7a25a70ee62f545143abef624ac6aa5884344e70c8b0a1d9ff" +checksum = "f89f9a1525dcfd9639e282ea939f5ab0d09d93cf2b90c1fc6104f1b9582a8e49" dependencies = [ "bstr", "gix-utils", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2123,7 +2128,7 @@ dependencies = [ "gix-utils", "gix-validate 0.8.5", "memmap2", - "thiserror", + "thiserror 1.0.69", "winnow", ] @@ -2144,7 +2149,7 @@ dependencies = [ "gix-utils", "gix-validate 0.9.1", "memmap2", - "thiserror", + "thiserror 1.0.69", "winnow", ] @@ -2159,7 +2164,7 @@ dependencies = [ "gix-revision 0.27.2", "gix-validate 0.8.5", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2173,7 +2178,7 @@ dependencies = [ "gix-revision 0.29.0", "gix-validate 0.9.1", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2187,7 +2192,7 @@ dependencies = [ "gix-hash", "gix-object 0.42.3", "gix-revwalk 0.13.2", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2197,13 +2202,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba4621b219ac0cdb9256883030c3d56a6c64a6deaa829a92da73b9a576825e1e" dependencies = [ "bstr", - "gix-date 0.9.0", + "gix-date 0.9.1", "gix-hash", "gix-hashtable", "gix-object 0.44.0", "gix-revwalk 0.15.0", "gix-trace", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2218,7 +2223,7 @@ dependencies = [ "gix-hashtable", "gix-object 0.42.3", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2228,19 +2233,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b41e72544b93084ee682ef3d5b31b1ba4d8fa27a017482900e5e044d5b1b3984" dependencies = [ "gix-commitgraph", - "gix-date 0.9.0", + "gix-date 0.9.1", "gix-hash", "gix-hashtable", "gix-object 0.44.0", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "gix-sec" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe4d52f30a737bbece5276fab5d3a8b276dc2650df963e293d0673be34e7a5f" +checksum = "a2007538eda296445c07949cf04f4a767307d887184d6b3e83e2d636533ddc6e" dependencies = [ "bitflags 2.6.0", "gix-path", @@ -2260,7 +2265,7 @@ dependencies = [ "gix-pathspec", "gix-refspec 0.23.1", "gix-url", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2275,7 +2280,7 @@ dependencies = [ "gix-pathspec", "gix-refspec 0.25.0", "gix-url", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2293,9 +2298,9 @@ dependencies = [ [[package]] name = "gix-trace" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cae0e8661c3ff92688ce1c8b8058b3efb312aba9492bbe93661a21705ab431b" +checksum = "04bdde120c29f1fc23a24d3e115aeeea3d60d8e65bab92cc5f9d90d9302eb952" [[package]] name = "gix-transport" @@ -2313,7 +2318,7 @@ dependencies = [ "gix-sec", "gix-url", "reqwest", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2330,7 +2335,7 @@ dependencies = [ "gix-object 0.42.3", "gix-revwalk 0.13.2", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2341,13 +2346,13 @@ checksum = "030da39af94e4df35472e9318228f36530989327906f38e27807df305fccb780" dependencies = [ "bitflags 2.6.0", "gix-commitgraph", - "gix-date 0.9.0", + "gix-date 0.9.1", "gix-hash", "gix-hashtable", "gix-object 0.44.0", "gix-revwalk 0.15.0", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2360,15 +2365,15 @@ dependencies = [ "gix-features", "gix-path", "home", - "thiserror", + "thiserror 1.0.69", "url", ] [[package]] name = "gix-utils" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc" +checksum = "ba427e3e9599508ed98a6ddf8ed05493db114564e338e41f6a996d2e4790335f" dependencies = [ "bstr", "fastrand", @@ -2382,7 +2387,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82c27dd34a49b1addf193c92070bcbf3beaf6e10f16a78544de6372e146a0acf" dependencies = [ "bstr", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2392,7 +2397,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e187b263461bc36cea17650141567753bc6207d036cedd1de6e81a52f277ff68" dependencies = [ "bstr", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2450,7 +2455,7 @@ dependencies = [ "gix-path", "gix-worktree 0.36.0", "io-close", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2468,8 +2473,8 @@ dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -2517,11 +2522,6 @@ name = "hashbrown" version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", -] [[package]] name = "hashlink" @@ -2622,9 +2622,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "humantime" @@ -2634,9 +2634,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ "bytes", "futures-channel", @@ -2689,9 +2689,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", @@ -2706,6 +2706,124 @@ dependencies = [ "tracing", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2714,12 +2832,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -2732,7 +2861,7 @@ dependencies = [ "globset", "log", "memchr", - "regex-automata 0.4.7", + "regex-automata 0.4.9", "same-file", "walkdir", "winapi-util", @@ -2760,20 +2889,11 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.5", -] - -[[package]] -name = "internment" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "636d4b0f6a39fd684effe2a73f5310df16a3fa7954c26d36833e98f44d1977a2" -dependencies = [ "hashbrown 0.15.1", ] @@ -2795,9 +2915,9 @@ checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is_executable" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ba3d8548b8b04dafdf2f4cc6f5e379db766d0a6d9aac233ad4c9a92ea892233" +checksum = "d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2" dependencies = [ "winapi", ] @@ -2834,9 +2954,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jiff" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a45489186a6123c128fdf6016183fcfab7113e1820eb813127e036e287233fb" +checksum = "b9d9d414fc817d3e3d62b2598616733f76c4cc74fbac96069674739b881295c8" dependencies = [ "jiff-tzdb-platform", "windows-sys 0.59.0", @@ -2868,9 +2988,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -2898,9 +3018,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" [[package]] name = "libdbus-sys" @@ -3000,6 +3120,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "lock_api" version = "0.4.12" @@ -3098,7 +3224,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -3242,7 +3368,7 @@ dependencies = [ "supports-unicode", "tar", "tempfile", - "thiserror", + "thiserror 1.0.69", "time", "toml", "toml_edit", @@ -3355,9 +3481,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -3376,7 +3502,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -3387,18 +3513,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.3.2+3.3.2" +version = "300.4.1+3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +checksum = "faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -3507,9 +3633,9 @@ dependencies = [ [[package]] name = "pathdiff" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" [[package]] name = "pem-rfc7468" @@ -3538,29 +3664,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -3580,9 +3706,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "platforms" @@ -3618,9 +3744,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] @@ -3636,9 +3762,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", "pin-project-lite", @@ -3647,34 +3773,38 @@ dependencies = [ "rustc-hash 2.0.0", "rustls", "socket2", - "thiserror", + "thiserror 2.0.3", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", + "getrandom", "rand", "ring", "rustc-hash 2.0.0", "rustls", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.3", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2", @@ -3762,9 +3892,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.4" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] @@ -3786,19 +3916,19 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -3812,13 +3942,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -3829,15 +3959,15 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.8" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "async-compression", "base64", @@ -3961,15 +4091,15 @@ source = "git+https://github.com/washanhanzi/cargo.git?branch=master#f1167dd5386 dependencies = [ "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tracing", ] [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" dependencies = [ "bitflags 2.6.0", "errno", @@ -3980,9 +4110,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.14" +version = "0.23.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "415d9944693cb90382053259f89fbb077ea730ad7273047ec63b19bc9b160ba8" +checksum = "7f1a745511c54ba6d4465e8d5dfbd81b45791756de28d4981af70d6dca128f1e" dependencies = [ "once_cell", "ring", @@ -4019,6 +4149,9 @@ name = "rustls-pki-types" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +dependencies = [ + "web-time", +] [[package]] name = "rustls-webpki" @@ -4045,7 +4178,7 @@ dependencies = [ "semver", "serde", "tame-index", - "thiserror", + "thiserror 1.0.69", "time", "toml", "url", @@ -4068,9 +4201,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" dependencies = [ "windows-sys 0.59.0", ] @@ -4120,9 +4253,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -4139,9 +4272,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -4169,13 +4302,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -4189,9 +4322,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", "memchr", @@ -4207,14 +4340,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -4366,6 +4499,12 @@ dependencies = [ "der", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "static_assertions" version = "1.1.0" @@ -4409,9 +4548,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -4439,6 +4578,17 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -4479,7 +4629,7 @@ dependencies = [ "serde", "serde_json", "smol_str", - "thiserror", + "thiserror 1.0.69", "tokio", "toml-span", "twox-hash", @@ -4501,16 +4651,16 @@ dependencies = [ "rowan", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "time", "tracing", ] [[package]] name = "tar" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020" +checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" dependencies = [ "filetime", "libc", @@ -4518,9 +4668,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -4556,22 +4706,42 @@ checksum = "f18aa187839b2bdb1ad2fa35ead8c4c2976b64e4363c386d45ac0f7ee85c9233" [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] @@ -4617,6 +4787,16 @@ dependencies = [ "time-core", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -4634,9 +4814,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -4658,7 +4838,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -4728,9 +4908,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.21" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap", "serde", @@ -4768,7 +4948,7 @@ checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-lsp" version = "0.20.0" -source = "git+https://github.com/washanhanzi/tower-lsp?branch=master#907ce8358279878cd294b68c8781adad08ca5026" +source = "git+https://github.com/washanhanzi/tower-lsp?branch=master#79c8633e8dee9a45483ca89c098c43ef41f32673" dependencies = [ "async-trait", "auto_impl", @@ -4790,11 +4970,11 @@ dependencies = [ [[package]] name = "tower-lsp-macros" version = "0.9.0" -source = "git+https://github.com/washanhanzi/tower-lsp?branch=master#907ce8358279878cd294b68c8781adad08ca5026" +source = "git+https://github.com/washanhanzi/tower-lsp?branch=master#79c8633e8dee9a45483ca89c098c43ef41f32673" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -4822,7 +5002,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -4914,18 +5094,9 @@ dependencies = [ [[package]] name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.15" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-bom" @@ -4974,9 +5145,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna", @@ -4984,6 +5155,18 @@ 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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -5044,9 +5227,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", @@ -5055,24 +5238,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -5082,9 +5265,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5092,22 +5275,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasmparser" @@ -5120,9 +5303,19 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +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", @@ -5348,13 +5541,49 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.18" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure 0.13.1", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -5373,7 +5602,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure 0.13.1", ] [[package]] @@ -5381,3 +5631,25 @@ name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] diff --git a/Cargo.toml b/Cargo.toml index 1c7fefd..565ca66 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,27 +9,25 @@ repository = "https://github.com/washanhanzi/cargo-appraiser" [dependencies] serde_json = "1.0" -taplo = "0.13.2" +taplo = "0.13" tokio = { version = "1.41", features = ["full", "macros", "rt-multi-thread"] } lsp-async-stub = "0.6.4" serde = { version = "1.0", features = ["derive"] } -parking_lot = "0.12.3" +parking_lot = "0.12" anyhow = "1.0" -clap = { version = "4.5.20", features = ["derive"] } -once_cell = "1.20.2" -semver = "1.0.23" -tracing-subscriber = "0.3.18" -futures = "0.3.31" +clap = { version = "4.5", features = ["derive"] } +once_cell = "1.20" +semver = "1.0" +tracing-subscriber = "0.3" +futures = "0.3" tracing = "0" openssl = { version = '0.10', optional = true } reqwest = { version = "0.12.8", features = ["json"] } -thiserror = "1.0.64" -unicode-xid = "0.2.6" -executable_path_finder = "0" -internment = "0.8" +thiserror = "2.0" +executable_path_finder = "0.0.5" petgraph = "0.6.5" tokio-util = { version = "0.7.12", features = ["time"] } - +unicode-xid = "0.2.6" cargo = { package = "my-cargo", git = "https://github.com/washanhanzi/cargo.git", branch = "master" } tower-lsp = { git = "https://github.com/washanhanzi/tower-lsp", branch = "master", features = [ diff --git a/README.md b/README.md index de14d71..cfdcdef 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,8 @@ - hover on git dependency will show the git reference and commit - hover on `features` will show available features, hover on a feature name will show its values - - code action for dependency version + - code action on version + - `cargo update` command on version's code action # Config diff --git a/editor/code/package.json b/editor/code/package.json index 777e34c..3c6685e 100644 --- a/editor/code/package.json +++ b/editor/code/package.json @@ -2,7 +2,7 @@ "name": "cargo-appraiser", "displayName": "cargo-appraiser", "description": "LSP for Cargo.toml", - "version": "0.0.5", + "version": "0.0.6", "icon": "image/icon.webp", "publisher": "washan", "license": "SEE LICENSE IN LICENSE", @@ -61,9 +61,9 @@ "test": "pnpm vitest" }, "devDependencies": { - "@types/node": "~20.16.11", + "@types/node": "~20.16.15", "@types/semver": "^7.5.8", - "@types/vscode": "^1.90.0", + "@types/vscode": "1.90.0", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vscode/test-cli": "^0.0.9", @@ -71,7 +71,7 @@ "esbuild": "^0.21.5", "eslint": "^8.57.1", "npm-run-all": "^4.1.5", - "typescript": "^5.6.2", + "typescript": "^5.6.3", "vite-tsconfig-paths": "^4.3.2", "vitest": "^1.6.0" }, diff --git a/editor/code/pnpm-lock.yaml b/editor/code/pnpm-lock.yaml index d4192a7..8337576 100644 --- a/editor/code/pnpm-lock.yaml +++ b/editor/code/pnpm-lock.yaml @@ -19,20 +19,20 @@ importers: version: 9.0.1 devDependencies: '@types/node': - specifier: ~20.16.11 - version: 20.16.11 + specifier: ~20.16.15 + version: 20.16.15 '@types/semver': specifier: ^7.5.8 version: 7.5.8 '@types/vscode': - specifier: ^1.90.0 - version: 1.94.0 + specifier: 1.90.0 + version: 1.90.0 '@typescript-eslint/eslint-plugin': specifier: ^7.18.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^7.18.0 - version: 7.18.0(eslint@8.57.1)(typescript@5.6.2) + version: 7.18.0(eslint@8.57.1)(typescript@5.6.3) '@vscode/test-cli': specifier: ^0.0.9 version: 0.0.9 @@ -49,14 +49,14 @@ importers: specifier: ^4.1.5 version: 4.1.5 typescript: - specifier: ^5.6.2 - version: 5.6.2 + specifier: ^5.6.3 + version: 5.6.3 vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.6.2)(vite@5.4.8(@types/node@20.16.11)) + version: 4.3.2(typescript@5.6.3)(vite@5.4.11(@types/node@20.16.15)) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.16.11) + version: 1.6.0(@types/node@20.16.15) packages: @@ -201,14 +201,14 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.1': - resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': @@ -270,83 +270,93 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rollup/rollup-android-arm-eabi@4.24.0': - resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + '@rollup/rollup-android-arm-eabi@4.27.2': + resolution: {integrity: sha512-Tj+j7Pyzd15wAdSJswvs5CJzJNV+qqSUcr/aCD+jpQSBtXvGnV0pnrjoc8zFTe9fcKCatkpFpOO7yAzpO998HA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.24.0': - resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + '@rollup/rollup-android-arm64@4.27.2': + resolution: {integrity: sha512-xsPeJgh2ThBpUqlLgRfiVYBEf/P1nWlWvReG+aBWfNv3XEBpa6ZCmxSVnxJgLgkNz4IbxpLy64h2gCmAAQLneQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.24.0': - resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + '@rollup/rollup-darwin-arm64@4.27.2': + resolution: {integrity: sha512-KnXU4m9MywuZFedL35Z3PuwiTSn/yqRIhrEA9j+7OSkji39NzVkgxuxTYg5F8ryGysq4iFADaU5osSizMXhU2A==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.24.0': - resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + '@rollup/rollup-darwin-x64@4.27.2': + resolution: {integrity: sha512-Hj77A3yTvUeCIx/Vi+4d4IbYhyTwtHj07lVzUgpUq9YpJSEiGJj4vXMKwzJ3w5zp5v3PFvpJNgc/J31smZey6g==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + '@rollup/rollup-freebsd-arm64@4.27.2': + resolution: {integrity: sha512-RjgKf5C3xbn8gxvCm5VgKZ4nn0pRAIe90J0/fdHUsgztd3+Zesb2lm2+r6uX4prV2eUByuxJNdt647/1KPRq5g==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.27.2': + resolution: {integrity: sha512-duq21FoXwQtuws+V9H6UZ+eCBc7fxSpMK1GQINKn3fAyd9DFYKPJNcUhdIKOrMFjLEJgQskoMoiuizMt+dl20g==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.27.2': + resolution: {integrity: sha512-6npqOKEPRZkLrMcvyC/32OzJ2srdPzCylJjiTJT2c0bwwSGm7nz2F9mNQ1WrAqCBZROcQn91Fno+khFhVijmFA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + '@rollup/rollup-linux-arm-musleabihf@4.27.2': + resolution: {integrity: sha512-V9Xg6eXtgBtHq2jnuQwM/jr2mwe2EycnopO8cbOvpzFuySCGtKlPCI3Hj9xup/pJK5Q0388qfZZy2DqV2J8ftw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.24.0': - resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + '@rollup/rollup-linux-arm64-gnu@4.27.2': + resolution: {integrity: sha512-uCFX9gtZJoQl2xDTpRdseYuNqyKkuMDtH6zSrBTA28yTfKyjN9hQ2B04N5ynR8ILCoSDOrG/Eg+J2TtJ1e/CSA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.24.0': - resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + '@rollup/rollup-linux-arm64-musl@4.27.2': + resolution: {integrity: sha512-/PU9P+7Rkz8JFYDHIi+xzHabOu9qEWR07L5nWLIUsvserrxegZExKCi2jhMZRd0ATdboKylu/K5yAXbp7fYFvA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.27.2': + resolution: {integrity: sha512-eCHmol/dT5odMYi/N0R0HC8V8QE40rEpkyje/ZAXJYNNoSfrObOvG/Mn+s1F/FJyB7co7UQZZf6FuWnN6a7f4g==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + '@rollup/rollup-linux-riscv64-gnu@4.27.2': + resolution: {integrity: sha512-DEP3Njr9/ADDln3kNi76PXonLMSSMiCir0VHXxmGSHxCxDfQ70oWjHcJGfiBugzaqmYdTC7Y+8Int6qbnxPBIQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.24.0': - resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + '@rollup/rollup-linux-s390x-gnu@4.27.2': + resolution: {integrity: sha512-NHGo5i6IE/PtEPh5m0yw5OmPMpesFnzMIS/lzvN5vknnC1sXM5Z/id5VgcNPgpD+wHmIcuYYgW+Q53v+9s96lQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.24.0': - resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + '@rollup/rollup-linux-x64-gnu@4.27.2': + resolution: {integrity: sha512-PaW2DY5Tan+IFvNJGHDmUrORadbe/Ceh8tQxi8cmdQVCCYsLoQo2cuaSj+AU+YRX8M4ivS2vJ9UGaxfuNN7gmg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.24.0': - resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + '@rollup/rollup-linux-x64-musl@4.27.2': + resolution: {integrity: sha512-dOlWEMg2gI91Qx5I/HYqOD6iqlJspxLcS4Zlg3vjk1srE67z5T2Uz91yg/qA8sY0XcwQrFzWWiZhMNERylLrpQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.24.0': - resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + '@rollup/rollup-win32-arm64-msvc@4.27.2': + resolution: {integrity: sha512-euMIv/4x5Y2/ImlbGl88mwKNXDsvzbWUlT7DFky76z2keajCtcbAsN9LUdmk31hAoVmJJYSThgdA0EsPeTr1+w==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.24.0': - resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + '@rollup/rollup-win32-ia32-msvc@4.27.2': + resolution: {integrity: sha512-RsnE6LQkUHlkC10RKngtHNLxb7scFykEbEwOFDjr3CeCMG+Rr+cKqlkKc2/wJ1u4u990urRHCbjz31x84PBrSQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.24.0': - resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + '@rollup/rollup-win32-x64-msvc@4.27.2': + resolution: {integrity: sha512-foJM5vv+z2KQmn7emYdDLyTbkoO5bkHZE1oth2tWbQNGW7mX32d46Hz6T0MqXdWS2vBZhaEtHqdy9WYwGfiliA==} cpu: [x64] os: [win32] @@ -362,14 +372,14 @@ packages: '@types/mocha@10.0.9': resolution: {integrity: sha512-sicdRoWtYevwxjOHNMPTl3vSfJM6oyW8o1wXeI7uww6b6xHg8eBznQDNSGBCDJmsE8UMxP05JgZRtsKbTqt//Q==} - '@types/node@20.16.11': - resolution: {integrity: sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==} + '@types/node@20.16.15': + resolution: {integrity: sha512-DV58qQz9dBMqVVn+qnKwGa51QzCD4YM/tQM16qLKxdf5tqz5W4QwtrMzjSTbabN1cFTSuyxVYBy+QWHjWW8X/g==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/vscode@1.94.0': - resolution: {integrity: sha512-UyQOIUT0pb14XSqJskYnRwD2aG0QrPVefIfrW1djR+/J4KeFQ0i1+hjZoaAmeNf3Z2jleK+R2hv+EboG/m8ruw==} + '@types/vscode@1.90.0': + resolution: {integrity: sha512-oT+ZJL7qHS9Z8bs0+WKf/kQ27qWYR3trsXpq46YDjFqBsMLG4ygGGjPaJ2tyrH0wJzjOEmDyg9PDJBBhWg9pkQ==} '@typescript-eslint/eslint-plugin@7.18.0': resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} @@ -469,8 +479,8 @@ packages: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -652,8 +662,8 @@ packages: resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} engines: {node: '>=4.8'} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.5: + resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} engines: {node: '>= 8'} data-view-buffer@1.0.1: @@ -731,8 +741,8 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + es-abstract@1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} engines: {node: '>= 0.4'} es-define-property@1.0.0: @@ -1216,8 +1226,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - magic-string@0.30.11: - resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} @@ -1261,11 +1271,11 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - mlly@1.7.2: - resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + mlly@1.7.3: + resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} - mocha@10.7.3: - resolution: {integrity: sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==} + mocha@10.8.2: + resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} engines: {node: '>= 14.0.0'} hasBin: true @@ -1299,8 +1309,8 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} object-keys@1.1.1: @@ -1397,8 +1407,8 @@ packages: pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -1413,15 +1423,15 @@ packages: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} - pkg-types@1.2.0: - resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -1492,8 +1502,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.24.0: - resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + rollup@4.27.2: + resolution: {integrity: sha512-KreA+PzWmk2yaFmZVwe6GB2uBD86nXl86OsDkt1bJS9p3vqWuEQ6HnJJ+j/mZi/q0920P99/MVRlB4L3crpF5w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -1593,8 +1603,8 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} @@ -1702,14 +1712,14 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + ts-api-utils@1.4.0: + resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' - tsconfck@3.1.3: - resolution: {integrity: sha512-ulNZP1SVpRDesxeMLON/LtWM8HIgAJEIVpVVhBM6gsmvQ8+Rh+ZG7FWGvHh7Ah3pRABwVJWklWCr/BTZSv0xnQ==} + tsconfck@3.1.4: + resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -1746,8 +1756,8 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typescript@5.6.2: - resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true @@ -1786,8 +1796,8 @@ packages: vite: optional: true - vite@5.4.8: - resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2000,12 +2010,12 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': dependencies: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.1': {} + '@eslint-community/regexpp@4.12.1': {} '@eslint/eslintrc@2.1.4': dependencies: @@ -2074,52 +2084,58 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rollup/rollup-android-arm-eabi@4.24.0': + '@rollup/rollup-android-arm-eabi@4.27.2': + optional: true + + '@rollup/rollup-android-arm64@4.27.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.27.2': optional: true - '@rollup/rollup-android-arm64@4.24.0': + '@rollup/rollup-darwin-x64@4.27.2': optional: true - '@rollup/rollup-darwin-arm64@4.24.0': + '@rollup/rollup-freebsd-arm64@4.27.2': optional: true - '@rollup/rollup-darwin-x64@4.24.0': + '@rollup/rollup-freebsd-x64@4.27.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + '@rollup/rollup-linux-arm-gnueabihf@4.27.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.24.0': + '@rollup/rollup-linux-arm-musleabihf@4.27.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.24.0': + '@rollup/rollup-linux-arm64-gnu@4.27.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.24.0': + '@rollup/rollup-linux-arm64-musl@4.27.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.27.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.24.0': + '@rollup/rollup-linux-riscv64-gnu@4.27.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.24.0': + '@rollup/rollup-linux-s390x-gnu@4.27.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.24.0': + '@rollup/rollup-linux-x64-gnu@4.27.2': optional: true - '@rollup/rollup-linux-x64-musl@4.24.0': + '@rollup/rollup-linux-x64-musl@4.27.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.24.0': + '@rollup/rollup-win32-arm64-msvc@4.27.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.24.0': + '@rollup/rollup-win32-ia32-msvc@4.27.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.24.0': + '@rollup/rollup-win32-x64-msvc@4.27.2': optional: true '@sinclair/typebox@0.27.8': {} @@ -2130,42 +2146,42 @@ snapshots: '@types/mocha@10.0.9': {} - '@types/node@20.16.11': + '@types/node@20.16.15': dependencies: undici-types: 6.19.8 '@types/semver@7.5.8': {} - '@types/vscode@1.94.0': {} + '@types/vscode@1.90.0': {} - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2) + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.3) '@typescript-eslint/visitor-keys': 7.18.0 eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.3.7(supports-color@8.1.1) eslint: 8.57.1 optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -2174,21 +2190,21 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.3) debug: 4.3.7(supports-color@8.1.1) eslint: 8.57.1 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 @@ -2197,18 +2213,18 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) eslint: 8.57.1 transitivePeerDependencies: - supports-color @@ -2235,7 +2251,7 @@ snapshots: '@vitest/snapshot@1.6.0': dependencies: - magic-string: 0.30.11 + magic-string: 0.30.12 pathe: 1.1.2 pretty-format: 29.7.0 @@ -2258,7 +2274,7 @@ snapshots: enhanced-resolve: 5.17.1 glob: 10.4.5 minimatch: 9.0.5 - mocha: 10.7.3 + mocha: 10.8.2 supports-color: 9.4.0 yargs: 17.7.2 @@ -2274,15 +2290,15 @@ snapshots: '@washanhanzi/result-enum@2.0.3': {} - acorn-jsx@5.3.2(acorn@8.12.1): + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.12.1 + acorn: 8.14.0 acorn-walk@8.3.4: dependencies: - acorn: 8.12.1 + acorn: 8.14.0 - acorn@8.12.1: {} + acorn@8.14.0: {} agent-base@7.1.1: dependencies: @@ -2334,7 +2350,7 @@ snapshots: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 @@ -2491,7 +2507,7 @@ snapshots: shebang-command: 1.2.0 which: 1.3.1 - cross-spawn@7.0.3: + cross-spawn@7.0.5: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -2570,7 +2586,7 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.23.3: + es-abstract@1.23.5: dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -2603,7 +2619,7 @@ snapshots: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.2 + object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.3 @@ -2682,8 +2698,8 @@ snapshots: eslint@8.57.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.11.1 + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.1 '@humanwhocodes/config-array': 0.13.0 @@ -2692,7 +2708,7 @@ snapshots: '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 debug: 4.3.7(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 @@ -2725,8 +2741,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esquery@1.6.0: @@ -2747,7 +2763,7 @@ snapshots: execa@8.0.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -2804,7 +2820,7 @@ snapshots: foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 signal-exit: 4.1.0 fs.realpath@1.0.0: {} @@ -2818,7 +2834,7 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 functions-have-names: 1.2.3 functions-have-names@1.2.3: {} @@ -3132,8 +3148,8 @@ snapshots: local-pkg@0.5.0: dependencies: - mlly: 1.7.2 - pkg-types: 1.2.0 + mlly: 1.7.3 + pkg-types: 1.2.1 locate-path@6.0.0: dependencies: @@ -3157,7 +3173,7 @@ snapshots: lru-cache@10.4.3: {} - magic-string@0.30.11: + magic-string@0.30.12: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -3194,14 +3210,14 @@ snapshots: minipass@7.1.2: {} - mlly@1.7.2: + mlly@1.7.3: dependencies: - acorn: 8.12.1 + acorn: 8.14.0 pathe: 1.1.2 - pkg-types: 1.2.0 + pkg-types: 1.2.1 ufo: 1.5.4 - mocha@10.7.3: + mocha@10.8.2: dependencies: ansi-colors: 4.1.3 browser-stdout: 1.3.1 @@ -3257,7 +3273,7 @@ snapshots: dependencies: path-key: 4.0.0 - object-inspect@1.13.2: {} + object-inspect@1.13.3: {} object-keys@1.1.1: {} @@ -3353,7 +3369,7 @@ snapshots: pathval@1.1.1: {} - picocolors@1.1.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -3361,18 +3377,18 @@ snapshots: pify@3.0.0: {} - pkg-types@1.2.0: + pkg-types@1.2.1: dependencies: confbox: 0.1.8 - mlly: 1.7.2 + mlly: 1.7.3 pathe: 1.1.2 possible-typed-array-names@1.0.0: {} - postcss@8.4.47: + postcss@8.4.49: dependencies: nanoid: 3.3.7 - picocolors: 1.1.0 + picocolors: 1.1.1 source-map-js: 1.2.1 prelude-ls@1.2.1: {} @@ -3449,26 +3465,28 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.24.0: + rollup@4.27.2: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.0 - '@rollup/rollup-android-arm64': 4.24.0 - '@rollup/rollup-darwin-arm64': 4.24.0 - '@rollup/rollup-darwin-x64': 4.24.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 - '@rollup/rollup-linux-arm-musleabihf': 4.24.0 - '@rollup/rollup-linux-arm64-gnu': 4.24.0 - '@rollup/rollup-linux-arm64-musl': 4.24.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 - '@rollup/rollup-linux-riscv64-gnu': 4.24.0 - '@rollup/rollup-linux-s390x-gnu': 4.24.0 - '@rollup/rollup-linux-x64-gnu': 4.24.0 - '@rollup/rollup-linux-x64-musl': 4.24.0 - '@rollup/rollup-win32-arm64-msvc': 4.24.0 - '@rollup/rollup-win32-ia32-msvc': 4.24.0 - '@rollup/rollup-win32-x64-msvc': 4.24.0 + '@rollup/rollup-android-arm-eabi': 4.27.2 + '@rollup/rollup-android-arm64': 4.27.2 + '@rollup/rollup-darwin-arm64': 4.27.2 + '@rollup/rollup-darwin-x64': 4.27.2 + '@rollup/rollup-freebsd-arm64': 4.27.2 + '@rollup/rollup-freebsd-x64': 4.27.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.27.2 + '@rollup/rollup-linux-arm-musleabihf': 4.27.2 + '@rollup/rollup-linux-arm64-gnu': 4.27.2 + '@rollup/rollup-linux-arm64-musl': 4.27.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.27.2 + '@rollup/rollup-linux-riscv64-gnu': 4.27.2 + '@rollup/rollup-linux-s390x-gnu': 4.27.2 + '@rollup/rollup-linux-x64-gnu': 4.27.2 + '@rollup/rollup-linux-x64-musl': 4.27.2 + '@rollup/rollup-win32-arm64-msvc': 4.27.2 + '@rollup/rollup-win32-ia32-msvc': 4.27.2 + '@rollup/rollup-win32-x64-msvc': 4.27.2 fsevents: 2.3.3 run-parallel@1.2.0: @@ -3537,7 +3555,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.3 siginfo@2.0.0: {} @@ -3565,7 +3583,7 @@ snapshots: stackback@0.0.2: {} - std-env@3.7.0: {} + std-env@3.8.0: {} stdin-discarder@0.1.0: dependencies: @@ -3593,14 +3611,14 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 string.prototype.trimend@1.0.8: @@ -3677,13 +3695,13 @@ snapshots: dependencies: is-number: 7.0.0 - ts-api-utils@1.3.0(typescript@5.6.2): + ts-api-utils@1.4.0(typescript@5.6.3): dependencies: - typescript: 5.6.2 + typescript: 5.6.3 - tsconfck@3.1.3(typescript@5.6.2): + tsconfck@3.1.4(typescript@5.6.3): optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 type-check@0.4.0: dependencies: @@ -3725,7 +3743,7 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript@5.6.2: {} + typescript@5.6.3: {} ufo@1.5.4: {} @@ -3755,13 +3773,13 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-node@1.6.0(@types/node@20.16.11): + vite-node@1.6.0(@types/node@20.16.15): dependencies: cac: 6.7.14 debug: 4.3.7(supports-color@8.1.1) pathe: 1.1.2 - picocolors: 1.1.0 - vite: 5.4.8(@types/node@20.16.11) + picocolors: 1.1.1 + vite: 5.4.11(@types/node@20.16.15) transitivePeerDependencies: - '@types/node' - less @@ -3773,27 +3791,27 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@4.3.2(typescript@5.6.2)(vite@5.4.8(@types/node@20.16.11)): + vite-tsconfig-paths@4.3.2(typescript@5.6.3)(vite@5.4.11(@types/node@20.16.15)): dependencies: debug: 4.3.7(supports-color@8.1.1) globrex: 0.1.2 - tsconfck: 3.1.3(typescript@5.6.2) + tsconfck: 3.1.4(typescript@5.6.3) optionalDependencies: - vite: 5.4.8(@types/node@20.16.11) + vite: 5.4.11(@types/node@20.16.15) transitivePeerDependencies: - supports-color - typescript - vite@5.4.8(@types/node@20.16.11): + vite@5.4.11(@types/node@20.16.15): dependencies: esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.24.0 + postcss: 8.4.49 + rollup: 4.27.2 optionalDependencies: - '@types/node': 20.16.11 + '@types/node': 20.16.15 fsevents: 2.3.3 - vitest@1.6.0(@types/node@20.16.11): + vitest@1.6.0(@types/node@20.16.15): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -3805,18 +3823,18 @@ snapshots: debug: 4.3.7(supports-color@8.1.1) execa: 8.0.1 local-pkg: 0.5.0 - magic-string: 0.30.11 + magic-string: 0.30.12 pathe: 1.1.2 - picocolors: 1.1.0 - std-env: 3.7.0 + picocolors: 1.1.1 + std-env: 3.8.0 strip-literal: 2.1.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.8(@types/node@20.16.11) - vite-node: 1.6.0(@types/node@20.16.11) + vite: 5.4.11(@types/node@20.16.15) + vite-node: 1.6.0(@types/node@20.16.15) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 20.16.11 + '@types/node': 20.16.15 transitivePeerDependencies: - less - lightningcss diff --git a/src/config.rs b/src/config.rs index ac54ccb..2c13ca4 100644 --- a/src/config.rs +++ b/src/config.rs @@ -2,10 +2,15 @@ use once_cell::sync::Lazy; use serde::Deserialize; use std::sync::RwLock; -use crate::decoration::DecorationFormatter; +use crate::decoration::{CompiledFormatter, DecorationFormatter}; -#[derive(Default, Debug, Deserialize, Clone)] +#[derive(Default, Debug, Clone)] pub struct Config { + pub decoration_formatter: CompiledFormatter, +} + +#[derive(Default, Debug, Deserialize, Clone)] +pub struct UserConfig { #[serde(flatten)] pub renderer: RendererConfig, } @@ -19,15 +24,9 @@ pub struct RendererConfig { pub static GLOBAL_CONFIG: Lazy> = Lazy::new(|| RwLock::new(Config::default())); -pub fn initialize_config(mut config: Config) { - let mut global_config = GLOBAL_CONFIG.write().unwrap(); - *global_config = config; -} - -pub fn update_config(update_fn: F) -where - F: FnOnce(&mut Config), -{ +pub fn initialize_config(config: UserConfig) { let mut global_config = GLOBAL_CONFIG.write().unwrap(); - update_fn(&mut global_config); + *global_config = Config { + decoration_formatter: config.renderer.decoration_formatter.compile(), + }; } diff --git a/src/controller/appraiser.rs b/src/controller/appraiser.rs index a9c3621..21f1204 100644 --- a/src/controller/appraiser.rs +++ b/src/controller/appraiser.rs @@ -70,6 +70,7 @@ pub enum CargoDocumentEvent { Completion(Uri, Position, oneshot::Sender>), CargoDiagnostic(Uri, CargoError), Audited(AuditReports), + Parse(CargoTomlPayload), } pub struct CargoTomlPayload { @@ -123,7 +124,7 @@ impl Appraiser { }); //timer task - let mut debouncer = Debouncer::new(tx.clone(), 1000, 10000); + let mut debouncer = Debouncer::new(tx.clone(), 1000, 5000); debouncer.spawn(); //audit task @@ -289,6 +290,9 @@ impl Appraiser { CargoDocumentEvent::Closed(uri) => { if let Some(doc) = state.document_mut(&uri) { doc.mark_dirty(); + if let Err(e) = render_tx.send(DecorationEvent::Reset(uri)).await { + error!("render tx send reset error: {}", e); + } } } CargoDocumentEvent::CargoLockChanged => { @@ -362,11 +366,11 @@ impl Appraiser { error!("debounder send interactive error: {}", e); } } - CargoDocumentEvent::Opened(msg) | CargoDocumentEvent::Saved(msg) => { + CargoDocumentEvent::Parse(msg) => { if let Err(e) = audit_controller.send(&msg.uri).await { error!("audit controller send error: {}", e); }; - let doc = match state.reconsile(&msg.uri, &msg.text) { + match state.reconsile(&msg.uri, &msg.text) { Ok((doc, diff)) => { if diff.is_empty() && !doc.is_dirty() { continue; @@ -386,45 +390,31 @@ impl Appraiser { continue; } }; - - if let Some(uri) = doc.root_manifest.as_ref() { - if uri != &msg.uri { - if client_capabilities.can_read_file() { - let param = ReadFileParam { uri: uri.clone() }; - match client.send_request::(param).await { - Ok(content) => { - if let Err(e) = inner_tx - .send(CargoDocumentEvent::Opened( - CargoTomlPayload { - uri: uri.clone(), - text: content.content, - }, - )) - .await - { - error!("inner tx send error: {}", e); - } - } - Err(e) => { - error!("read file error: {}", e); - } - } + } + CargoDocumentEvent::Opened(msg) | CargoDocumentEvent::Saved(msg) => { + if let Err(e) = audit_controller.send(&msg.uri).await { + error!("audit controller send error: {}", e); + }; + let doc = match state.reconsile(&msg.uri, &msg.text) { + Ok((doc, diff)) => { + if diff.is_empty() && !doc.is_dirty() { + continue; } else { - //read file with os - let content = - std::fs::read_to_string(uri.path().as_str()).unwrap(); - if let Err(e) = inner_tx - .send(CargoDocumentEvent::Opened(CargoTomlPayload { - uri: uri.clone(), - text: content, - })) - .await - { - error!("inner tx send error: {}", e); - } + doc } } - } + Err(err) => { + for e in err { + let Some((id, diag)) = e.diagnostic() else { + continue; + }; + diagnostic_controller + .add_parse_diagnostic(&msg.uri, &id, diag) + .await; + } + continue; + } + }; if let Err(e) = debouncer .send_interactive(Ctx { @@ -437,8 +427,21 @@ impl Appraiser { } } CargoDocumentEvent::ReadyToResolve(ctx) => { + //delay audit + if let Err(e) = audit_controller.send(&ctx.uri).await { + error!("audit controller send error: {}", e); + }; if state.check_rev(&ctx.uri, ctx.rev) { - start_resolve(&ctx.uri, &mut state, &render_tx, &cargo_tx).await; + start_resolve( + &ctx.uri, + &mut state, + &render_tx, + &cargo_tx, + &inner_tx, + &client, + &client_capabilities, + ) + .await; } } CargoDocumentEvent::CargoResolved(mut output) => { @@ -454,96 +457,62 @@ impl Appraiser { for dep in doc.dependencies.values_mut() { let key = dep.toml_key(); - if doc.dirty_nodes.contains_key(&dep.id) { + if let Some(rev) = doc.dirty_nodes.get(&dep.id) { + if *rev > output.ctx.rev { + continue; + } // Take resolved out of the output.dependencies hashmap let maybe_resolved = output.dependencies.remove(&key); dep.resolved = maybe_resolved; let package_name = dep.package_name(); - let Some(summaries) = output.summaries.remove(package_name) else { + let Some(mut summaries) = output.summaries.remove(package_name) + else { continue; }; - dep.summaries = Some(summaries.clone()); - - if let Some(resolved) = dep.resolved.as_ref() { + if let (Some(resolved), Some(unresolved)) = + (dep.resolved.as_ref(), dep.unresolved.as_ref()) + { let installed = resolved.version().clone(); - let req_version = - dep.unresolved.as_ref().unwrap().version_req(); + let req_version = unresolved.version_req(); - let mut latest: Option<&Version> = None; - let mut latest_matched: Option<&Version> = None; + //order summaries by version + summaries.sort_by(|a, b| b.version().cmp(a.version())); for summary in &summaries { + if dep.matched_summary.is_some() + && dep.latest_matched_summary.is_some() + && dep.latest_summary.is_some() + { + break; + } if &installed == summary.version() { dep.matched_summary = Some(summary.clone()); } - match latest { - Some(cur) - if summary.version() > cur - && summary.version().is_prerelease() - == installed.is_prerelease() => - { - latest = Some(summary.version()); - dep.latest_summary = Some(summary.clone()); - } - None if summary.version().is_prerelease() - == installed.is_prerelease() => - { - latest = Some(summary.version()); - dep.latest_summary = Some(summary.clone()); - } - _ => {} + if dep.latest_summary.is_none() + && summary.version().is_prerelease() + == installed.is_prerelease() + { + dep.latest_summary = Some(summary.clone()); } - match (latest_matched.as_ref(), installed.is_prerelease()) { - (Some(cur), true) - if req_version - .matches_prerelease(summary.version()) - && summary.version() > cur => - { - latest_matched = Some(summary.version()); - dep.latest_matched_summary = Some(summary.clone()); - } - (Some(cur), false) - if req_version.matches(summary.version()) - && summary.version() > cur => - { - latest_matched = Some(summary.version()); - dep.latest_matched_summary = Some(summary.clone()); - } - (None, true) - if req_version - .matches_prerelease(summary.version()) => - { - latest_matched = Some(summary.version()); - dep.latest_matched_summary = Some(summary.clone()); - } - (None, false) - if req_version.matches(summary.version()) => - { - latest_matched = Some(summary.version()); - dep.latest_matched_summary = Some(summary.clone()); - } - _ => {} + if dep.latest_matched_summary.is_none() + && req_version.matches(summary.version()) + { + dep.latest_matched_summary = Some(summary.clone()); } } + dep.summaries = Some(summaries.clone()); }; - - //send to render - if let Some(rev) = doc.dirty_nodes.get(&dep.id) { - if *rev > output.ctx.rev { - continue; - } - //send to render task - render_tx - .send(DecorationEvent::Dependency( - output.ctx.uri.clone(), - dep.id.clone(), - dep.range, - dep.clone(), - )) - .await - .unwrap(); - doc.dirty_nodes.remove(&dep.id); - } + //send to render task + render_tx + .send(DecorationEvent::Dependency( + output.ctx.uri.clone(), + dep.id.clone(), + dep.range, + dep.clone(), + )) + .await + .unwrap(); + doc.dirty_nodes.remove(&dep.id); } } if doc.is_dirty() { @@ -571,11 +540,50 @@ async fn start_resolve( state: &mut Workspace, render_tx: &Sender, cargo_tx: &Sender, + inner_tx: &Sender, + client: &Client, + client_capabilities: &ClientCapabilities, ) { let Some(doc) = state.document_mut(uri) else { return; }; - // doc.populate_dependencies(); + doc.populate_dependencies(); + + if let Some(root_uri) = doc.root_manifest.as_ref() { + if root_uri != uri { + if client_capabilities.can_read_file() { + let param = ReadFileParam { uri: uri.clone() }; + match client.send_request::(param).await { + Ok(content) => { + if let Err(e) = inner_tx + .send(CargoDocumentEvent::Parse(CargoTomlPayload { + uri: uri.clone(), + text: content.content, + })) + .await + { + error!("inner tx send error: {}", e); + } + } + Err(e) => { + error!("read file error: {}", e); + } + } + } else { + //read file with os + let content = std::fs::read_to_string(uri.path().as_str()).unwrap(); + if let Err(e) = inner_tx + .send(CargoDocumentEvent::Parse(CargoTomlPayload { + uri: uri.clone(), + text: content, + })) + .await + { + error!("inner tx send error: {}", e); + } + } + } + } //virtual workspace doesn't need to resolve if doc.is_virtual() { diff --git a/src/controller/audit.rs b/src/controller/audit.rs index 5b15770..7a4b4bd 100644 --- a/src/controller/audit.rs +++ b/src/controller/audit.rs @@ -144,7 +144,7 @@ impl AuditController { received_uri = Some(uri); } } - timer = Some(Box::pin(tokio::time::sleep(Duration::from_secs(20)))); + timer = Some(Box::pin(tokio::time::sleep(Duration::from_secs(60)))); } () = async { if let Some(ref mut t) = timer { @@ -178,6 +178,7 @@ pub fn audit_workspace( uri: &Uri, audited: &mut Option, ) -> Result { + info!("audit workspace: {}", uri.path()); let gctx = cargo::util::context::GlobalContext::default()?; let path = Path::new(uri.path().as_str()); let workspace = cargo::core::Workspace::new(path, &gctx)?; diff --git a/src/controller/code_action.rs b/src/controller/code_action.rs index ecf3203..03ce61c 100644 --- a/src/controller/code_action.rs +++ b/src/controller/code_action.rs @@ -7,10 +7,9 @@ use tower_lsp::lsp_types::{ CodeAction, CodeActionKind, CodeActionOrCommand, CodeActionResponse, Command, Range, TextEdit, Uri, WorkspaceEdit, }; -use tracing::info; use crate::{ - decoration::{version_decoration, VersionDecoration}, + decoration::{version_decoration, VersionDecorationKind}, entity::{strip_quotes, Dependency, DependencyEntryKind, EntryKind, NodeKind, TomlNode, CARGO}, }; @@ -31,46 +30,52 @@ pub fn code_action_dependency( ) -> Option { match key { DependencyEntryKind::SimpleDependency | DependencyEntryKind::TableDependencyVersion => { - let version_deco = version_decoration(dep); - let latest = dep.latest_summary.as_ref().map(|s| s.version()); - let latest_matched = dep.latest_matched_summary.as_ref().map(|s| s.version()); + let version = version_decoration(dep); let mut actions = VersionCodeAction::new(uri, node); actions.check_unresolved(dep); - match version_deco { - VersionDecoration::Latest => { - if let Some(v) = latest { + match version.kind { + VersionDecorationKind::Latest => { + if let Some(v) = version.latest.as_ref() { actions.add_refactor(v); } } - VersionDecoration::Local => return None, - VersionDecoration::NotInstalled => return None, - VersionDecoration::MixedUpgradeable => { - if let Some(v) = latest_matched { + VersionDecorationKind::Local => return None, + VersionDecorationKind::NotInstalled => return None, + VersionDecorationKind::MixedUpgradeable => { + if let Some(v) = version.latest_matched.as_ref() { actions.add_quickfix(v); + // actions.add_precies_update_command(dep.package_name(), v); } - if let Some(v) = latest { + if let Some(v) = version.latest.as_ref() { actions.add_quickfix(v); } + actions.add_update_command(dep.package_name()); } - VersionDecoration::CompatibleLatest => { - let v = latest?; + VersionDecorationKind::CompatibleLatest => { + let v = version.latest.as_ref()?; actions.add_refactor(v); actions.add_quickfix(v); - actions.add_command(dep.package_name(), v); + // actions.add_precies_update_command(dep.package_name(), v); + actions.add_update_command(dep.package_name()); } - VersionDecoration::NoncompatibleLatest => { - let v = latest?; + VersionDecorationKind::NonCompatibleLatest => { + let v = version.latest.as_ref()?; actions.add_quickfix(v); + actions.add_update_command(dep.package_name()); } - VersionDecoration::Yanked => { - if let Some(v) = latest { + VersionDecorationKind::Yanked => { + if let Some(v) = version.latest.as_ref() { actions.add_quickfix(v); } - if let Some(v) = latest_matched { + if let Some(v) = version.latest_matched.as_ref() { actions.add_quickfix(v); } + actions.add_update_command(dep.package_name()); } - VersionDecoration::NotParsed => return None, + VersionDecorationKind::Git => { + actions.add_update_command(dep.package_name()); + } + VersionDecorationKind::NotParsed => return None, }; actions.add_eq_refactor(); if let Some(p) = dep.resolved.as_ref() { @@ -230,57 +235,46 @@ impl<'a> VersionCodeAction<'a> { title: Option, ) { self.actions - .push(MyCodeAction::new(self.uri.clone(), v, kind, range, title).into()); + .push(new_code_action(self.uri.clone(), v, kind, range, title)); } - fn add_command(&mut self, package_name: &str, v: &Version) { - self.actions.push(new_command(package_name, v).into()); + fn add_precies_update_command(&mut self, package_name: &str, v: &Version) { + self.actions + .push(new_precise_update_command(package_name, v).into()); } -} - -struct MyCodeAction(CodeAction); -impl From for CodeActionOrCommand { - fn from(value: MyCodeAction) -> Self { - value.0.into() + fn add_update_command(&mut self, package_name: &str) { + self.actions.push(new_update_command(package_name).into()); } } -impl MyCodeAction { - fn new(uri: Uri, v: String, kind: CodeActionKind, range: Range, title: Option) -> Self { - Self(CodeAction { - title: title.unwrap_or(v.to_string()), - kind: Some(kind), - diagnostics: None, - edit: Some(WorkspaceEdit { - changes: Some(HashMap::from([( - uri, - vec![TextEdit { new_text: v, range }], - )])), - document_changes: None, - change_annotations: None, - }), - ..Default::default() - }) - } - - fn with_command(&mut self, package_name: &str, v: &Version) { - self.0.command = Some(Command::new( - format!("update {} to {}", package_name, v), - CARGO.to_string(), - Some(vec![ - Value::String("update".to_string()), - Value::String(package_name.to_string()), - Value::String("--precise".to_string()), - Value::String(v.to_string()), - ]), - )); +fn new_code_action( + uri: Uri, + v: String, + kind: CodeActionKind, + range: Range, + title: Option, +) -> CodeActionOrCommand { + CodeAction { + title: title.unwrap_or(v.to_string()), + kind: Some(kind), + diagnostics: None, + edit: Some(WorkspaceEdit { + changes: Some(HashMap::from([( + uri, + vec![TextEdit { new_text: v, range }], + )])), + document_changes: None, + change_annotations: None, + }), + ..Default::default() } + .into() } -fn new_command(package_name: &str, v: &Version) -> Command { +fn new_precise_update_command(package_name: &str, v: &Version) -> Command { Command::new( - format!("update {} to {} use cargo", package_name, v), + format!("cargo update {} --precise {}", package_name, v), CARGO.to_string(), Some(vec![ Value::String("update".to_string()), @@ -290,3 +284,14 @@ fn new_command(package_name: &str, v: &Version) -> Command { ]), ) } + +fn new_update_command(package_name: &str) -> Command { + Command::new( + format!("cargo update {}", package_name), + CARGO.to_string(), + Some(vec![ + Value::String("update".to_string()), + Value::String(package_name.to_string()), + ]), + ) +} diff --git a/src/controller/debouncer.rs b/src/controller/debouncer.rs index db70a7a..84a190d 100644 --- a/src/controller/debouncer.rs +++ b/src/controller/debouncer.rs @@ -9,7 +9,7 @@ use std::{ use tokio::sync::mpsc::{self, error::SendError, Sender}; use tokio_util::time::{delay_queue, DelayQueue}; use tower_lsp::lsp_types::Uri; -use tracing::error; +use tracing::{error, info}; // Change Timer pub struct Debouncer { @@ -68,16 +68,21 @@ impl Stream for Queue { fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { let this = self.get_mut(); - match this.expirations.poll_expired(cx) { - Poll::Ready(Some(expired)) => match this.entries.remove(&expired.get_ref().clone()) { - Some((rev, _)) => Poll::Ready(Some(Ctx { + + while let Poll::Ready(Some(expired)) = this.expirations.poll_expired(cx) { + if let Some((rev, _)) = this.entries.remove(expired.get_ref()) { + return Poll::Ready(Some(Ctx { uri: expired.get_ref().clone(), rev, - })), - None => Poll::Ready(None), - }, - Poll::Ready(None) => Poll::Ready(None), - Poll::Pending => Poll::Pending, + })); + } // If not found in entries, just loop to the next expired item. + } + + // Only return None when the DelayQueue itself is empty. + if this.expirations.is_empty() { + Poll::Ready(None) + } else { + Poll::Pending } } } @@ -146,11 +151,11 @@ impl Debouncer { fn calculate_backoff_timeout(base_timeout: u64, count: u32) -> u64 { let factor = match count { - 0..=5 => 1, - 6..=10 => 2, - 11..=15 => 3, - 16..=20 => 4, - _ => 5, + 0..=2 => 1, + 3..=5 => 2, + 6..=10 => 3, + 11..=15 => 6, + _ => 7, }; - (base_timeout * factor).min(30_000) // Cap at 15 seconds + (base_timeout * factor).min(30_000) // Cap at 30 seconds } diff --git a/src/controller/hover.rs b/src/controller/hover.rs index 0f7e5e0..fc64357 100644 --- a/src/controller/hover.rs +++ b/src/controller/hover.rs @@ -50,14 +50,19 @@ pub fn hover( .collect(); let mut feature_list = features.keys().collect::>(); feature_list.sort(); - let feature_list = feature_list - .iter() - .map(|key| format!("- {}", key)) - .collect::>() - .join("\n"); + let mut s = String::new(); + for key in feature_list { + s.push_str(&format!("- {}", key)); + if !features[key].is_empty() { + s.push_str(": ["); + s.push_str(&features[key].join(", ")); + s.push(']'); + } + s.push('\n'); + } Some(Hover { - contents: HoverContents::Scalar(MarkedString::String(feature_list)), + contents: HoverContents::Scalar(MarkedString::String(s)), range: Some(node.range), }) } diff --git a/src/decoration.rs b/src/decoration.rs index 851a21e..abe563b 100644 --- a/src/decoration.rs +++ b/src/decoration.rs @@ -1,10 +1,12 @@ use cargo::core::SourceKind; +use semver::Version; use serde::{Deserialize, Serialize}; use tokio::sync::mpsc::Sender; use tower_lsp::{ lsp_types::{InlayHint, Range, Uri}, Client, }; +use tracing::info; use crate::entity::{commit_str_short, git_ref_str, Dependency}; @@ -55,15 +57,17 @@ impl DecorationRenderer { #[derive(Clone)] pub enum DecorationEvent { - Reset, + Reset(Uri), DependencyRangeUpdate(Uri, String, Range), DependencyRemove(Uri, String), DependencyWaiting(Uri, String, Range), Dependency(Uri, String, Range, Dependency), } -#[derive(Debug, PartialEq, Eq, Clone)] -pub enum VersionDecoration { +#[derive(Debug, Default, PartialEq, Eq, Clone, Serialize)] +pub enum VersionDecorationKind { + #[default] + NotParsed, //installed == latest_matched == latest Latest, Local, @@ -73,155 +77,118 @@ pub enum VersionDecoration { //installed -> latest_matched == latest CompatibleLatest, //installed !-> latest_matched == latest - NoncompatibleLatest, + NonCompatibleLatest, Yanked, - NotParsed, + Git, } #[derive(Debug, Default, Serialize, Clone)] #[serde(rename_all = "camelCase")] pub struct DecorationPayload { - installed: String, - latest_matched: String, - latest: String, + pub kind: VersionDecorationKind, + #[serde(skip_serializing_if = "Option::is_none")] + pub installed: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub latest_matched: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub latest: Option, //(ref,commit) - git: Option<(String, String)>, + #[serde(skip_serializing_if = "Option::is_none")] + pub git: Option<(String, String)>, } -pub fn decoration_payload(dep: &Dependency) -> DecorationPayload { - let mut git = None; - let installed = match dep.resolved.as_ref() { - Some(resolved) => { - if resolved.package_id().source_id().is_git() { - git = Some(( - git_ref_str(&resolved.package_id().source_id()).unwrap_or_default(), - commit_str_short(&resolved.package_id().source_id()) - .map_or(String::new(), |c| c.to_string()), - )); - String::new() - } else { - resolved.version().to_string() - } - } - None => "".to_string(), - }; - let latest_matched = match dep.latest_matched_summary.as_ref() { - Some(matched) => matched.version().to_string(), - None => "".to_string(), - }; - let latest = match dep.latest_summary.as_ref() { - Some(latest) => latest.version().to_string(), - None => "".to_string(), +pub fn formatted_string(dep: &Dependency, formatter: &CompiledFormatter) -> Option { + let version = version_decoration(dep); + + let template = match version.kind { + VersionDecorationKind::Git => &formatter.git, + VersionDecorationKind::Latest => &formatter.latest, + VersionDecorationKind::Local => &formatter.local, + VersionDecorationKind::NotInstalled => &formatter.not_installed, + VersionDecorationKind::MixedUpgradeable => &formatter.mixed_upgradeable, + VersionDecorationKind::CompatibleLatest => &formatter.compatible_latest, + VersionDecorationKind::NonCompatibleLatest => &formatter.noncompatible_latest, + VersionDecorationKind::Yanked => &formatter.yanked, + VersionDecorationKind::NotParsed => return None, }; - DecorationPayload { - installed, - latest_matched, - latest, - git, - } -} -pub fn formatted_string(dep: &Dependency, formatter: &DecorationFormatter) -> Option { - let version = version_decoration(dep); - let payload = decoration_payload(dep); - if let Some((r, commit)) = payload.git { - return Some( - formatter - .git - .replace("{{ref}}", &r) - .replace("{{commit}}", &commit), - ); - } - match version { - VersionDecoration::Latest => Some( - formatter - .latest - .replace("{{installed}}", &payload.installed) - .replace("{{latest_matched}}", &payload.latest_matched) - .replace("{{latest}}", &payload.latest), - ), - VersionDecoration::Local => Some( - formatter - .local - .replace("{{installed}}", &payload.installed) - .replace("{{latest_matched}}", &payload.latest_matched) - .replace("{{latest}}", &payload.latest), - ), - VersionDecoration::NotInstalled => Some( - formatter - .not_installed - .replace("{{installed}}", &payload.installed) - .replace("{{latest_matched}}", &payload.latest_matched) - .replace("{{latest}}", &payload.latest), - ), - VersionDecoration::MixedUpgradeable => Some( - formatter - .mixed_upgradeable - .replace("{{installed}}", &payload.installed) - .replace("{{latest_matched}}", &payload.latest_matched) - .replace("{{latest}}", &payload.latest), - ), - VersionDecoration::CompatibleLatest => Some( - formatter - .compatible_latest - .replace("{{installed}}", &payload.installed) - .replace("{{latest_matched}}", &payload.latest_matched) - .replace("{{latest}}", &payload.latest), - ), - VersionDecoration::NoncompatibleLatest => Some( - formatter - .noncompatible_latest - .replace("{{installed}}", &payload.installed) - .replace("{{latest_matched}}", &payload.latest_matched) - .replace("{{latest}}", &payload.latest), - ), - VersionDecoration::Yanked => Some( - formatter - .yanked - .replace("{{installed}}", &payload.installed) - .replace("{{latest_matched}}", &payload.latest_matched) - .replace("{{latest}}", &payload.latest), - ), - _ => None, - } + Some(template.format(&version)) } -pub fn version_decoration(dep: &Dependency) -> VersionDecoration { +pub fn version_decoration(dep: &Dependency) -> DecorationPayload { let Some(unresolved) = dep.unresolved.as_ref() else { - return VersionDecoration::NotParsed; + return DecorationPayload { + kind: VersionDecorationKind::NotParsed, + ..Default::default() + }; + }; + let Some(resolved) = dep.resolved.as_ref() else { + return DecorationPayload { + kind: VersionDecorationKind::NotInstalled, + ..Default::default() + }; }; match unresolved.source_id().kind() { - SourceKind::Path => VersionDecoration::Local, + SourceKind::Path => DecorationPayload { + kind: VersionDecorationKind::Local, + ..Default::default() + }, //TODO idk what's this - SourceKind::Directory => VersionDecoration::Local, + SourceKind::Directory => DecorationPayload { + kind: VersionDecorationKind::Local, + ..Default::default() + }, + SourceKind::Git(_) => { + let mut git = None; + if resolved.package_id().source_id().is_git() { + git = Some(( + git_ref_str(&resolved.package_id().source_id()).unwrap_or_default(), + commit_str_short(&resolved.package_id().source_id()) + .map_or(String::new(), |c| c.to_string()), + )); + }; + DecorationPayload { + kind: VersionDecorationKind::Git, + git, + ..Default::default() + } + } _ => { match ( - dep.resolved.as_ref(), dep.matched_summary.as_ref(), dep.latest_matched_summary.as_ref(), dep.latest_summary.as_ref(), ) { - (Some(_), Some(matched), Some(latest_matched), Some(latest)) => { + (Some(matched), Some(latest_matched), Some(latest)) => { //latest + let mut p = DecorationPayload::default(); if matched.version() == latest_matched.version() && latest_matched.version() == latest.version() { - VersionDecoration::Latest + p.kind = VersionDecorationKind::Latest; } else if matched.version() != latest_matched.version() && latest_matched.version() == latest.version() { - VersionDecoration::CompatibleLatest + p.kind = VersionDecorationKind::CompatibleLatest; } else if matched.version() == latest_matched.version() && latest_matched.version() != latest.version() { - VersionDecoration::NoncompatibleLatest + p.kind = VersionDecorationKind::NonCompatibleLatest; } else { - VersionDecoration::MixedUpgradeable + p.kind = VersionDecorationKind::MixedUpgradeable; } + p.installed = Some(matched.version().clone()); + p.latest = Some(latest.version().clone()); + p.latest_matched = Some(latest_matched.version().clone()); + p } - (Some(_), None, Some(_), Some(_)) => VersionDecoration::Yanked, - (None, _, _, _) => VersionDecoration::NotInstalled, - //TODO get latest version for not installed + (None, Some(latest_matched), Some(latest)) => DecorationPayload { + kind: VersionDecorationKind::Yanked, + installed: Some(resolved.version().clone()), + latest_matched: Some(latest_matched.version().clone()), + latest: Some(latest.version().clone()), + ..Default::default() + }, //TODO any other match arm? _ => unreachable!(), } @@ -269,6 +236,22 @@ pub struct DecorationFormatter { pub git: String, } +impl DecorationFormatter { + pub fn compile(&self) -> CompiledFormatter { + CompiledFormatter { + waiting: CompiledTemplate::new(self.waiting.clone()), + latest: CompiledTemplate::new(self.latest.clone()), + local: CompiledTemplate::new(self.local.clone()), + not_installed: CompiledTemplate::new(self.not_installed.clone()), + mixed_upgradeable: CompiledTemplate::new(self.mixed_upgradeable.clone()), + compatible_latest: CompiledTemplate::new(self.compatible_latest.clone()), + noncompatible_latest: CompiledTemplate::new(self.noncompatible_latest.clone()), + yanked: CompiledTemplate::new(self.yanked.clone()), + git: CompiledTemplate::new(self.git.clone()), + } + } +} + impl Default for DecorationFormatter { fn default() -> Self { Self { @@ -285,6 +268,76 @@ impl Default for DecorationFormatter { } } +#[derive(Debug, Clone, Default)] +pub struct CompiledFormatter { + waiting: CompiledTemplate, + latest: CompiledTemplate, + local: CompiledTemplate, + not_installed: CompiledTemplate, + mixed_upgradeable: CompiledTemplate, + compatible_latest: CompiledTemplate, + noncompatible_latest: CompiledTemplate, + yanked: CompiledTemplate, + git: CompiledTemplate, +} + +#[derive(Debug, Clone, Default)] +struct CompiledTemplate { + template: String, + needs_installed: bool, + needs_latest_matched: bool, + needs_latest: bool, + needs_git_ref: bool, + needs_git_commit: bool, +} + +impl CompiledTemplate { + fn new(template: String) -> Self { + Self { + needs_installed: template.contains("{{installed}}"), + needs_latest_matched: template.contains("{{latest_matched}}"), + needs_latest: template.contains("{{latest}}"), + needs_git_ref: template.contains("{{ref}}"), + needs_git_commit: template.contains("{{commit}}"), + template, + } + } + + fn template(&self) -> &str { + &self.template + } + + fn format(&self, version: &DecorationPayload) -> String { + let mut result = self.template.clone(); + + if self.needs_installed && version.installed.is_some() { + result = result.replace( + "{{installed}}", + &version.installed.as_ref().unwrap().to_string(), + ); + } + if self.needs_latest_matched && version.latest_matched.is_some() { + result = result.replace( + "{{latest_matched}}", + &version.latest_matched.as_ref().unwrap().to_string(), + ); + } + if self.needs_latest && version.latest.is_some() { + result = result.replace("{{latest}}", &version.latest.as_ref().unwrap().to_string()); + } + if let Some((ref_str, commit)) = version.git.as_ref() { + if self.needs_git_ref { + result = result.replace("{{ref}}", ref_str); + } + if self.needs_git_commit { + result = result.replace("{{commit}}", commit); + } + } + + result + } +} + fn default_latest() -> String { "✅ {{installed}}".to_string() } diff --git a/src/decoration/inlay_hint.rs b/src/decoration/inlay_hint.rs index f9e7391..afef908 100644 --- a/src/decoration/inlay_hint.rs +++ b/src/decoration/inlay_hint.rs @@ -47,9 +47,9 @@ mod inlay_hint_decoration_state { } } - pub fn reset(state: &RwLock) { + pub fn reset(state: &RwLock, uri: &Uri) { let mut state = state.write(); - state.clear(); + state.remove(uri); } pub fn list(state: &RwLock, uri: &Uri) -> Vec { @@ -100,9 +100,9 @@ impl InlayHintDecoration { value: GLOBAL_CONFIG .read() .unwrap() - .renderer .decoration_formatter .waiting + .template() .to_string(), tooltip: None, location: None, @@ -120,13 +120,12 @@ impl InlayHintDecoration { DecorationEvent::DependencyRemove(path, id) => { inlay_hint_decoration_state::remove(&state, &path, &id); } - DecorationEvent::Reset => { - inlay_hint_decoration_state::reset(&state); + DecorationEvent::Reset(uri) => { + inlay_hint_decoration_state::reset(&state, &uri); } DecorationEvent::Dependency(path, id, range, p) => { let config = GLOBAL_CONFIG.read().unwrap(); - let Some(decoration) = - formatted_string(&p, &config.renderer.decoration_formatter) + let Some(decoration) = formatted_string(&p, &config.decoration_formatter) else { continue; }; @@ -157,8 +156,8 @@ impl InlayHintDecoration { inlay_hint_decoration_state::remove(&self.hints, uri, id); } - pub fn reset(&mut self) { - inlay_hint_decoration_state::reset(&self.hints); + pub fn reset(&mut self, uri: &Uri) { + inlay_hint_decoration_state::reset(&self.hints, uri); } } diff --git a/src/main.rs b/src/main.rs index e389ae7..3656f12 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ use clap::{arg, command, Parser}; -use config::{initialize_config, Config}; +use config::{initialize_config, UserConfig}; use controller::{Appraiser, CargoDocumentEvent, CargoTomlPayload, ClientCapability}; use decoration::{DecorationRenderer, Renderer}; use entity::{supported_commands, CARGO}; @@ -28,7 +28,7 @@ struct CargoAppraiser { impl LanguageServer for CargoAppraiser { async fn initialize(&self, params: InitializeParams) -> Result { //init config - let config: Config = params + let config: UserConfig = params .initialization_options .map(serde_json::from_value) .and_then(|v| v.ok()) diff --git a/src/usecase/workspace.rs b/src/usecase/workspace.rs index 213e020..4747685 100644 --- a/src/usecase/workspace.rs +++ b/src/usecase/workspace.rs @@ -66,14 +66,14 @@ impl Workspace { let doc = entry.into_mut(); if !diff.is_empty() { doc.reconsile(new_doc, &diff); - doc.populate_dependencies(); + // doc.populate_dependencies(); } Ok((doc, diff)) } Entry::Vacant(entry) => { let diff = Document::diff(None, &new_doc); new_doc.self_reconsile(&diff); - new_doc.populate_dependencies(); + // new_doc.populate_dependencies(); let doc = entry.insert(new_doc); Ok((doc, diff)) }