From c7997c23bc49ee802624d67f0485df4d0e5533fa Mon Sep 17 00:00:00 2001 From: Rahul Kumar Date: Tue, 9 Sep 2025 12:05:04 -0700 Subject: [PATCH 01/28] feat(examples): update StrongARM sizings --- Cargo.lock | 1176 ++++++++++++------ examples/latest/strongarm/Cargo.toml | 3 + examples/latest/strongarm/src/tb/mod.rs | 22 +- examples/latest/strongarm/src/tech/sky130.rs | 208 +++- tools/spectre/src/analysis/tran.rs | 8 +- 5 files changed, 1039 insertions(+), 378 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aea4b6569..72240b3f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "ahash" @@ -23,21 +23,21 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -49,12 +49,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -66,9 +60,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -81,44 +75,44 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", - "once_cell", - "windows-sys 0.59.0", + "once_cell_polyfill", + "windows-sys 0.60.2", ] [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "aph_disjoint_set" @@ -173,13 +167,13 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -213,15 +207,15 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de45108900e1f9b9242f7f2e254aa3e2c029c921c258fe9e6b4217eeebd54288" +checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" dependencies = [ "axum-core", "bytes", @@ -268,16 +262,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "instant", "rand", ] [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", "cfg-if", @@ -285,7 +279,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -302,9 +296,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" [[package]] name = "bitvec" @@ -347,7 +341,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -362,9 +356,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytecheck" @@ -388,6 +382,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "bytemuck" +version = "1.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" + [[package]] name = "byteorder" version = "1.5.0" @@ -437,10 +437,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.19" +version = "1.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" +checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" dependencies = [ + "find-msvc-tools", "shlex", ] @@ -457,9 +458,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -469,17 +470,16 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.0", ] [[package]] @@ -506,9 +506,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.37" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", "clap_derive", @@ -516,9 +516,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.37" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -528,21 +528,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.32" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "codegen" @@ -561,7 +561,7 @@ dependencies = [ "scir", "snippets", "substrate", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -579,11 +579,17 @@ dependencies = [ "substrate", ] +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "config" @@ -595,7 +601,7 @@ dependencies = [ "log", "serde", "toml", - "toml_edit 0.22.24", + "toml_edit 0.22.27", "windows-sys 0.59.0", ] @@ -617,12 +623,58 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core-graphics" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "core-text" +version = "20.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5" +dependencies = [ + "core-foundation", + "core-graphics", + "foreign-types", + "libc", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -632,6 +684,15 @@ dependencies = [ "libc", ] +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -697,7 +758,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -708,7 +769,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -720,18 +781,18 @@ dependencies = [ "proc-macro2", "quote", "semver", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] name = "derive-where" -version = "1.3.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2364b9aa47e460ce9bca6ac1777d14c98eef7e274eb077beed49f3adc94183ed" +checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -752,7 +813,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -762,7 +823,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -783,15 +844,15 @@ dependencies = [ "convert_case 0.7.1", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", "unicode-xid", ] [[package]] name = "deunicode" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc55fe0d1f6c107595572ec8b107c0999bb1a2e0b75e37429a4fb0d6474a0e7d" +checksum = "abd57806937c9cc163efc8ea3910e00a62e2aeb0b8119f1793a978088f8f6b04" [[package]] name = "diagnostics" @@ -811,11 +872,41 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.0", +] + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading", +] + [[package]] name = "downcast-rs" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea8a8b81cacc08888170eef4d13b775126db426d0b348bee9d18c2c1eaf123cf" +checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" [[package]] name = "duplicate" @@ -828,6 +919,18 @@ dependencies = [ "proc-macro2-diagnostics", ] +[[package]] +name = "dwrote" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c93d234bac0cdd0e2ac08bc8a5133f8df2169e95b262dfcea5e5cb7855672f" +dependencies = [ + "lazy_static", + "libc", + "winapi", + "wio", +] + [[package]] name = "either" version = "1.15.0" @@ -860,7 +963,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -892,12 +995,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -922,12 +1025,37 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" + [[package]] name = "fixedbitset" version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "flate2" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "flexbuffers" version = "25.2.10" @@ -941,6 +1069,12 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "float-ord" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce81f49ae8a0482e4c55ea62ebbd7e5a686af544c00b9d090bba3ff9be97b3d" + [[package]] name = "float_eq" version = "1.0.1" @@ -953,6 +1087,69 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "font-kit" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c7e611d49285d4c4b2e1727b72cf05353558885cc5252f93707b845dfcaf3d3" +dependencies = [ + "bitflags 2.9.4", + "byteorder", + "core-foundation", + "core-graphics", + "core-text", + "dirs", + "dwrote", + "float-ord", + "freetype-sys", + "lazy_static", + "libc", + "log", + "pathfinder_geometry", + "pathfinder_simd", + "walkdir", + "winapi", + "yeslogic-fontconfig-sys", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "freetype-sys" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7edc5b9669349acfda99533e9e0bcf26a51862ab43b08ee7745c55d28eb134" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + [[package]] name = "fs4" version = "0.12.0" @@ -993,7 +1190,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -1085,30 +1282,40 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", ] [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.4+wasi-0.2.4", +] + +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", ] [[package]] @@ -1126,8 +1333,8 @@ dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata", + "regex-syntax", ] [[package]] @@ -1136,7 +1343,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.4", "ignore", "walkdir", ] @@ -1152,9 +1359,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75249d144030531f8dee69fe9cea04d3edf809a017ae445e2abdff6629e86633" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -1184,14 +1391,14 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", ] [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" [[package]] name = "hashlink" @@ -1271,13 +1478,14 @@ dependencies = [ [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http", "http-body", @@ -1285,6 +1493,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -1305,19 +1514,20 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", "hyper", "libc", "pin-project-lite", - "socket2", + "socket2 0.6.0", "tokio", "tower-service", "tracing", @@ -1363,12 +1573,26 @@ dependencies = [ "globset", "log", "memchr", - "regex-automata 0.4.9", + "regex-automata", "same-file", "walkdir", "winapi-util", ] +[[package]] +name = "image" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "jpeg-decoder", + "num-traits", + "png", +] + [[package]] name = "impl-trait-for-tuples" version = "0.2.3" @@ -1377,17 +1601,17 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] name = "indexmap" -version = "2.9.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.15.5", "serde", ] @@ -1409,6 +1633,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "io-uring" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "libc", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1430,11 +1665,17 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jpeg-decoder" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" + [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -1476,15 +1717,35 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.172" +version = "0.2.175" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" + +[[package]] +name = "libloading" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" +dependencies = [ + "cfg-if", + "windows-targets 0.53.3", +] [[package]] name = "libm" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + +[[package]] +name = "libredox" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +dependencies = [ + "bitflags 2.9.4", + "libc", +] [[package]] name = "libsqlite3-sys" @@ -1505,15 +1766,15 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "macrotools" @@ -1522,7 +1783,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -1551,11 +1812,11 @@ dependencies = [ [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -1566,9 +1827,9 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "mime" @@ -1578,29 +1839,30 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] name = "multimap" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "netgen" @@ -1647,12 +1909,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "overload", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -1698,7 +1959,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -1790,10 +2051,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] -name = "overload" -version = "0.1.1" +name = "once_cell_polyfill" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "parse-zoneinfo" @@ -1828,6 +2095,25 @@ dependencies = [ "once_cell", ] +[[package]] +name = "pathfinder_geometry" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3" +dependencies = [ + "log", + "pathfinder_simd", +] + +[[package]] +name = "pathfinder_simd" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf9027960355bf3afff9841918474a81a5f972ac6d226d518060bba758b5ad57" +dependencies = [ + "rustc_version", +] + [[package]] name = "pathfinding" version = "4.14.0" @@ -1859,15 +2145,15 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" +checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", "thiserror", @@ -1876,9 +2162,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" +checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" dependencies = [ "pest", "pest_generator", @@ -1886,24 +2172,23 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" +checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] name = "pest_meta" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" +checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" dependencies = [ - "once_cell", "pest", "sha2", ] @@ -1973,7 +2258,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -1994,23 +2279,82 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "plotters" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" +dependencies = [ + "chrono", + "font-kit", + "image", + "lazy_static", + "num-traits", + "pathfinder_geometry", + "plotters-backend", + "plotters-bitmap", + "plotters-svg", + "ttf-parser", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" + +[[package]] +name = "plotters-bitmap" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ce181e3f6bf82d6c1dc569103ca7b1bd964c60ba03d7e6cdfbb3e3eb7f7405" +dependencies = [ + "gif", + "image", + "plotters-backend", +] + +[[package]] +name = "plotters-svg" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + [[package]] name = "ppv-lite86" version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.24", + "zerocopy", ] [[package]] name = "prettyplease" -version = "0.2.32" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -2029,7 +2373,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "toml_edit 0.22.24", + "toml_edit 0.22.27", ] [[package]] @@ -2058,9 +2402,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -2073,7 +2417,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", "version_check", "yansi", ] @@ -2104,7 +2448,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.100", + "syn 2.0.106", "tempfile", ] @@ -2118,7 +2462,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -2190,9 +2534,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "radium" @@ -2227,52 +2571,48 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", ] [[package]] -name = "regex" -version = "1.11.1" +name = "redox_users" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "getrandom 0.2.16", + "libredox", + "thiserror", ] [[package]] -name = "regex-automata" -version = "0.1.10" +name = "regex" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ - "regex-syntax 0.6.29", + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "rend" @@ -2337,7 +2677,7 @@ version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.4", "fallible-iterator", "fallible-streaming-iterator", "hashlink", @@ -2347,9 +2687,9 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.37.1" +version = "1.37.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa7de2ba56ac291bd90c6b9bece784a52ae1411f9506544b3eae36dd2356d50" +checksum = "b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d" dependencies = [ "arrayvec", "borsh", @@ -2368,14 +2708,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6268b74858287e1a062271b988a0c534bf85bbeb567fe09331bf40ed78113d5" dependencies = [ "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -2389,13 +2729,22 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + [[package]] name = "rustix" version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.4.15", @@ -2404,22 +2753,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.5" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.59.0", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.0", ] [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -2482,14 +2831,14 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "itoa", "memchr", @@ -2499,9 +2848,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -2521,9 +2870,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -2547,13 +2896,19 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.2" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + [[package]] name = "simdutf8" version = "0.1.5" @@ -2635,12 +2990,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "slotmap" @@ -2663,9 +3015,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "smawk" @@ -2683,14 +3035,24 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "spectre" version = "0.11.2" @@ -2779,6 +3141,7 @@ dependencies = [ "itertools", "layir", "pegasus", + "plotters", "quantus", "rust_decimal", "rust_decimal_macros", @@ -2859,9 +3222,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.100" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -2882,15 +3245,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.19.1" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" dependencies = [ "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.3", "once_cell", - "rustix 1.0.5", - "windows-sys 0.59.0", + "rustix 1.1.2", + "windows-sys 0.61.0", ] [[package]] @@ -2917,9 +3280,9 @@ dependencies = [ [[package]] name = "test-log" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f46083d221181166e5b6f6b1e5f1d499f3a76888826e6cb1d057554157cd0f" +checksum = "1e33b98a582ea0be1168eba097538ee8dd4bbe0f2b01b22ac92ea30054e5be7b" dependencies = [ "env_logger", "test-log-macros", @@ -2928,13 +3291,13 @@ dependencies = [ [[package]] name = "test-log-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "888d0c3c6db53c0fdab160d2ed5e12ba745383d3e85813f2ea0f2b1475ab553f" +checksum = "451b374529930d7601b1eef8d32bc79ae870b6079b069401709c2a8bf9e75f36" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -2950,39 +3313,38 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -2995,19 +3357,21 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.2" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "pin-project-lite", "signal-hook-registry", - "socket2", + "slab", + "socket2 0.6.0", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3018,7 +3382,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -3045,9 +3409,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.14" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -3058,21 +3422,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.20" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.24", + "toml_edit 0.22.27", ] [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] @@ -3090,22 +3454,29 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow 0.7.6", + "toml_write", + "winnow 0.7.13", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tonic" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85839f0b32fd242bb3209262371d07feda6d780d16ee9d2bc88581b89da1549b" +checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" dependencies = [ "async-trait", "axum", @@ -3121,7 +3492,7 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "socket2", + "socket2 0.5.10", "tokio", "tokio-stream", "tower", @@ -3132,16 +3503,16 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d85f0383fadd15609306383a90e85eaed44169f931a5d2be1b42c76ceff1825e" +checksum = "eac6f67be712d12f0b41328db3137e0d0757645d8904b4cb7d51cd9c2279e847" dependencies = [ "prettyplease", "proc-macro2", "prost-build", "prost-types", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -3188,20 +3559,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -3220,14 +3591,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", @@ -3242,6 +3613,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "ttf-parser" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" + [[package]] name = "type_dispatch" version = "0.5.1" @@ -3258,7 +3635,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", "type_dispatch", ] @@ -3350,9 +3727,9 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" [[package]] name = "unicode-xid" @@ -3382,9 +3759,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.16.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "valuable" @@ -3453,50 +3834,51 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.4+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3504,26 +3886,42 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] +[[package]] +name = "web-sys" +version = "0.3.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "weezl" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" + [[package]] name = "winapi" version = "0.3.9" @@ -3542,11 +3940,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -3557,13 +3955,13 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.61.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-link", + "windows-link 0.1.3", "windows-result", "windows-strings", ] @@ -3576,7 +3974,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] @@ -3587,31 +3985,37 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" [[package]] name = "windows-result" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] name = "windows-strings" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -3620,7 +4024,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -3629,7 +4033,25 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", ] [[package]] @@ -3638,14 +4060,31 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link 0.1.3", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -3654,48 +4093,96 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" version = "0.5.40" @@ -3707,22 +4194,28 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.6" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wio" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" dependencies = [ - "bitflags 2.9.0", + "winapi", ] +[[package]] +name = "wit-bindgen" +version = "0.45.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" + [[package]] name = "wyz" version = "0.5.1" @@ -3739,41 +4232,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] -name = "zerocopy" -version = "0.7.35" +name = "yeslogic-fontconfig-sys" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "503a066b4c037c440169d995b869046827dbc71263f6e8f3be6d77d4f3229dbd" dependencies = [ - "zerocopy-derive 0.7.35", + "dlib", + "once_cell", + "pkg-config", ] [[package]] name = "zerocopy" -version = "0.8.24" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ - "zerocopy-derive 0.8.24", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.24" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.106", ] diff --git a/examples/latest/strongarm/Cargo.toml b/examples/latest/strongarm/Cargo.toml index 8c19f0f95..6b4f67eeb 100644 --- a/examples/latest/strongarm/Cargo.toml +++ b/examples/latest/strongarm/Cargo.toml @@ -24,3 +24,6 @@ itertools = "0.14" spectre = { version = "0.11.2", registry = "substrate", path = "../../../tools/spectre" } quantus = { version = "0.2.2", registry = "substrate", path = "../../../tools/quantus" } pegasus = { version = "0.2.1", registry = "substrate", path = "../../../tools/pegasus" } + +[dev-dependencies] +plotters = "0.3" diff --git a/examples/latest/strongarm/src/tb/mod.rs b/examples/latest/strongarm/src/tb/mod.rs index 26a72f217..23964cc06 100644 --- a/examples/latest/strongarm/src/tb/mod.rs +++ b/examples/latest/strongarm/src/tb/mod.rs @@ -4,7 +4,7 @@ use approx::abs_diff_eq; use rust_decimal::prelude::ToPrimitive; use rust_decimal::Decimal; use rust_decimal_macros::dec; -use spectre::analysis::tran::Tran; +use spectre::analysis::tran::{OutputWaveform, Tran}; use spectre::blocks::{Pulse, Vsource}; use spectre::{ErrPreset, Spectre}; use std::any::Any; @@ -122,7 +122,7 @@ where val1, period: Some(dec!(1000)), width: Some(dec!(100)), - delay: Some(dec!(10e-9)), + delay: Some(dec!(1e-12)), rise: Some(dec!(100e-12)), fall: Some(dec!(100e-12)), })); @@ -172,12 +172,18 @@ pub enum ComparatorDecision { Pos, } +pub struct StrongArmTranTbOutput { + pub decision: Option, + pub vop: OutputWaveform, + pub von: OutputWaveform, +} + impl + Copy> StrongArmTranTb where StrongArmTranTb: Block + Schematic, { - pub fn run(&self, sim: SimController) -> Option { + pub fn run(&self, sim: SimController) -> StrongArmTranTbOutput { let mut opts = spectre::Options::default(); sim.set_option(self.pvt.corner, &mut opts); sim.set_option(Temperature::from(self.pvt.temp), &mut opts); @@ -198,7 +204,9 @@ where let vdd = self.pvt.voltage.to_f64().unwrap(); let epsilon = vdd * 0.05; - if abs_diff_eq!(von, 0.0, epsilon = epsilon) && abs_diff_eq!(vop, vdd, epsilon = epsilon) { + let decision = if abs_diff_eq!(von, 0.0, epsilon = epsilon) + && abs_diff_eq!(vop, vdd, epsilon = epsilon) + { Some(ComparatorDecision::Pos) } else if abs_diff_eq!(von, vdd, epsilon = epsilon) && abs_diff_eq!(vop, 0.0, epsilon = epsilon) @@ -206,6 +214,12 @@ where Some(ComparatorDecision::Neg) } else { None + }; + + StrongArmTranTbOutput { + decision, + vop: wav.vop, + von: wav.von, } } } diff --git a/examples/latest/strongarm/src/tech/sky130.rs b/examples/latest/strongarm/src/tech/sky130.rs index 6a1ba4ee8..f792a4e53 100644 --- a/examples/latest/strongarm/src/tech/sky130.rs +++ b/examples/latest/strongarm/src/tech/sky130.rs @@ -275,7 +275,7 @@ impl Tile for TapTile { #[cfg(test)] mod tests { - use crate::tb::{ComparatorDecision, StrongArmTranTb}; + use crate::tb::{ComparatorDecision, StrongArmTranTb, StrongArmTranTbOutput}; use crate::tech::sky130::Sky130Impl; use crate::tiles::MosKind; use crate::{InputKind, StrongArm, StrongArmParams}; @@ -297,6 +297,7 @@ mod tests { use std::sync::Arc; use substrate::context::Context; use substrate::geometry::dir::Dir; + use substrate::simulation::waveform::TimeWaveform; use substrate::simulation::Pvt; use substrate::{block::Block, schematic::ConvertSchema}; @@ -328,39 +329,23 @@ mod tests { nmos_kind: MosKind::Nom, pmos_kind: MosKind::Nom, half_tail_w: 8_192, - input_pair_w: 2_048, - inv_input_w: 8_192, - inv_precharge_w: 4096, - precharge_w: 2_048, + input_pair_w: 8_192, + inv_input_w: 2_048, + inv_precharge_w: 1_024, + precharge_w: 1_024, input_kind: InputKind::P, h_max: 40_000, dir: Dir::Vert, }; pub const STRONGARM_PARAMS_2: StrongArmParams = StrongArmParams { - nmos_kind: MosKind::Nom, - pmos_kind: MosKind::Nom, - half_tail_w: 8_192, - input_pair_w: 2_048, - inv_input_w: 8_192, - inv_precharge_w: 4096, - precharge_w: 2_048, - input_kind: InputKind::P, h_max: 20_000, - dir: Dir::Vert, + ..STRONGARM_PARAMS_1 }; pub const STRONGARM_PARAMS_3: StrongArmParams = StrongArmParams { - nmos_kind: MosKind::Nom, - pmos_kind: MosKind::Nom, - half_tail_w: 8_192, - input_pair_w: 2_048, - inv_input_w: 8_192, - inv_precharge_w: 4096, - precharge_w: 2_048, - input_kind: InputKind::P, - h_max: 15_000, - dir: Dir::Vert, + h_max: 10_000, + ..STRONGARM_PARAMS_1 }; pub const STRONGARM_PARAMS_4: StrongArmParams = StrongArmParams { @@ -389,6 +374,7 @@ mod tests { dir: Dir::Horiz, }; + /// This does not work in extracted simulation. pub const STRONGARM_PARAMS_6: StrongArmParams = StrongArmParams { nmos_kind: MosKind::Nom, pmos_kind: MosKind::Nom, @@ -540,7 +526,9 @@ mod tests { let sim = ctx .get_sim_controller(tb.clone(), work_dir) .expect("failed to get sim controller"); - tb.run(sim).expect("comparator output did not rail") + tb.run(sim) + .decision + .expect("comparator output did not rail") } else { let tb = StrongArmTranTb::new( ConvertSchema::<_, Sky130CdsSchema>::new(dut), @@ -552,7 +540,9 @@ mod tests { let sim = ctx .get_sim_controller(tb.clone(), work_dir) .expect("failed to get sim controller"); - tb.run(sim).expect("comparator output did not rail") + tb.run(sim) + .decision + .expect("comparator output did not rail") }; assert_eq!( decision, @@ -567,6 +557,75 @@ mod tests { } } + /// Tests the StrongARM for a single pair of (vinp, vinn) voltages. + fn test_strongarm_single( + work_dir: impl AsRef, + extracted: bool, + params: StrongArmParams, + corner: Sky130Corner, + vinp: Decimal, + vinn: Decimal, + ) -> StrongArmTranTbOutput { + let work_dir = work_dir.as_ref(); + let dut = TileWrapper::new(StrongArm::::new(params)); + let pvt = Pvt { + corner, + voltage: dec!(1.8), + temp: dec!(25.0), + }; + let ctx = sky130_cds_ctx(); + + let output = if extracted { + let layout_path = work_dir.join("layout.gds"); + ctx.write_layout(dut, to_gds, &layout_path) + .expect("failed to write layout"); + let tb = StrongArmTranTb::new( + Pex { + schematic: Arc::new(ConvertSchema::new( + ConvertSchema::<_, Sky130CdsSchema>::new(dut), + )), + gds_path: work_dir.join("layout.gds"), + layout_cell_name: dut.name(), + work_dir: work_dir.join("pex"), + lvs_rules_dir: PathBuf::from(SKY130_LVS), + lvs_rules_path: PathBuf::from(SKY130_LVS_RULES_PATH), + technology_dir: PathBuf::from(SKY130_TECHNOLOGY_DIR), + }, + vinp, + vinn, + params.input_kind.is_p(), + pvt, + ); + let sim = ctx + .get_sim_controller(tb.clone(), work_dir) + .expect("failed to get sim controller"); + tb.run(sim) + } else { + let tb = StrongArmTranTb::new( + ConvertSchema::<_, Sky130CdsSchema>::new(dut), + vinp, + vinn, + params.input_kind.is_p(), + pvt, + ); + let sim = ctx + .get_sim_controller(tb.clone(), work_dir) + .expect("failed to get sim controller"); + tb.run(sim) + }; + let decision = output.decision.expect("comparator output did not rail"); + assert_eq!( + decision, + if vinp > vinn { + ComparatorDecision::Pos + } else { + ComparatorDecision::Neg + }, + "comparator produced incorrect decision" + ); + output + } + #[test] fn sky130_strongarm_schematic_sim() { let work_dir = concat!( @@ -586,6 +645,103 @@ mod tests { test_strongarm(work_dir, true); } + #[test] + #[ignore = "long"] + fn sky130_strongarm_extracted_sizing_sweep() { + use plotters::prelude::*; + let work_dir = PathBuf::from(concat!( + env!("CARGO_MANIFEST_DIR"), + "/build/sky130_strongarm_extracted_sizing_sweep" + )); + let plot_file = work_dir.join("plot.png"); + let root = BitMapBackend::new(&plot_file, (1280, 960)).into_drawing_area(); + root.fill(&WHITE).unwrap(); + let mut chart = ChartBuilder::on(&root) + .margin(50) + .build_cartesian_2d(-0f32..2.5e-9f32, -0.2f32..2f32) + .unwrap(); + + chart + .configure_mesh() + .x_desc("Time (ns)") + .x_label_style(("sans-serif", 32).into_font()) + .x_label_formatter(&|x| format!("{:.1}", x * 1e9f32)) + .y_desc("Output Voltage (V)") + .y_label_style(("sans-serif", 32).into_font()) + .draw() + .unwrap(); + + let colors = [ + full_palette::RED_500, + full_palette::PURPLE_500, + full_palette::BLUE_500, + full_palette::GREEN_500, + full_palette::ORANGE_500, + full_palette::BROWN_500, + full_palette::BLUEGREY_500, + ]; + let duts = [ + STRONGARM_PARAMS_3, + STRONGARM_PARAMS_2, + STRONGARM_PARAMS_1, + STRONGARM_PARAMS_11, + STRONGARM_PARAMS_10, + // STRONGARM_PARAMS_5, + ]; + for (i, dut) in duts.iter().enumerate() { + println!("evaluating dut {i}"); + let color = colors[i % colors.len()]; + let data = test_strongarm_single( + work_dir.join(format!("dut{i}_tt")), + true, + *dut, + Sky130Corner::Tt, + dec!(0.92), + dec!(0.88), + ); + if i < 5 { + chart + .draw_series(LineSeries::new( + data.vop + .values() + .zip(data.von.values()) + .map(|(p, n)| (p.t() as f32, (p.x() - n.x()) as f32)), + ShapeStyle { + color: color.into(), + filled: true, + stroke_width: 5, + }, + )) + .unwrap() + .label(format!("Design {}", i + 1)) + .legend(move |(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], color)); + } + // for extra_corner in [ + // Sky130Corner::Ss, + // Sky130Corner::Ff, + // Sky130Corner::Sf, + // Sky130Corner::Fs, + // ] { + // test_strongarm_single( + // work_dir.join(format!("dut{i}_{}", extra_corner.name())), + // true, + // *dut, + // extra_corner, + // dec!(0.92), + // dec!(0.88), + // ); + // } + } + chart + .configure_series_labels() + .background_style(&WHITE.mix(0.8)) + .border_style(&BLACK) + .draw() + .unwrap(); + + root.present().unwrap(); + } + fn test_sky130_strongarm_lvs(test_name: &'static str, params: StrongArmParams) { let work_dir = PathBuf::from(concat!(env!("CARGO_MANIFEST_DIR"), "/build")).join(test_name); let gds_path = work_dir.join("layout.gds"); diff --git a/tools/spectre/src/analysis/tran.rs b/tools/spectre/src/analysis/tran.rs index 8d7b61aae..9964b0ebe 100644 --- a/tools/spectre/src/analysis/tran.rs +++ b/tools/spectre/src/analysis/tran.rs @@ -171,12 +171,16 @@ impl Save for RawNestedNode { output: &::Output, key: &>::SaveKey, ) -> >::Saved { + let name = output + .saved_values + .get(&key.0) + .expect("failed to retrieve name corresponding to saved key"); OutputWaveform { t: output.time.clone(), x: output .raw_values - .get(output.saved_values.get(&key.0).unwrap()) - .unwrap() + .get(name.as_str()) + .expect(&format!("no value for {name} found")) .clone(), } } From 67dccab637e2e3031f76bf61936f63b6e70fb294 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Fri, 19 Dec 2025 14:32:24 -0800 Subject: [PATCH 02/28] add tclkq to comparator decision and update to Rust 2024 --- bins/cdl2spice/Cargo.toml | 2 +- bins/sky130spconv/Cargo.toml | 2 +- bins/spicemerge/Cargo.toml | 2 +- codegen/Cargo.toml | 2 +- config/Cargo.toml | 2 +- config/src/raw/mod.rs | 10 +-- config/src/raw/path.rs | 44 +--------- docs/snippets/Cargo.toml | 2 +- examples/Cargo.toml | 2 +- examples/latest/colbuf/Cargo.toml | 2 +- examples/latest/sky130_inverter/Cargo.toml | 2 +- examples/latest/spice_vdivider/Cargo.toml | 2 +- examples/latest/strongarm/Cargo.toml | 2 +- examples/latest/strongarm/src/tb/mod.rs | 23 +++++- examples/latest/strongarm/src/tech/sky130.rs | 46 +++++++---- .../latest/substrate_api_examples/Cargo.toml | 2 +- examples/latest/vdivider/Cargo.toml | 2 +- examples/latest/via/Cargo.toml | 2 +- examples/release/colbuf/Cargo.toml | 2 +- examples/release/sky130_inverter/Cargo.toml | 2 +- examples/release/spice_vdivider/Cargo.toml | 2 +- .../release/substrate_api_examples/Cargo.toml | 2 +- examples/release/vdivider/Cargo.toml | 2 +- examples/release/via/Cargo.toml | 2 +- libs/atoll/Cargo.toml | 2 +- libs/cache/Cargo.toml | 2 +- libs/cache/src/lib.rs | 4 +- libs/diagnostics/Cargo.toml | 2 +- libs/enumify/Cargo.toml | 2 +- libs/enumify_macros/Cargo.toml | 2 +- libs/enumify_macros/src/impls.rs | 25 ++---- libs/gds/Cargo.toml | 2 +- libs/gdsconv/Cargo.toml | 2 +- libs/gdsconv/src/import.rs | 20 ++--- libs/geometry/Cargo.toml | 2 +- libs/geometry/src/rect.rs | 2 +- libs/geometry_macros/Cargo.toml | 2 +- libs/layir/Cargo.toml | 2 +- libs/lefdef/Cargo.toml | 2 +- libs/macrotools/Cargo.toml | 2 +- libs/macrotools/src/lib.rs | 82 +++++++------------ libs/nutlex/Cargo.toml | 2 +- libs/nutlex/src/parser/mod.rs | 8 +- libs/pathtree/Cargo.toml | 2 +- libs/psfparser/Cargo.toml | 2 +- libs/psfparser/src/binary/ast.rs | 8 +- libs/scir/Cargo.toml | 2 +- libs/spice/Cargo.toml | 2 +- libs/spice/src/parser/mod.rs | 10 +-- libs/spice/src/parser/shorts.rs | 4 +- libs/type_dispatch/Cargo.toml | 2 +- libs/type_dispatch_macros/Cargo.toml | 2 +- libs/uniquify/Cargo.toml | 2 +- libs/verilog/Cargo.toml | 2 +- pdks/sky130/Cargo.toml | 2 +- rust-toolchain.toml | 2 +- substrate/Cargo.toml | 2 +- substrate/src/types/schematic.rs | 2 +- tools/magic/Cargo.toml | 2 +- tools/magic_netgen/Cargo.toml | 2 +- tools/netgen/Cargo.toml | 2 +- tools/ngspice/Cargo.toml | 2 +- tools/pegasus/Cargo.toml | 2 +- tools/quantus/Cargo.toml | 2 +- tools/spectre/Cargo.toml | 2 +- 65 files changed, 169 insertions(+), 221 deletions(-) diff --git a/bins/cdl2spice/Cargo.toml b/bins/cdl2spice/Cargo.toml index d62632f64..ef6b65e99 100644 --- a/bins/cdl2spice/Cargo.toml +++ b/bins/cdl2spice/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cdl2spice" version = "0.2.2" -edition = "2021" +edition = "2024" [dependencies] anyhow = "1" diff --git a/bins/sky130spconv/Cargo.toml b/bins/sky130spconv/Cargo.toml index ee136c5ce..bd01c95c4 100644 --- a/bins/sky130spconv/Cargo.toml +++ b/bins/sky130spconv/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "sky130spconv" version = "0.1.0" -edition = "2021" +edition = "2024" readme = "README.md" [dependencies] diff --git a/bins/spicemerge/Cargo.toml b/bins/spicemerge/Cargo.toml index 5de987efa..09c545c0f 100644 --- a/bins/spicemerge/Cargo.toml +++ b/bins/spicemerge/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "spicemerge" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] anyhow = "1" diff --git a/codegen/Cargo.toml b/codegen/Cargo.toml index 91ce69689..a6a6cc315 100644 --- a/codegen/Cargo.toml +++ b/codegen/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "codegen" version = "0.10.2" -edition = "2021" +edition = "2024" [dependencies] darling = "0.20" diff --git a/config/Cargo.toml b/config/Cargo.toml index d07b9d248..67576e4c4 100644 --- a/config/Cargo.toml +++ b/config/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "config" version = "0.4.1" -edition = "2021" +edition = "2024" [dependencies] anyhow = "1" diff --git a/config/src/raw/mod.rs b/config/src/raw/mod.rs index 88d2902cf..88e425d69 100644 --- a/config/src/raw/mod.rs +++ b/config/src/raw/mod.rs @@ -62,7 +62,7 @@ use anyhow::Result; use self::ConfigValue as CV; use crate::paths; -use anyhow::{anyhow, bail, Context as _}; +use anyhow::{Context as _, anyhow, bail}; use lazycell::LazyCell; use serde::Deserialize; @@ -1018,11 +1018,3 @@ impl StringList { &self.0 } } - -/// StringList automatically merges config values with environment values, -/// this instead follows the precedence rules, so that eg. a string list found -/// in the environment will be used instead of one in a config file. -/// -/// This is currently only used by `PathAndArgs` -#[derive(Debug, Deserialize)] -pub(crate) struct UnmergedStringList(Vec); diff --git a/config/src/raw/path.rs b/config/src/raw/path.rs index 602ead4c7..23223d5a3 100644 --- a/config/src/raw/path.rs +++ b/config/src/raw/path.rs @@ -5,8 +5,8 @@ // Based on Cargo's [`config` module](https://github.com/rust-lang/cargo/tree/master/src/cargo/util/config) // with substantial modifications. -use super::{RawConfig, UnmergedStringList, Value}; -use serde::{de::Error, Deserialize}; +use super::{RawConfig, Value}; +use serde::Deserialize; use std::path::PathBuf; /// Use with the `get` API to fetch a string that will be converted to a @@ -48,43 +48,3 @@ impl ConfigRelativePath { config.string_to_path(&self.0.val, &self.0.definition) } } - -/// A config type that is a program to run. -/// -/// This supports a list of strings like `['/path/to/program', 'somearg']` -/// or a space separated string like `'/path/to/program somearg'`. -/// -/// This expects the first value to be the path to the program to run. -/// Subsequent values are strings of arguments to pass to the program. -/// -/// Typically you should use `ConfigRelativePath::resolve_program` on the path -/// to get the actual program. -#[derive(Debug, Clone)] -pub(crate) struct PathAndArgs { - #[allow(dead_code)] - pub(crate) path: ConfigRelativePath, - #[allow(dead_code)] - pub(crate) args: Vec, -} - -impl<'de> serde::Deserialize<'de> for PathAndArgs { - fn deserialize(deserializer: D) -> Result - where - D: serde::Deserializer<'de>, - { - let vsl = Value::::deserialize(deserializer)?; - let mut strings = vsl.val.0; - if strings.is_empty() { - return Err(D::Error::invalid_length(0, &"at least one element")); - } - let first = strings.remove(0); - let crp = Value { - val: first, - definition: vsl.definition, - }; - Ok(PathAndArgs { - path: ConfigRelativePath(crp), - args: strings, - }) - } -} diff --git a/docs/snippets/Cargo.toml b/docs/snippets/Cargo.toml index b72120e95..dd31db321 100644 --- a/docs/snippets/Cargo.toml +++ b/docs/snippets/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "snippets" version = "0.7.0" -edition = "2021" +edition = "2024" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/examples/Cargo.toml b/examples/Cargo.toml index c6190c2f2..30b01ccae 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "examples" version = "0.2.0" -edition = "2021" +edition = "2024" include = [ "**/*.rs", "Cargo.toml", diff --git a/examples/latest/colbuf/Cargo.toml b/examples/latest/colbuf/Cargo.toml index 55cceea73..56c1cb198 100644 --- a/examples/latest/colbuf/Cargo.toml +++ b/examples/latest/colbuf/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "colbuf" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/examples/latest/sky130_inverter/Cargo.toml b/examples/latest/sky130_inverter/Cargo.toml index a662cd638..32e5c7984 100644 --- a/examples/latest/sky130_inverter/Cargo.toml +++ b/examples/latest/sky130_inverter/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "sky130_inverter" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false # begin-code-snippet dependencies diff --git a/examples/latest/spice_vdivider/Cargo.toml b/examples/latest/spice_vdivider/Cargo.toml index 3f22fd6c4..89c73e8f2 100644 --- a/examples/latest/spice_vdivider/Cargo.toml +++ b/examples/latest/spice_vdivider/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "spice_vdivider" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false # begin-code-snippet dependencies diff --git a/examples/latest/strongarm/Cargo.toml b/examples/latest/strongarm/Cargo.toml index 6b4f67eeb..f0d8998fb 100644 --- a/examples/latest/strongarm/Cargo.toml +++ b/examples/latest/strongarm/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "strongarm" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/examples/latest/strongarm/src/tb/mod.rs b/examples/latest/strongarm/src/tb/mod.rs index 23964cc06..1cbd147b3 100644 --- a/examples/latest/strongarm/src/tb/mod.rs +++ b/examples/latest/strongarm/src/tb/mod.rs @@ -172,8 +172,14 @@ pub enum ComparatorDecision { Pos, } +#[derive(Copy, Clone, PartialEq, PartialOrd, Debug)] +pub struct ComparatorDecisionInfo { + pub decision: ComparatorDecision, + pub tclkq: f64, +} + pub struct StrongArmTranTbOutput { - pub decision: Option, + pub decision: Option, pub vop: OutputWaveform, pub von: OutputWaveform, } @@ -204,6 +210,12 @@ where let vdd = self.pvt.voltage.to_f64().unwrap(); let epsilon = vdd * 0.05; + + let transition = wav + .von + .transitions(0.2 * vdd, 0.8 * vdd) + .next() + .or_else(|| wav.vop.transitions(0.2 * vdd, 0.8 * vdd).next()); let decision = if abs_diff_eq!(von, 0.0, epsilon = epsilon) && abs_diff_eq!(vop, vdd, epsilon = epsilon) { @@ -214,7 +226,14 @@ where Some(ComparatorDecision::Neg) } else { None - }; + } + .and_then(|decision| { + let transition = transition?; + Some(ComparatorDecisionInfo { + decision, + tclkq: transition.center_time(), + }) + }); StrongArmTranTbOutput { decision, diff --git a/examples/latest/strongarm/src/tech/sky130.rs b/examples/latest/strongarm/src/tech/sky130.rs index f792a4e53..188ad058b 100644 --- a/examples/latest/strongarm/src/tech/sky130.rs +++ b/examples/latest/strongarm/src/tech/sky130.rs @@ -545,7 +545,7 @@ mod tests { .expect("comparator output did not rail") }; assert_eq!( - decision, + decision.decision, if j > dec!(0) { ComparatorDecision::Pos } else { @@ -615,7 +615,7 @@ mod tests { }; let decision = output.decision.expect("comparator output did not rail"); assert_eq!( - decision, + decision.decision, if vinp > vinn { ComparatorDecision::Pos } else { @@ -671,6 +671,8 @@ mod tests { .draw() .unwrap(); + let mut max_tclkq = 0.; + let colors = [ full_palette::RED_500, full_palette::PURPLE_500, @@ -699,6 +701,11 @@ mod tests { dec!(0.92), dec!(0.88), ); + if let Some(decision) = data.decision + && decision.tclkq > max_tclkq + { + max_tclkq = decision.tclkq; + } if i < 5 { chart .draw_series(LineSeries::new( @@ -716,21 +723,26 @@ mod tests { .label(format!("Design {}", i + 1)) .legend(move |(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], color)); } - // for extra_corner in [ - // Sky130Corner::Ss, - // Sky130Corner::Ff, - // Sky130Corner::Sf, - // Sky130Corner::Fs, - // ] { - // test_strongarm_single( - // work_dir.join(format!("dut{i}_{}", extra_corner.name())), - // true, - // *dut, - // extra_corner, - // dec!(0.92), - // dec!(0.88), - // ); - // } + for extra_corner in [ + Sky130Corner::Ss, + Sky130Corner::Ff, + Sky130Corner::Sf, + Sky130Corner::Fs, + ] { + let output = test_strongarm_single( + work_dir.join(format!("dut{i}_{}", extra_corner.name())), + true, + *dut, + extra_corner, + dec!(0.92), + dec!(0.88), + ); + if let Some(decision) = output.decision + && decision.tclkq > max_tclkq + { + max_tclkq = decision.tclkq; + } + } } chart .configure_series_labels() diff --git a/examples/latest/substrate_api_examples/Cargo.toml b/examples/latest/substrate_api_examples/Cargo.toml index ea2e4a87a..6a75145d0 100644 --- a/examples/latest/substrate_api_examples/Cargo.toml +++ b/examples/latest/substrate_api_examples/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "substrate_api_examples" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/examples/latest/vdivider/Cargo.toml b/examples/latest/vdivider/Cargo.toml index 580b31e5c..df43635f6 100644 --- a/examples/latest/vdivider/Cargo.toml +++ b/examples/latest/vdivider/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "vdivider" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/examples/latest/via/Cargo.toml b/examples/latest/via/Cargo.toml index bfd578cc2..690e5a05a 100644 --- a/examples/latest/via/Cargo.toml +++ b/examples/latest/via/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "via" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/examples/release/colbuf/Cargo.toml b/examples/release/colbuf/Cargo.toml index c1b702a9e..bf17fa888 100644 --- a/examples/release/colbuf/Cargo.toml +++ b/examples/release/colbuf/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "colbuf" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/examples/release/sky130_inverter/Cargo.toml b/examples/release/sky130_inverter/Cargo.toml index 4f4b79f14..7f510243c 100644 --- a/examples/release/sky130_inverter/Cargo.toml +++ b/examples/release/sky130_inverter/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "sky130_inverter" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false # begin-code-snippet dependencies diff --git a/examples/release/spice_vdivider/Cargo.toml b/examples/release/spice_vdivider/Cargo.toml index f5ddd4e96..8243d2418 100644 --- a/examples/release/spice_vdivider/Cargo.toml +++ b/examples/release/spice_vdivider/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "spice_vdivider" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false # begin-code-snippet dependencies diff --git a/examples/release/substrate_api_examples/Cargo.toml b/examples/release/substrate_api_examples/Cargo.toml index 3119c82a3..0c224e932 100644 --- a/examples/release/substrate_api_examples/Cargo.toml +++ b/examples/release/substrate_api_examples/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "substrate_api_examples" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/examples/release/vdivider/Cargo.toml b/examples/release/vdivider/Cargo.toml index 21a7da99f..7017ebe2f 100644 --- a/examples/release/vdivider/Cargo.toml +++ b/examples/release/vdivider/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "vdivider" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/examples/release/via/Cargo.toml b/examples/release/via/Cargo.toml index 746673a76..66477b28e 100644 --- a/examples/release/via/Cargo.toml +++ b/examples/release/via/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "via" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/libs/atoll/Cargo.toml b/libs/atoll/Cargo.toml index f3246ad45..b41b1f235 100644 --- a/libs/atoll/Cargo.toml +++ b/libs/atoll/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "atoll" version = "0.1.3" -edition = "2021" +edition = "2024" description = "Automatic transformation of logical layout" license = "BSD-3-Clause" diff --git a/libs/cache/Cargo.toml b/libs/cache/Cargo.toml index e434acf05..af89bea99 100644 --- a/libs/cache/Cargo.toml +++ b/libs/cache/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cache" version = "0.7.1" -edition = "2021" +edition = "2024" description = "A general purpose cache with possibly multiple remote servers for storing and retrieving data." license = "BSD-3-Clause" diff --git a/libs/cache/src/lib.rs b/libs/cache/src/lib.rs index 593df1d43..1a66f4d27 100644 --- a/libs/cache/src/lib.rs +++ b/libs/cache/src/lib.rs @@ -13,7 +13,7 @@ use error::{ArcResult, Error, TryInnerError}; use lazy_static::lazy_static; use once_cell::sync::OnceCell; use regex::Regex; -use serde::{de::DeserializeOwned, Deserialize, Serialize}; +use serde::{Deserialize, Serialize, de::DeserializeOwned}; use sha2::{Digest, Sha256}; pub mod error; @@ -391,7 +391,7 @@ impl CacheHandle> { /// /// Returns an error if the generator panicked or threw an error, or if the cache threw an /// error. - pub fn try_inner(&self) -> std::result::Result<&V, TryInnerError> { + pub fn try_inner(&self) -> std::result::Result<&V, TryInnerError<'_, E>> { Ok(self .try_get() .map_err(|e| TryInnerError::CacheError(e))? diff --git a/libs/diagnostics/Cargo.toml b/libs/diagnostics/Cargo.toml index 7e7470a7d..e86709f4d 100644 --- a/libs/diagnostics/Cargo.toml +++ b/libs/diagnostics/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "diagnostics" version = "0.4.0" -edition = "2021" +edition = "2024" [dependencies] serde = { version = "1", features = ["derive"] } diff --git a/libs/enumify/Cargo.toml b/libs/enumify/Cargo.toml index f23e488aa..721c8cd3d 100644 --- a/libs/enumify/Cargo.toml +++ b/libs/enumify/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "enumify" version = "0.2.1" -edition = "2021" +edition = "2024" [dependencies] enumify_macros = { version = "0.3.1", registry = "substrate", path = "../enumify_macros" } diff --git a/libs/enumify_macros/Cargo.toml b/libs/enumify_macros/Cargo.toml index 39d71e0e7..0da06b9bb 100644 --- a/libs/enumify_macros/Cargo.toml +++ b/libs/enumify_macros/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "enumify_macros" version = "0.3.1" -edition = "2021" +edition = "2024" description = "Macros for the enumify crate" license = "BSD-3-Clause" diff --git a/libs/enumify_macros/src/impls.rs b/libs/enumify_macros/src/impls.rs index d461fcb00..61cedfe80 100644 --- a/libs/enumify_macros/src/impls.rs +++ b/libs/enumify_macros/src/impls.rs @@ -10,7 +10,7 @@ use proc_macro2::TokenStream; use quote::format_ident; use quote::quote; -use macrotools::{field_tokens_with_referent, tuple_ident, FieldTokens}; +use macrotools::{FieldTokens, field_tokens_with_referent, tuple_ident}; use syn::{DeriveInput, Generics}; macro_rules! handle_error { @@ -213,11 +213,7 @@ fn mut_generics(generics: &Generics) -> TokenStream { } fn variant_match_arm(xident: &syn::Ident, variant: &EnumifyVariant) -> TokenStream { - let EnumifyVariant { - ref ident, - ref fields, - .. - } = variant; + let EnumifyVariant { ident, fields, .. } = variant; let destructure = fields .iter() .enumerate() @@ -239,10 +235,7 @@ fn variant_match_arm(xident: &syn::Ident, variant: &EnumifyVariant) -> TokenStre fn field_assign(as_enum: bool, style: Style, idx: usize, field: &EnumifyField) -> TokenStream { let EnumifyField { - ref ident, - ref vis, - ref attrs, - .. + ident, vis, attrs, .. } = field; let FieldTokens { refer, @@ -392,10 +385,8 @@ impl Enumify { pub(crate) fn expand_enum(&self, tokens: &mut TokenStream, variants: &[EnumifyVariant]) { let EnumifyInputReceiver { - ref ident, - ref generics, - .. - } = self.input; + ident, generics, .. + } = &self.input; let (imp, ty, wher) = generics.split_for_impl(); let ref_ident = self.ref_enum_ident(); @@ -466,12 +457,12 @@ impl Enumify { } pub(crate) fn expand(&self, tokens: &mut TokenStream) { - let EnumifyInputReceiver { ref data, .. } = self.input; + let EnumifyInputReceiver { data, .. } = &self.input; match data { - ast::Data::Struct(ref _fields) => { + ast::Data::Struct(_) => { panic!("enumify does not support structs"); } - ast::Data::Enum(ref variants) => { + ast::Data::Enum(variants) => { self.expand_enum(tokens, variants); } }; diff --git a/libs/gds/Cargo.toml b/libs/gds/Cargo.toml index bed0be9f3..0f40c5bfb 100644 --- a/libs/gds/Cargo.toml +++ b/libs/gds/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gds" version = "0.4.1" -edition = "2021" +edition = "2024" [dependencies] byteorder = "1" diff --git a/libs/gdsconv/Cargo.toml b/libs/gdsconv/Cargo.toml index f2841fc79..3f8cde423 100644 --- a/libs/gdsconv/Cargo.toml +++ b/libs/gdsconv/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gdsconv" version = "0.2.1" -edition = "2021" +edition = "2024" [dependencies] arcstr = { version = "1", features = ["serde"] } diff --git a/libs/gdsconv/src/import.rs b/libs/gdsconv/src/import.rs index e466131c5..958210de1 100644 --- a/libs/gdsconv/src/import.rs +++ b/libs/gdsconv/src/import.rs @@ -11,7 +11,7 @@ use geometry::{ }; use layir::{Cell, CellId, Instance, Library, LibraryBuilder, Shape, Text}; use slotmap::new_key_type; -use tracing::{span, Level}; +use tracing::{Level, span}; use crate::GdsLayer; @@ -144,24 +144,24 @@ impl<'a> GdsImporter<'a> { for elem in &strukt.elems { use gds::GdsElement::*; match elem { - GdsBoundary(ref x) => cell.add_element(self.import_boundary(x)?), - GdsPath(ref x) => cell.add_element(self.import_path(x)?), - GdsBox(ref x) => cell.add_element(self.import_box(x)?), - GdsArrayRef(ref x) => { + GdsBoundary(x) => cell.add_element(self.import_boundary(x)?), + GdsPath(x) => cell.add_element(self.import_path(x)?), + GdsBox(x) => cell.add_element(self.import_box(x)?), + GdsArrayRef(x) => { let elems = self.import_instance_array(x)?; for elem in elems { cell.add_instance(elem); } } - GdsStructRef(ref x) => { + GdsStructRef(x) => { cell.add_instance(self.import_instance(x)?); } - GdsTextElem(ref x) => { + GdsTextElem(x) => { cell.add_element(self.import_text_elem(x)?); } // GDSII "Node" elements are fairly rare, and are not supported. // (Maybe some day we'll even learn what they are.) - GdsNode(ref elem) => { + GdsNode(elem) => { tracing::warn!(?elem, "ignoring unsupported GDS Node element"); } }; @@ -493,8 +493,8 @@ impl<'a> GdsDepOrder<'a> { for elem in &strukt.elems { use gds::GdsElement::*; match elem { - GdsStructRef(ref x) => self.push(self.strukts.get(&x.name).unwrap()), - GdsArrayRef(ref x) => self.push(self.strukts.get(&x.name).unwrap()), + GdsStructRef(x) => self.push(self.strukts.get(&x.name).unwrap()), + GdsArrayRef(x) => self.push(self.strukts.get(&x.name).unwrap()), _ => (), }; } diff --git a/libs/geometry/Cargo.toml b/libs/geometry/Cargo.toml index 324c31726..bbf52022a 100644 --- a/libs/geometry/Cargo.toml +++ b/libs/geometry/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "geometry" version = "0.7.1" -edition = "2021" +edition = "2024" [dependencies] serde = { version = "1", features = ["derive"] } diff --git a/libs/geometry/src/rect.rs b/libs/geometry/src/rect.rs index ba1a09f7a..2aa07764f 100644 --- a/libs/geometry/src/rect.rs +++ b/libs/geometry/src/rect.rs @@ -130,7 +130,7 @@ impl Rect { /// The caller must ensure that `left <= right` and that `bot <= top`. #[inline] pub const unsafe fn from_sides_unchecked(left: i64, bot: i64, right: i64, top: i64) -> Self { - Self::new_unchecked(Point::new(left, bot), Point::new(right, top)) + unsafe { Self::new_unchecked(Point::new(left, bot), Point::new(right, top)) } } /// Creates a rectangle from a lower left and upper right corner point, diff --git a/libs/geometry_macros/Cargo.toml b/libs/geometry_macros/Cargo.toml index b97c95c59..82d16b3d5 100644 --- a/libs/geometry_macros/Cargo.toml +++ b/libs/geometry_macros/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "geometry_macros" version = "0.1.1" -edition = "2021" +edition = "2024" [dependencies] darling = "0.20" diff --git a/libs/layir/Cargo.toml b/libs/layir/Cargo.toml index 764b1ad34..ac5bb320d 100644 --- a/libs/layir/Cargo.toml +++ b/libs/layir/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "layir" version = "0.2.1" -edition = "2021" +edition = "2024" [dependencies] arcstr = { version = "1", features = ["serde"] } diff --git a/libs/lefdef/Cargo.toml b/libs/lefdef/Cargo.toml index 93dbc8011..5cd30811e 100644 --- a/libs/lefdef/Cargo.toml +++ b/libs/lefdef/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "lefdef" version = "0.2.1" -edition = "2021" +edition = "2024" [dependencies] geometry = { version = "0.7.1", registry = "substrate", path = "../geometry" } diff --git a/libs/macrotools/Cargo.toml b/libs/macrotools/Cargo.toml index 4613e9947..39f8de254 100644 --- a/libs/macrotools/Cargo.toml +++ b/libs/macrotools/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "macrotools" version = "0.2.0" -edition = "2021" +edition = "2024" description = "Utilities for implementing proc macros quickly" [dependencies] diff --git a/libs/macrotools/src/lib.rs b/libs/macrotools/src/lib.rs index 075748808..e0bf2c351 100644 --- a/libs/macrotools/src/lib.rs +++ b/libs/macrotools/src/lib.rs @@ -4,12 +4,12 @@ use std::collections::HashMap; use darling::ast::Style; use proc_macro2::{Span, TokenStream}; -use quote::{format_ident, quote, quote_spanned, ToTokens}; +use quote::{ToTokens, format_ident, quote, quote_spanned}; use syn::spanned::Spanned; use syn::{ - parse_quote, Attribute, Data, DeriveInput, Field, Fields, GenericArgument, GenericParam, - Generics, Ident, Index, PathArguments, Token, Type, TypeParamBound, Variant, Visibility, - WherePredicate, + Attribute, Data, DeriveInput, Field, Fields, GenericArgument, GenericParam, Generics, Ident, + Index, PathArguments, Token, Type, TypeParamBound, Variant, Visibility, WherePredicate, + parse_quote, }; #[macro_export] @@ -39,7 +39,7 @@ macro_rules! handle_darling_error { /// Add a bound `T: trait_` to every type parameter T. pub fn add_trait_bounds(generics: &mut Generics, trait_: TokenStream) { for param in &mut generics.params { - if let GenericParam::Type(ref mut type_param) = *param { + if let GenericParam::Type(type_param) = &mut *param { type_param.bounds.push(syn::parse_quote!(#trait_)); } } @@ -131,10 +131,10 @@ pub fn field_tokens( pub fn field_decl(field: &Field) -> TokenStream { let Field { - ref ident, - ref vis, - ref ty, - ref attrs, + ident, + vis, + ty, + attrs, .. } = field; @@ -199,9 +199,7 @@ pub fn field_assign( prev_tys: Vec, val: impl FnOnce(&MapField) -> TokenStream, ) -> TokenStream { - let Field { - ref ident, ref ty, .. - } = field; + let Field { ident, ty, .. } = field; let pretty = pretty_ident(idx, ident); let refer = field_referent(prefix, idx, field); @@ -220,11 +218,7 @@ pub fn field_assign( } pub fn variant_decl(variant: &Variant) -> TokenStream { - let Variant { - ref ident, - ref fields, - .. - } = variant; + let Variant { ident, fields, .. } = variant; let decls = fields.iter().map(field_decl); match fields { Fields::Unit => quote!(#ident,), @@ -234,11 +228,7 @@ pub fn variant_decl(variant: &Variant) -> TokenStream { } pub fn variant_map_arm(input_type: &Type, variant: &Variant, body: &TokenStream) -> TokenStream { - let Variant { - ref ident, - ref fields, - .. - } = variant; + let Variant { ident, fields, .. } = variant; let destructure = fields .iter() .enumerate() @@ -259,11 +249,7 @@ pub fn double_variant_map_arm( variant: &Variant, body: &TokenStream, ) -> TokenStream { - let Variant { - ref ident, - ref fields, - .. - } = variant; + let Variant { ident, fields, .. } = variant; let destructure0 = fields.iter().enumerate().map(|(i, f)| { f.ident .as_ref() @@ -306,11 +292,7 @@ pub fn variant_assign_arm( prev_tys: &[Vec], val: impl Fn(&MapField) -> TokenStream, ) -> TokenStream { - let Variant { - ref ident, - ref fields, - .. - } = variant; + let Variant { ident, fields, .. } = variant; let assign = fields .iter() .enumerate() @@ -337,15 +319,9 @@ pub fn double_variant_assign_arm( prev_tys: &[Vec], val: impl Fn(&MapField, &MapField) -> TokenStream, ) -> TokenStream { - let Variant { - ref ident, - ref fields, - .. - } = variant; + let Variant { ident, fields, .. } = variant; let assign = fields.iter().enumerate().map(|(i, f)| { - let Field { - ref ident, ref ty, .. - } = f; + let Field { ident, ty, .. } = f; let pretty = pretty_ident(i, ident); let (refer0, refer1) = double_enum_field_referent(None, i, f); @@ -518,13 +494,13 @@ impl DeriveInputHelper { pub fn add_generic_type_binding(&mut self, ident: Ident, ty: Type) { self.generic_type_bindings.insert(ident.clone(), ty.clone()); - match self.input.data { - Data::Struct(ref mut s) => { + match &mut self.input.data { + Data::Struct(s) => { for f in s.fields.iter_mut() { apply_generic_type_binding_ty(&mut f.ty, ident.clone(), ty.clone()); } } - Data::Enum(ref mut e) => { + Data::Enum(e) => { for variant in e.variants.iter_mut() { for f in variant.fields.iter_mut() { apply_generic_type_binding_ty(&mut f.ty, ident.clone(), ty.clone()); @@ -801,9 +777,7 @@ impl DeriveInputHelper { match &self.input.data { Data::Struct(s) => { let assignments = s.fields.iter().enumerate().map(|(i, f)| { - let Field { - ref ident, ref ty, .. - } = f; + let Field { ident, ty, .. } = f; let pretty = pretty_ident(i, ident); let refer0 = field_referent(Some(referents.0), i, f); @@ -1099,7 +1073,7 @@ pub fn derive_trait(config: &DeriveTrait, input: &DeriveInput) -> proc_macro2::T }; let match_clause: TokenStream = match &input.data { - Data::Struct(ref s) => match &s.fields { + Data::Struct(s) => match &s.fields { Fields::Unnamed(fields) => { let recurse = fields.unnamed.iter().enumerate().map(|(i, f)| { let idx = Index::from(i); @@ -1120,10 +1094,10 @@ pub fn derive_trait(config: &DeriveTrait, input: &DeriveInput) -> proc_macro2::T } Fields::Unit => quote!(), }, - Data::Enum(ref data) => { + Data::Enum(data) => { let clauses = data.variants.iter().map(|v| { - let inner = match v.fields { - syn::Fields::Named(ref fields) => { + let inner = match &v.fields { + syn::Fields::Named(fields) => { let recurse = fields.named.iter().map(|f| { let name = f.ident.as_ref().unwrap(); quote_spanned! { f.span() => @@ -1140,7 +1114,7 @@ pub fn derive_trait(config: &DeriveTrait, input: &DeriveInput) -> proc_macro2::T { #(#declare)* } => { #(#recurse)* }, } } - syn::Fields::Unnamed(ref fields) => { + syn::Fields::Unnamed(fields) => { let recurse = fields.unnamed.iter().enumerate().map(|(i, f)| { let ident = format_ident!("field{i}"); quote_spanned! { f.span() => @@ -1205,7 +1179,7 @@ fn apply_generic_type_binding(pred: &mut WherePredicate, ident: Ident, ty: Type) let t = &mut pred.bounded_ty; if let Type::Path(p) = t { for seg in p.path.segments.iter_mut() { - if let PathArguments::AngleBracketed(ref mut args) = seg.arguments { + if let PathArguments::AngleBracketed(args) = &mut seg.arguments { for arg in args.args.iter_mut() { if let GenericArgument::Type(t) = arg { if let Type::Path(p) = t { @@ -1223,9 +1197,9 @@ fn apply_generic_type_binding(pred: &mut WherePredicate, ident: Ident, ty: Type) } } for bound in pred.bounds.iter_mut() { - if let TypeParamBound::Trait(ref mut tb) = bound { + if let TypeParamBound::Trait(tb) = bound { if let Some(last) = tb.path.segments.last_mut() { - if let PathArguments::AngleBracketed(ref mut args) = last.arguments { + if let PathArguments::AngleBracketed(args) = &mut last.arguments { for arg in args.args.iter_mut() { if let GenericArgument::Type(t) = arg { if let Type::Path(p) = t { diff --git a/libs/nutlex/Cargo.toml b/libs/nutlex/Cargo.toml index cfef12e34..3bd0bee2b 100644 --- a/libs/nutlex/Cargo.toml +++ b/libs/nutlex/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "nutlex" version = "0.4.2" -edition = "2021" +edition = "2024" description = "Parses SPICE nutmeg files (aka rawfiles)" [dependencies] diff --git a/libs/nutlex/src/parser/mod.rs b/libs/nutlex/src/parser/mod.rs index 7ede0d5db..b8617b083 100644 --- a/libs/nutlex/src/parser/mod.rs +++ b/libs/nutlex/src/parser/mod.rs @@ -136,7 +136,7 @@ fn parse_f64(input: &[u8]) -> Result>> { Ok(value) } -fn variable(input: &[u8]) -> IResult<&[u8], Variable> { +fn variable(input: &[u8]) -> IResult<&[u8], Variable<'_>> { // In AC analysis, may have a `grid=X` declaration let kwargs = opt(take_till1(is_newline)); let (input, (_, idx, _, name, _, unit, _, _, _, _)) = ( @@ -158,7 +158,7 @@ fn variable(input: &[u8]) -> IResult<&[u8], Variable> { Ok((input, Variable { idx, name, unit })) } -fn variables(input: &[u8]) -> IResult<&[u8], Vec> { +fn variables(input: &[u8]) -> IResult<&[u8], Vec>> { let (input, _) = (tag_no_case("Variables:"), space0, opt(line_ending), space0).parse(input)?; let (input, vars) = many0(variable).parse(input)?; Ok((input, vars)) @@ -292,7 +292,7 @@ fn complex_data( .parse(input) } -fn analysis(opts: Options) -> impl Fn(&[u8]) -> IResult<&[u8], Analysis> { +fn analysis(opts: Options) -> impl Fn(&[u8]) -> IResult<&[u8], Analysis<'_>> { move |input: &[u8]| -> IResult<&[u8], Analysis> { let (input, _) = take_while(is_space_or_line)(input)?; let (input, title) = opt(header("Title:")).parse(input)?; @@ -329,6 +329,6 @@ fn analysis(opts: Options) -> impl Fn(&[u8]) -> IResult<&[u8], Analysis> { } } -pub(crate) fn analyses(input: &[u8], opts: Options) -> IResult<&[u8], Vec> { +pub(crate) fn analyses(input: &[u8], opts: Options) -> IResult<&[u8], Vec>> { many0(analysis(opts)).parse(input) } diff --git a/libs/pathtree/Cargo.toml b/libs/pathtree/Cargo.toml index 9f541a8a7..a037ee51d 100644 --- a/libs/pathtree/Cargo.toml +++ b/libs/pathtree/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "pathtree" version = "0.3.0" -edition = "2021" +edition = "2024" description = "An immutable tree data structure for fast path operations" license = "BSD-3-Clause" diff --git a/libs/psfparser/Cargo.toml b/libs/psfparser/Cargo.toml index fb556d9a6..1e2bd98e2 100644 --- a/libs/psfparser/Cargo.toml +++ b/libs/psfparser/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "psfparser" version = "0.1.4" -edition = "2021" +edition = "2024" description = "A PSF reader written in Rust" readme = "README.md" license = "BSD-3-Clause" diff --git a/libs/psfparser/src/binary/ast.rs b/libs/psfparser/src/binary/ast.rs index ef9fe3808..376f75d28 100644 --- a/libs/psfparser/src/binary/ast.rs +++ b/libs/psfparser/src/binary/ast.rs @@ -270,28 +270,28 @@ impl Values { pub fn real(&self) -> &Vec { match self { - Self::Real(ref v) => v, + Self::Real(v) => v, _ => panic!("not a real value vector"), } } pub fn complex(&self) -> &Vec { match self { - Self::Complex(ref v) => v, + Self::Complex(v) => v, _ => panic!("not a complex value vector"), } } pub fn real_mut(&mut self) -> &mut Vec { match self { - Self::Real(ref mut v) => v, + Self::Real(v) => v, _ => panic!("not a real value vector"), } } pub fn complex_mut(&mut self) -> &mut Vec { match self { - Self::Complex(ref mut v) => v, + Self::Complex(v) => v, _ => panic!("not a complex value vector"), } } diff --git a/libs/scir/Cargo.toml b/libs/scir/Cargo.toml index 9a37ad063..e329eec7a 100644 --- a/libs/scir/Cargo.toml +++ b/libs/scir/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "scir" version = "0.9.1" -edition = "2021" +edition = "2024" [dependencies] arcstr = { version = "1", features = ["serde"] } diff --git a/libs/spice/Cargo.toml b/libs/spice/Cargo.toml index 214a409d5..a3cd4a1e3 100644 --- a/libs/spice/Cargo.toml +++ b/libs/spice/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "spice" version = "0.9.2" -edition = "2021" +edition = "2024" [dependencies] arcstr = { version = "1", features = ["serde", "substr-usize-indices"] } diff --git a/libs/spice/src/parser/mod.rs b/libs/spice/src/parser/mod.rs index 90bd77eb7..4589ae331 100644 --- a/libs/spice/src/parser/mod.rs +++ b/libs/spice/src/parser/mod.rs @@ -13,11 +13,11 @@ use std::ops::{Deref, DerefMut}; use std::path::{Path, PathBuf}; use std::str::FromStr; -use crate::parser::conv::convert_str_to_numeric_lit; use crate::Spice; +use crate::parser::conv::convert_str_to_numeric_lit; use arcstr::ArcStr; -use nom::bytes::complete::{take_till, take_while}; use nom::Input; +use nom::bytes::complete::{take_till, take_while}; use thiserror::Error; use self::conv::ScirConverter; @@ -186,13 +186,13 @@ impl Parser { }; self.parse_file_inner(resolved_path)?; } - (ReaderState::Subckt(ref mut subckt), Line::Component(c)) => { + (ReaderState::Subckt(subckt), Line::Component(c)) => { subckt.components.push(c); } - (ReaderState::Subckt(ref mut subckt), Line::Connect { node1, node2 }) => { + (ReaderState::Subckt(subckt), Line::Connect { node1, node2 }) => { subckt.connects.push((node1, node2)); } - (ReaderState::Subckt(ref mut subckt), Line::EndSubckt) => { + (ReaderState::Subckt(subckt), Line::EndSubckt) => { let subckt = std::mem::take(subckt); self.ast.elems.push(Elem::Subckt(subckt)); self.state.reader_state = ReaderState::Top; diff --git a/libs/spice/src/parser/shorts.rs b/libs/spice/src/parser/shorts.rs index d046197f9..c6c1ca4f1 100644 --- a/libs/spice/src/parser/shorts.rs +++ b/libs/spice/src/parser/shorts.rs @@ -1,6 +1,6 @@ //! Short propagation analysis. -use crate::parser::conv::{map_subckts, SubcktName}; +use crate::parser::conv::{SubcktName, map_subckts}; use crate::parser::{Ast, Component, Node, Subckt}; use std::collections::{HashMap, HashSet}; @@ -241,7 +241,7 @@ fn dfs_postorder_inner( Some(&s) => s, }; for c in subckt.components.iter() { - if let Component::Instance(ref inst) = c { + if let Component::Instance(inst) = c { dfs_postorder_inner(&inst.child, subckts, blackbox, visited, out); } } diff --git a/libs/type_dispatch/Cargo.toml b/libs/type_dispatch/Cargo.toml index 7d2c4686b..26914b365 100644 --- a/libs/type_dispatch/Cargo.toml +++ b/libs/type_dispatch/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "type_dispatch" version = "0.5.1" -edition = "2021" +edition = "2024" description = "Utilities for dispatching functions, constants, and trait implementations based on types." license = "BSD-3-Clause" diff --git a/libs/type_dispatch_macros/Cargo.toml b/libs/type_dispatch_macros/Cargo.toml index 87e2fd225..2e6c86749 100644 --- a/libs/type_dispatch_macros/Cargo.toml +++ b/libs/type_dispatch_macros/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "type_dispatch_macros" version = "0.4.1" -edition = "2021" +edition = "2024" description = "Macros for the `type_dispatch` crate." license = "BSD-3-Clause" diff --git a/libs/uniquify/Cargo.toml b/libs/uniquify/Cargo.toml index 6070cc64b..ef331b6cd 100644 --- a/libs/uniquify/Cargo.toml +++ b/libs/uniquify/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "uniquify" version = "0.4.0" -edition = "2021" +edition = "2024" description = "A library for assigning unique names." license = "BSD-3-Clause" diff --git a/libs/verilog/Cargo.toml b/libs/verilog/Cargo.toml index d152fd39d..c95e43f51 100644 --- a/libs/verilog/Cargo.toml +++ b/libs/verilog/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "verilog" version = "0.2.1" -edition = "2021" +edition = "2024" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/pdks/sky130/Cargo.toml b/pdks/sky130/Cargo.toml index f72e3c81c..d44853827 100644 --- a/pdks/sky130/Cargo.toml +++ b/pdks/sky130/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "sky130" version = "0.10.2" -edition = "2021" +edition = "2024" [dependencies] atoll = { version = "0.1.3", registry = "substrate", path = "../../libs/atoll" } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index db4f68520..4f8240135 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.85.1" +channel = "1.91.1" components = [ "rust-analyzer", "rustfmt", "clippy" ] diff --git a/substrate/Cargo.toml b/substrate/Cargo.toml index 085645ff9..244b8bb4e 100644 --- a/substrate/Cargo.toml +++ b/substrate/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "substrate" version = "0.10.2" -edition = "2021" +edition = "2024" [dependencies] serde = { version = "1", features = ["derive"] } diff --git a/substrate/src/types/schematic.rs b/substrate/src/types/schematic.rs index 3f77e1065..9b1649d96 100644 --- a/substrate/src/types/schematic.rs +++ b/substrate/src/types/schematic.rs @@ -687,7 +687,7 @@ impl NodeContext { .drivers .iter() .flat_map(|e1| n2_connections_data.drivers.iter().map(move |e2| [e1, e2])) - .filter(|[(&k1, _), (&k2, _)]| !k1.is_compatible_with(k2)) + .filter(|[(k1, _), (k2, _)]| !k1.is_compatible_with(**k2)) .collect(); if !incompatible_drivers.is_empty() { // If drivers are not compatible, return an error but connect them diff --git a/tools/magic/Cargo.toml b/tools/magic/Cargo.toml index e82d3e9cc..5a7bb6bfe 100644 --- a/tools/magic/Cargo.toml +++ b/tools/magic/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "magic" version = "0.2.1" -edition = "2021" +edition = "2024" [dependencies] tera = "1" diff --git a/tools/magic_netgen/Cargo.toml b/tools/magic_netgen/Cargo.toml index 3d4072c09..d6ce8331f 100644 --- a/tools/magic_netgen/Cargo.toml +++ b/tools/magic_netgen/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "magic_netgen" version = "0.1.3" -edition = "2021" +edition = "2024" [dependencies] substrate = { version = "0.10.2", registry = "substrate", path = "../../substrate" } diff --git a/tools/netgen/Cargo.toml b/tools/netgen/Cargo.toml index 0c64cec50..7dccc463e 100644 --- a/tools/netgen/Cargo.toml +++ b/tools/netgen/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "netgen" version = "0.2.1" -edition = "2021" +edition = "2024" [dependencies] tera = "1" diff --git a/tools/ngspice/Cargo.toml b/tools/ngspice/Cargo.toml index 423a2e862..f00769238 100644 --- a/tools/ngspice/Cargo.toml +++ b/tools/ngspice/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "ngspice" version = "0.5.2" -edition = "2021" +edition = "2024" [dependencies] rust_decimal = "1" diff --git a/tools/pegasus/Cargo.toml b/tools/pegasus/Cargo.toml index 361377ad5..211934ac1 100644 --- a/tools/pegasus/Cargo.toml +++ b/tools/pegasus/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "pegasus" version = "0.2.1" -edition = "2021" +edition = "2024" [dependencies] tera = "1" diff --git a/tools/quantus/Cargo.toml b/tools/quantus/Cargo.toml index 9dcc15d5f..f68a3d1c0 100644 --- a/tools/quantus/Cargo.toml +++ b/tools/quantus/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "quantus" version = "0.2.2" -edition = "2021" +edition = "2024" [dependencies] tera = "1" diff --git a/tools/spectre/Cargo.toml b/tools/spectre/Cargo.toml index 8c8038951..cd2c2ed7c 100644 --- a/tools/spectre/Cargo.toml +++ b/tools/spectre/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "spectre" version = "0.11.2" -edition = "2021" +edition = "2024" [dependencies] rust_decimal = "1" From e10606a73b5a51e59c29a7376b382c5d4136b16a Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Fri, 19 Dec 2025 14:39:08 -0800 Subject: [PATCH 03/28] fix warnings and revert release examples --- examples/release/colbuf/Cargo.toml | 2 +- examples/release/sky130_inverter/Cargo.toml | 2 +- examples/release/spice_vdivider/Cargo.toml | 2 +- .../release/substrate_api_examples/Cargo.toml | 2 +- examples/release/vdivider/Cargo.toml | 2 +- examples/release/via/Cargo.toml | 2 +- libs/atoll/src/grid.rs | 16 +++--------- libs/gds/src/write.rs | 25 +------------------ libs/psfparser/src/ascii/frontend.rs | 10 ++++---- libs/psfparser/src/binary/ast.rs | 4 +-- libs/psfparser/src/binary/mod.rs | 16 ++++++------ substrate/src/schematic/mod.rs | 4 +-- 12 files changed, 29 insertions(+), 58 deletions(-) diff --git a/examples/release/colbuf/Cargo.toml b/examples/release/colbuf/Cargo.toml index bf17fa888..c1b702a9e 100644 --- a/examples/release/colbuf/Cargo.toml +++ b/examples/release/colbuf/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "colbuf" version = "0.0.0" -edition = "2024" +edition = "2021" publish = false [dependencies] diff --git a/examples/release/sky130_inverter/Cargo.toml b/examples/release/sky130_inverter/Cargo.toml index 7f510243c..4f4b79f14 100644 --- a/examples/release/sky130_inverter/Cargo.toml +++ b/examples/release/sky130_inverter/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "sky130_inverter" version = "0.0.0" -edition = "2024" +edition = "2021" publish = false # begin-code-snippet dependencies diff --git a/examples/release/spice_vdivider/Cargo.toml b/examples/release/spice_vdivider/Cargo.toml index 8243d2418..f5ddd4e96 100644 --- a/examples/release/spice_vdivider/Cargo.toml +++ b/examples/release/spice_vdivider/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "spice_vdivider" version = "0.0.0" -edition = "2024" +edition = "2021" publish = false # begin-code-snippet dependencies diff --git a/examples/release/substrate_api_examples/Cargo.toml b/examples/release/substrate_api_examples/Cargo.toml index 0c224e932..3119c82a3 100644 --- a/examples/release/substrate_api_examples/Cargo.toml +++ b/examples/release/substrate_api_examples/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "substrate_api_examples" version = "0.0.0" -edition = "2024" +edition = "2021" publish = false [dependencies] diff --git a/examples/release/vdivider/Cargo.toml b/examples/release/vdivider/Cargo.toml index 7017ebe2f..21a7da99f 100644 --- a/examples/release/vdivider/Cargo.toml +++ b/examples/release/vdivider/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "vdivider" version = "0.0.0" -edition = "2024" +edition = "2021" publish = false [dependencies] diff --git a/examples/release/via/Cargo.toml b/examples/release/via/Cargo.toml index 66477b28e..746673a76 100644 --- a/examples/release/via/Cargo.toml +++ b/examples/release/via/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "via" version = "0.0.0" -edition = "2024" +edition = "2021" publish = false [dependencies] diff --git a/libs/atoll/src/grid.rs b/libs/atoll/src/grid.rs index 6f2604496..9748977bf 100644 --- a/libs/atoll/src/grid.rs +++ b/libs/atoll/src/grid.rs @@ -206,12 +206,12 @@ impl LayerStack { } /// A slice containing all layers in this stack. - pub fn all(&self) -> LayerSlice { + pub fn all(&self) -> LayerSlice<'_, L> { self.slice(0..self.layers.len()) } /// A slice containing the specified set of layers. - pub fn slice(&self, range: Range) -> LayerSlice { + pub fn slice(&self, range: Range) -> LayerSlice<'_, L> { LayerSlice { stack: self, start: range.start, @@ -399,11 +399,7 @@ impl RoutingGrid { pub(crate) fn grid_defining_layer(&self, layer: usize) -> usize { // The grid for layer N is formed by the tracks for layer N and the tracks for layer N-1, // except for N=0. For layer 0, the grid is formed by layers 0 and 1. - if layer == 0 { - 1 - } else { - layer - 1 - } + if layer == 0 { 1 } else { layer - 1 } } /// Calculates the span of a particular track on the given layer. @@ -635,11 +631,7 @@ impl + AtollLayer, S: substrate::layout::schema::Schema> Draw } fn sorted2(a: T, b: T) -> (T, T) { - if a <= b { - (a, b) - } else { - (b, a) - } + if a <= b { (a, b) } else { (b, a) } } /// A fixed-size routing grid. diff --git a/libs/gds/src/write.rs b/libs/gds/src/write.rs index 74711ee65..4bc6bc3b1 100644 --- a/libs/gds/src/write.rs +++ b/libs/gds/src/write.rs @@ -50,7 +50,7 @@ impl<'wr> GdsWriter<'wr> { // A quick closure for GDS's "even-lengths-only allowed" strings let gds_strlen = |s: &str| -> usize { s.len() + s.len() % 2 }; // First grab the header info: RecordType, DataType, and length - use GdsDataType::{BitArray, NoData, Str, F64, I16, I32}; + use GdsDataType::{BitArray, F64, I16, I32, NoData, Str}; let (rtype, dtype, len) = match record { // Library-Level Records GdsRecord::Header { .. } => (GdsRecordType::Header, I16, 2), @@ -494,29 +494,6 @@ trait Encode { } } -/// A list of GDS records. -/// -/// A largely for-testing implementer of the [Encode] trait, -/// which collects the generated records into a vector. -#[derive(Default, Debug, Deserialize, Serialize)] -pub struct GdsRecordList { - pub records: Vec, -} - -impl Encode for GdsRecordList { - /// Adds a [GdsRecord] to the list. - fn encode_record(&mut self, record: GdsRecord) -> GdsResult<()> { - self.records.push(record); - Ok(()) - } - - /// Adds an array of [GdsRecord]s to the list. - fn encode_records(&mut self, records: &[GdsRecord]) -> GdsResult<()> { - self.records.extend(records.to_vec()); - Ok(()) - } -} - impl GdsDateTimes { /// Encodes a date-time in GDSII's vector of i16's format. pub fn encode(&self) -> [i16; 12] { diff --git a/libs/psfparser/src/ascii/frontend.rs b/libs/psfparser/src/ascii/frontend.rs index 65d030cc3..fb1236400 100644 --- a/libs/psfparser/src/ascii/frontend.rs +++ b/libs/psfparser/src/ascii/frontend.rs @@ -1,11 +1,11 @@ use num::complex::Complex64; -use pest::iterators::Pair; use pest::Parser; +use pest::iterators::Pair; +use crate::Result; use crate::ascii::ast::{ Header, Kind, NamedValue, Prop, PsfAst, SignalValues, Sweep, Trace, TypeDef, Value, }; -use crate::Result; use super::ast::Values; @@ -13,14 +13,14 @@ use super::ast::Values; #[grammar = "ascii/psf_ascii.pest"] pub struct PsfAsciiParser; -pub fn parse(input: &str) -> Result { +pub fn parse(input: &str) -> Result> { let input = PsfAsciiParser::parse(Rule::psf_ascii, input)? .next() .unwrap(); parse_psf_inner(input) } -fn parse_psf_inner(input: Pair) -> Result { +fn parse_psf_inner(input: Pair<'_, Rule>) -> Result> { debug_assert_eq!(input.as_rule(), Rule::psf_ascii_inner); let mut pairs = input.into_inner(); let header = parse_header(pairs.next().unwrap())?; @@ -55,7 +55,7 @@ fn parse_psf_inner(input: Pair) -> Result { }) } -fn parse_header(input: Pair) -> Result
{ +fn parse_header(input: Pair<'_, Rule>) -> Result
{ debug_assert_eq!(input.as_rule(), Rule::header_section); let mut pairs = input.into_inner(); let named_values = pairs.next().unwrap(); diff --git a/libs/psfparser/src/binary/ast.rs b/libs/psfparser/src/binary/ast.rs index 376f75d28..f0777fa70 100644 --- a/libs/psfparser/src/binary/ast.rs +++ b/libs/psfparser/src/binary/ast.rs @@ -167,14 +167,14 @@ pub enum Trace<'a> { } impl<'a> Trace<'a> { - pub fn group(&self) -> &TraceGroup { + pub fn group(&self) -> &TraceGroup<'_> { match self { Self::Group(g) => g, _ => panic!("Cannot unwrap signal as group"), } } - pub fn signal(&self) -> &SignalRef { + pub fn signal(&self) -> &SignalRef<'_> { match self { Self::Signal(s) => s, _ => panic!("Cannot unwrap group trace as signal"), diff --git a/libs/psfparser/src/binary/mod.rs b/libs/psfparser/src/binary/mod.rs index bde4eff60..e73325c3b 100644 --- a/libs/psfparser/src/binary/mod.rs +++ b/libs/psfparser/src/binary/mod.rs @@ -10,7 +10,7 @@ pub(crate) mod tests; use crate::Result; -pub fn parse(input: &[u8]) -> Result { +pub fn parse(input: &[u8]) -> Result> { let mut parser = PsfParser::new(input); parser.parse(); Ok(parser.into_inner()) @@ -332,10 +332,12 @@ impl<'a> PsfParser<'a> { for _ in 0..self.num_traces() { let entry; (data, entry) = parse_point_value(data, &self.ast.types); - assert!(values - .values - .insert(entry.name.to_string(), entry) - .is_none()); + assert!( + values + .values + .insert(entry.name.to_string(), entry) + .is_none() + ); } self.ast.values = Some(SignalValues::Point(values)); @@ -567,7 +569,7 @@ fn parse_point_value<'a>(data: &'a [u8], types: &Types<'_>) -> (&'a [u8], PointV ) } -fn parse_properties(data: &[u8]) -> (&[u8], Properties) { +fn parse_properties(data: &[u8]) -> (&[u8], Properties<'_>) { let mut data = data; let mut values = Vec::new(); @@ -586,7 +588,7 @@ fn parse_properties(data: &[u8]) -> (&[u8], Properties) { (data, Properties { values }) } -fn parse_named_value(data: &[u8]) -> (&[u8], NamedValue) { +fn parse_named_value(data: &[u8]) -> (&[u8], NamedValue<'_>) { let (data, block_t) = parse_int(data); let (data, name) = parse_string(data); diff --git a/substrate/src/schematic/mod.rs b/substrate/src/schematic/mod.rs index 2ab1f91e4..959cf1ae0 100644 --- a/substrate/src/schematic/mod.rs +++ b/substrate/src/schematic/mod.rs @@ -7,8 +7,8 @@ pub mod schema; #[cfg(test)] mod tests; -use cache::mem::TypeCache; use cache::CacheHandle; +use cache::mem::TypeCache; pub use codegen::NestedData; use pathtree::PathTree; use serde::{Deserialize, Serialize}; @@ -495,7 +495,7 @@ impl CellBuilder { } /// Creates a [`SubCellBuilder`] for instantiating blocks from schema `S2`. - pub fn sub_builder(&mut self) -> SubCellBuilder + pub fn sub_builder(&mut self) -> SubCellBuilder<'_, S, S2> where S: FromSchema, { From 0fd6eae753bc81b1c0d57cd6cbfdf584849f8bda Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Sat, 20 Dec 2025 08:14:36 -0800 Subject: [PATCH 04/28] fix warnings --- config/src/home/env.rs | 2 +- config/src/paths.rs | 5 ++- libs/atoll/src/fold.rs | 18 ++++------ libs/atoll/src/grid.rs | 5 ++- libs/atoll/src/resizing.rs | 5 ++- libs/atoll/src/straps.rs | 5 ++- libs/gds/src/lib.rs | 4 +-- libs/gdsconv/src/conv.rs | 5 ++- libs/gdsconv/src/import.rs | 5 ++- libs/macrotools/src/lib.rs | 50 ++++++++++------------------ libs/psfparser/src/ascii/frontend.rs | 4 +-- libs/psfparser/src/binary/mod.rs | 2 +- libs/scir/src/lib.rs | 10 +++--- libs/spice/src/netlist.rs | 5 ++- substrate/src/layout/tiling.rs | 5 ++- substrate/src/types/impls.rs | 6 ++-- tools/spectre/src/analysis/tran.rs | 2 +- 17 files changed, 55 insertions(+), 83 deletions(-) diff --git a/config/src/home/env.rs b/config/src/home/env.rs index e95be9cc9..879b7f01d 100644 --- a/config/src/home/env.rs +++ b/config/src/home/env.rs @@ -76,7 +76,7 @@ pub(crate) fn substrate_home_with_cwd_env(env: &dyn Env, cwd: &Path) -> io::Resu _ => home_dir_with_env(env) .map(|p| p.join(".substrate")) .ok_or_else(|| { - io::Error::new(io::ErrorKind::Other, "could not find Substrate home dir") + io::Error::other("could not find Substrate home dir") }), } } diff --git a/config/src/paths.rs b/config/src/paths.rs index 2d0426670..042534177 100644 --- a/config/src/paths.rs +++ b/config/src/paths.rs @@ -41,11 +41,10 @@ impl<'a> Iterator for PathAncestors<'a> { if let Some(path) = self.current { self.current = path.parent(); - if let Some(ref stop_at) = self.stop_at { - if path == stop_at { + if let Some(ref stop_at) = self.stop_at + && path == stop_at { self.current = None; } - } Some(path) } else { diff --git a/libs/atoll/src/fold.rs b/libs/atoll/src/fold.rs index 4ac969306..d53d3d1ec 100644 --- a/libs/atoll/src/fold.rs +++ b/libs/atoll/src/fold.rs @@ -791,24 +791,21 @@ fn create_match(input: MatchInput) -> Option bool { for v in input.items[u].iter() { if let Some(&upair) = pair_v.get(v) { - if let Some(&upair_dist) = dist_u.get(&upair) { - if let Some(&udist) = dist_u.get(&u) { - if upair_dist == udist.checked_add(1).unwrap() + if let Some(&upair_dist) = dist_u.get(&upair) + && let Some(&udist) = dist_u.get(&u) + && upair_dist == udist.checked_add(1).unwrap() && dfs(upair, d_max, input, pair_u, pair_v, dist_u) { pair_v.insert(v, u); pair_u.insert(u, v); return true; } - } - } - } else if let Some(&udist) = dist_u.get(&u) { - if d_max == udist.checked_add(1).unwrap() { + } else if let Some(&udist) = dist_u.get(&u) + && d_max == udist.checked_add(1).unwrap() { pair_v.insert(v, u); pair_u.insert(u, v); return true; } - } } dist_u.remove(&u); false @@ -826,8 +823,8 @@ fn create_match(input: MatchInput) -> Option(input: MatchInput) -> Option RoutingState { let (nx, ny) = layer.size(); for x in 0..nx { for y in 0..ny { - if let PointState::Routed { net, has_via } = layer[(x, y)] { - if net == old { + if let PointState::Routed { net, has_via } = layer[(x, y)] + && net == old { layer[(x, y)] = PointState::Routed { net: new, has_via }; } - } } } } diff --git a/libs/atoll/src/resizing.rs b/libs/atoll/src/resizing.rs index fd0da3be2..74c290c0f 100644 --- a/libs/atoll/src/resizing.rs +++ b/libs/atoll/src/resizing.rs @@ -215,8 +215,8 @@ impl ResizableGrid { } else { for w_col in 0..w { let w_col_phys = increment * w_col as i64; - if let Some(prev_h) = &h[w - w_col][i - 1] { - if let Some(h_min) = self.col_min_height(i, w_col_phys) { + if let Some(prev_h) = &h[w - w_col][i - 1] + && let Some(h_min) = self.col_min_height(i, w_col_phys) { let tot_height = std::cmp::max(prev_h.min_height, h_min); if h[w][i] .as_ref() @@ -231,7 +231,6 @@ impl ResizableGrid { }); } } - } } } } diff --git a/libs/atoll/src/straps.rs b/libs/atoll/src/straps.rs index 90b562aaf..a34917c67 100644 --- a/libs/atoll/src/straps.rs +++ b/libs/atoll/src/straps.rs @@ -218,13 +218,12 @@ impl<'a, L: AtollLayer + Clone> GreedyStrapperState<'a, L> { } } } - if let Some((from, _)) = vias.last() { - if from.coord(track_dir) + strap_via_spacing > track_coord + if let Some((from, _)) = vias.last() + && from.coord(track_dir) + strap_via_spacing > track_coord && from.coord(track_dir) < track_coord + strap_via_spacing { has_via = true; } - } if !has_via && (self.routing_state.is_routed_for_net(ilt.to, strap.net) || self diff --git a/libs/gds/src/lib.rs b/libs/gds/src/lib.rs index 00e856d9d..032176d62 100644 --- a/libs/gds/src/lib.rs +++ b/libs/gds/src/lib.rs @@ -301,7 +301,7 @@ impl GdsFloat64 { let mantissa: f64 = mantissa as f64 / 2f64.powi(8 * 7); // Combine everything into our overall value if neg { - -1.0 * mantissa * 16f64.powi(exp) + -mantissa * 16f64.powi(exp) } else { mantissa * 16f64.powi(exp) } @@ -458,7 +458,7 @@ impl GdsPoint { /// Converts an n-element vector if `i32` into an n/2-element vector of [GdsPoint]s. fn parse_vec(from: &[i32]) -> GdsResult> { - if from.len() % 2 != 0 { + if !from.len().is_multiple_of(2) { return Err(GdsError::Str( "GdsPoint coordinate vector: Invalid number of elements".into(), )); diff --git a/libs/gdsconv/src/conv.rs b/libs/gdsconv/src/conv.rs index 7a3041f9e..0b2b01e50 100644 --- a/libs/gdsconv/src/conv.rs +++ b/libs/gdsconv/src/conv.rs @@ -103,15 +103,14 @@ pub fn from_gds( .intersects() { // Identify pin shapes with multiple labels. - if let Some(ref name) = name { - if name != text.text() { + if let Some(ref name) = name + && name != text.text() { return Err(FromGdsError::PinWithMultipleLabels { cell: cell.name().clone(), label1: name.clone(), label2: text.text().clone(), }); } - } name = Some(text.text().clone()); pin_texts.push(text.clone()); } diff --git a/libs/gdsconv/src/import.rs b/libs/gdsconv/src/import.rs index 958210de1..2416eba7a 100644 --- a/libs/gdsconv/src/import.rs +++ b/libs/gdsconv/src/import.rs @@ -106,11 +106,10 @@ impl<'a> GdsImporter<'a> { fn check_units(&mut self, units: &gds::GdsUnits) -> Result<()> { let gdsunit = units.db_unit(); - if let Some(expected_units) = &self.opts.units { - if (gdsunit - expected_units.db_unit()).abs() / expected_units.db_unit() > 1e-3 { + if let Some(expected_units) = &self.opts.units + && (gdsunit - expected_units.db_unit()).abs() / expected_units.db_unit() > 1e-3 { return Err(GdsImportError); } - } Ok(()) } /// Imports and adds a cell if not already defined diff --git a/libs/macrotools/src/lib.rs b/libs/macrotools/src/lib.rs index e0bf2c351..046a76127 100644 --- a/libs/macrotools/src/lib.rs +++ b/libs/macrotools/src/lib.rs @@ -1181,41 +1181,31 @@ fn apply_generic_type_binding(pred: &mut WherePredicate, ident: Ident, ty: Type) for seg in p.path.segments.iter_mut() { if let PathArguments::AngleBracketed(args) = &mut seg.arguments { for arg in args.args.iter_mut() { - if let GenericArgument::Type(t) = arg { - if let Type::Path(p) = t { - if p.path.segments.len() == 1 { - if let Some(last) = p.path.segments.last_mut() { - if last.ident == ident { + if let GenericArgument::Type(t) = arg + && let Type::Path(p) = t + && p.path.segments.len() == 1 + && let Some(last) = p.path.segments.last_mut() + && last.ident == ident { *t = ty.clone(); } - } - } - } - } } } } } for bound in pred.bounds.iter_mut() { - if let TypeParamBound::Trait(tb) = bound { - if let Some(last) = tb.path.segments.last_mut() { - if let PathArguments::AngleBracketed(args) = &mut last.arguments { + if let TypeParamBound::Trait(tb) = bound + && let Some(last) = tb.path.segments.last_mut() + && let PathArguments::AngleBracketed(args) = &mut last.arguments { for arg in args.args.iter_mut() { - if let GenericArgument::Type(t) = arg { - if let Type::Path(p) = t { - if p.path.segments.len() == 1 { - if let Some(last) = p.path.segments.last_mut() { - if last.ident == ident { + if let GenericArgument::Type(t) = arg + && let Type::Path(p) = t + && p.path.segments.len() == 1 + && let Some(last) = p.path.segments.last_mut() + && last.ident == ident { *t = ty.clone(); } - } - } - } - } } } - } - } } } } @@ -1225,17 +1215,13 @@ fn apply_generic_type_binding_ty(typ: &mut Type, ident: Ident, ty: Type) { for seg in p.path.segments.iter_mut() { if let PathArguments::AngleBracketed(ref mut args) = seg.arguments { for arg in args.args.iter_mut() { - if let GenericArgument::Type(t) = arg { - if let Type::Path(p) = t { - if p.path.segments.len() == 1 { - if let Some(last) = p.path.segments.last_mut() { - if last.ident == ident { + if let GenericArgument::Type(t) = arg + && let Type::Path(p) = t + && p.path.segments.len() == 1 + && let Some(last) = p.path.segments.last_mut() + && last.ident == ident { *t = ty.clone(); } - } - } - } - } } } } diff --git a/libs/psfparser/src/ascii/frontend.rs b/libs/psfparser/src/ascii/frontend.rs index fb1236400..7b668bb38 100644 --- a/libs/psfparser/src/ascii/frontend.rs +++ b/libs/psfparser/src/ascii/frontend.rs @@ -55,7 +55,7 @@ fn parse_psf_inner(input: Pair<'_, Rule>) -> Result> { }) } -fn parse_header(input: Pair<'_, Rule>) -> Result
{ +fn parse_header(input: Pair<'_, Rule>) -> Result> { debug_assert_eq!(input.as_rule(), Rule::header_section); let mut pairs = input.into_inner(); let named_values = pairs.next().unwrap(); @@ -89,7 +89,7 @@ fn parse_value(input: Pair) -> Result { }) } -fn parse_string(input: Pair) -> Result<&str> { +fn parse_string(input: Pair<'_, Rule>) -> Result<&str> { debug_assert_eq!(input.as_rule(), Rule::string); Ok(input.into_inner().next().unwrap().as_str()) } diff --git a/libs/psfparser/src/binary/mod.rs b/libs/psfparser/src/binary/mod.rs index e73325c3b..d76433ea3 100644 --- a/libs/psfparser/src/binary/mod.rs +++ b/libs/psfparser/src/binary/mod.rs @@ -614,7 +614,7 @@ fn parse_named_value(data: &[u8]) -> (&[u8], NamedValue<'_>) { fn parse_string(mut data: &[u8]) -> (&[u8], &str) { let len = read_u32(&mut data) as usize; let s = std::str::from_utf8(&data[..len]).unwrap(); - if len % 4 == 0 { + if len.is_multiple_of(4) { (&data[len..], s) } else { (&data[len + 4 - (len % 4)..], s) diff --git a/libs/scir/src/lib.rs b/libs/scir/src/lib.rs index e4dcfecd5..eb592c1c2 100644 --- a/libs/scir/src/lib.rs +++ b/libs/scir/src/lib.rs @@ -1060,11 +1060,10 @@ impl LibraryBuilder { self.cells.retain(|id, _| cells.contains(id)); // Clear top cell if top cell was deleted. - if let Some(top) = self.top_cell() { - if !cells.contains(&top) { + if let Some(top) = self.top_cell() + && !cells.contains(&top) { self.top = None; } - } // Remove primitives. self.primitives.retain(|id, _| primitives.contains(id)); @@ -1473,11 +1472,10 @@ impl LibraryBuilder { for (_, cell) in cells.iter_mut() { for (_, instance) in cell.instances.iter_mut() { - if let ChildId::Primitive(p) = instance.child { - if let Some(primitive) = primitives.get(&p) { + if let ChildId::Primitive(p) = instance.child + && let Some(primitive) = primitives.get(&p) { convert_instance(instance, primitive)?; } - } } } diff --git a/libs/spice/src/netlist.rs b/libs/spice/src/netlist.rs index 51916cc96..ff19d95c8 100644 --- a/libs/spice/src/netlist.rs +++ b/libs/spice/src/netlist.rs @@ -281,13 +281,12 @@ impl NetlisterInstance<'_, S, W> { rename_ground: &Option<(ArcStr, ArcStr)>, ) -> Result { let sig_info = cell.signal(slice.signal()); - if let Some((signal, replace_with)) = rename_ground { - if signal == &sig_info.name && slice.range().is_none() { + if let Some((signal, replace_with)) = rename_ground + && signal == &sig_info.name && slice.range().is_none() { // Ground renaming cannot apply to buses. // TODO assert that the ground port has width 1. return Ok(replace_with.clone()); } - } let mut buf = Vec::new(); self.schema.write_slice(&mut buf, slice, sig_info)?; Ok(ArcStr::from(std::str::from_utf8(&buf).expect( diff --git a/substrate/src/layout/tiling.rs b/substrate/src/layout/tiling.rs index 5779240a2..c43be8b6d 100644 --- a/substrate/src/layout/tiling.rs +++ b/substrate/src/layout/tiling.rs @@ -486,8 +486,8 @@ impl GridTiler { let mut blockage_idx = 0; let mut col_idx = 0; for key in row { - if let Some(blockage) = blockages.get(blockage_idx) { - if col_idx == blockage.start_col { + if let Some(blockage) = blockages.get(blockage_idx) + && col_idx == blockage.start_col { if i == blockage.end_row { blockages.remove(blockage_idx); } else { @@ -495,7 +495,6 @@ impl GridTiler { blockage_idx += 1; } } - } let tile = &self.tiles[*key]; if tile.rowspan > 1 { blockages.push(ColBlockage { diff --git a/substrate/src/types/impls.rs b/substrate/src/types/impls.rs index 57086cac2..02b137da9 100644 --- a/substrate/src/types/impls.rs +++ b/substrate/src/types/impls.rs @@ -208,7 +208,7 @@ impl_direction!( where E: Extend, { - output.extend(std::iter::repeat(Direction::Input).take(self.0.len())) + output.extend(std::iter::repeat_n(Direction::Input, self.0.len())) } ); impl_direction!( @@ -218,7 +218,7 @@ impl_direction!( where E: Extend, { - output.extend(std::iter::repeat(Direction::Output).take(self.0.len())) + output.extend(std::iter::repeat_n(Direction::Output, self.0.len())) } ); impl_direction!( @@ -228,7 +228,7 @@ impl_direction!( where E: Extend, { - output.extend(std::iter::repeat(Direction::InOut).take(self.0.len())) + output.extend(std::iter::repeat_n(Direction::InOut, self.0.len())) } ); impl_direction!( diff --git a/tools/spectre/src/analysis/tran.rs b/tools/spectre/src/analysis/tran.rs index 9964b0ebe..e16a480fe 100644 --- a/tools/spectre/src/analysis/tran.rs +++ b/tools/spectre/src/analysis/tran.rs @@ -180,7 +180,7 @@ impl Save for RawNestedNode { x: output .raw_values .get(name.as_str()) - .expect(&format!("no value for {name} found")) + .unwrap_or_else(|| panic!("no value for {name} found")) .clone(), } } From 2bc575378dec4e3f04edf45b149da865d98d6cef Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Sat, 20 Dec 2025 08:18:28 -0800 Subject: [PATCH 05/28] fix compile error --- libs/macrotools/src/lib.rs | 48 +++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/libs/macrotools/src/lib.rs b/libs/macrotools/src/lib.rs index 046a76127..14b823f07 100644 --- a/libs/macrotools/src/lib.rs +++ b/libs/macrotools/src/lib.rs @@ -1067,8 +1067,8 @@ pub fn derive_trait(config: &DeriveTrait, input: &DeriveInput) -> proc_macro2::T let (imp, ty, wher) = generics.split_for_impl(); let (receiver, declare_receiver) = match receiver { - Receiver::Ref => (quote! { & }, quote! { ref }), - Receiver::MutRef => (quote! { &mut }, quote! { ref mut }), + Receiver::Ref => (quote! { & }, quote! {}), + Receiver::MutRef => (quote! { &mut }, quote! {}), Receiver::Owned => (quote! {}, quote! {}), }; @@ -1183,11 +1183,12 @@ fn apply_generic_type_binding(pred: &mut WherePredicate, ident: Ident, ty: Type) for arg in args.args.iter_mut() { if let GenericArgument::Type(t) = arg && let Type::Path(p) = t - && p.path.segments.len() == 1 - && let Some(last) = p.path.segments.last_mut() - && last.ident == ident { - *t = ty.clone(); - } + && p.path.segments.len() == 1 + && let Some(last) = p.path.segments.last_mut() + && last.ident == ident + { + *t = ty.clone(); + } } } } @@ -1195,17 +1196,19 @@ fn apply_generic_type_binding(pred: &mut WherePredicate, ident: Ident, ty: Type) for bound in pred.bounds.iter_mut() { if let TypeParamBound::Trait(tb) = bound && let Some(last) = tb.path.segments.last_mut() - && let PathArguments::AngleBracketed(args) = &mut last.arguments { - for arg in args.args.iter_mut() { - if let GenericArgument::Type(t) = arg - && let Type::Path(p) = t - && p.path.segments.len() == 1 - && let Some(last) = p.path.segments.last_mut() - && last.ident == ident { - *t = ty.clone(); - } - } + && let PathArguments::AngleBracketed(args) = &mut last.arguments + { + for arg in args.args.iter_mut() { + if let GenericArgument::Type(t) = arg + && let Type::Path(p) = t + && p.path.segments.len() == 1 + && let Some(last) = p.path.segments.last_mut() + && last.ident == ident + { + *t = ty.clone(); } + } + } } } } @@ -1217,11 +1220,12 @@ fn apply_generic_type_binding_ty(typ: &mut Type, ident: Ident, ty: Type) { for arg in args.args.iter_mut() { if let GenericArgument::Type(t) = arg && let Type::Path(p) = t - && p.path.segments.len() == 1 - && let Some(last) = p.path.segments.last_mut() - && last.ident == ident { - *t = ty.clone(); - } + && p.path.segments.len() == 1 + && let Some(last) = p.path.segments.last_mut() + && last.ident == ident + { + *t = ty.clone(); + } } } } From 98b404e803915d7a82098ab27435d71dcf7d7ea6 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Sat, 20 Dec 2025 08:19:40 -0800 Subject: [PATCH 06/28] fix ref errors --- libs/macrotools/src/lib.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libs/macrotools/src/lib.rs b/libs/macrotools/src/lib.rs index 14b823f07..6e7a8cf14 100644 --- a/libs/macrotools/src/lib.rs +++ b/libs/macrotools/src/lib.rs @@ -1066,10 +1066,10 @@ pub fn derive_trait(config: &DeriveTrait, input: &DeriveInput) -> proc_macro2::T add_trait_bounds(&mut generics, quote!(#trait_)); let (imp, ty, wher) = generics.split_for_impl(); - let (receiver, declare_receiver) = match receiver { - Receiver::Ref => (quote! { & }, quote! {}), - Receiver::MutRef => (quote! { &mut }, quote! {}), - Receiver::Owned => (quote! {}, quote! {}), + let receiver = match receiver { + Receiver::Ref => quote! { & }, + Receiver::MutRef => quote! { &mut }, + Receiver::Owned => quote! {}, }; let match_clause: TokenStream = match &input.data { @@ -1107,7 +1107,7 @@ pub fn derive_trait(config: &DeriveTrait, input: &DeriveInput) -> proc_macro2::T let declare = fields.named.iter().map(|f| { let name = f.ident.as_ref().unwrap(); quote_spanned! { f.span() => - #declare_receiver #name, + #name, } }); quote! { @@ -1124,7 +1124,7 @@ pub fn derive_trait(config: &DeriveTrait, input: &DeriveInput) -> proc_macro2::T let declare = fields.unnamed.iter().enumerate().map(|(i, f)| { let ident = format_ident!("field{i}"); quote_spanned! { f.span() => - #declare_receiver #ident, + #ident, } }); quote! { From f1f285a41ef8e5edd5defddf32c6e482cab86fb1 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Sun, 21 Dec 2025 21:04:33 -0800 Subject: [PATCH 07/28] fix warnings for Rust 2024 --- examples/latest/strongarm/src/tech/sky130.rs | 18 ++++----- libs/atoll/src/grid.rs | 9 +++-- libs/cache/src/error.rs | 2 +- libs/cache/src/persistent/client.rs | 40 ++++++++++++++------ pdks/sky130/src/atoll.rs | 10 ++--- pdks/sky130/src/mos.rs | 6 +-- substrate/src/block/tests.rs | 1 + 7 files changed, 53 insertions(+), 33 deletions(-) diff --git a/examples/latest/strongarm/src/tech/sky130.rs b/examples/latest/strongarm/src/tech/sky130.rs index 188ad058b..8719140f2 100644 --- a/examples/latest/strongarm/src/tech/sky130.rs +++ b/examples/latest/strongarm/src/tech/sky130.rs @@ -1,12 +1,12 @@ //! SKY130-specific implementations. -use crate::tiles::{MosKind, MosTileParams, TapIo, TapIoView, TapTileParams, TileKind}; use crate::StrongArmImpl; +use crate::tiles::{MosKind, MosTileParams, TapIo, TapIoView, TapTileParams, TileKind}; use atoll::resizing::ResizableInstance; use atoll::route::GreedyRouter; use atoll::{Tile, TileBuilder, TileData}; -use sky130::atoll::{MosLength, NmosTile, PmosTile, Sky130ViaMaker}; use sky130::Sky130; +use sky130::atoll::{MosLength, NmosTile, PmosTile, Sky130ViaMaker}; use substrate::arcstr; use substrate::arcstr::ArcStr; use substrate::block::Block; @@ -282,23 +282,23 @@ mod tests { use atoll::TileWrapper; use pegasus::lvs::LvsParams; use pegasus::{ - drc::{run_drc, DrcParams}, - lvs::LvsStatus, RuleCheck, + drc::{DrcParams, run_drc}, + lvs::LvsStatus, }; use quantus::pex::Pex; use rust_decimal::Decimal; use rust_decimal_macros::dec; use scir::netlist::ConvertibleNetlister; use sky130::corner::Sky130Corner; - use sky130::{layout::to_gds, Sky130, Sky130CdsSchema}; - use spice::{netlist::NetlistOptions, Spice}; + use sky130::{Sky130, Sky130CdsSchema, layout::to_gds}; + use spice::{Spice, netlist::NetlistOptions}; use std::path::{Path, PathBuf}; use std::sync::Arc; use substrate::context::Context; use substrate::geometry::dir::Dir; - use substrate::simulation::waveform::TimeWaveform; use substrate::simulation::Pvt; + use substrate::simulation::waveform::TimeWaveform; use substrate::{block::Block, schematic::ConvertSchema}; pub const SKY130_DRC: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_DRC"); @@ -746,8 +746,8 @@ mod tests { } chart .configure_series_labels() - .background_style(&WHITE.mix(0.8)) - .border_style(&BLACK) + .background_style(WHITE.mix(0.8)) + .border_style(BLACK) .draw() .unwrap(); diff --git a/libs/atoll/src/grid.rs b/libs/atoll/src/grid.rs index 9b996d3c4..77f3ba706 100644 --- a/libs/atoll/src/grid.rs +++ b/libs/atoll/src/grid.rs @@ -761,9 +761,10 @@ impl RoutingState { for x in 0..nx { for y in 0..ny { if let PointState::Routed { net, has_via } = layer[(x, y)] - && net == old { - layer[(x, y)] = PointState::Routed { net: new, has_via }; - } + && net == old + { + layer[(x, y)] = PointState::Routed { net: new, has_via }; + } } } } @@ -1074,7 +1075,7 @@ impl RoutingState { /// * We find two track coordinates on M(N+1): one by rounding up; the other by rounding down. /// * If the two coordinates are equal, we report a successor to that grid point. /// * Otherwise, we report a successor to the track with a closer physical coordinate, assuming - /// the farther coordinate is unobstructed. + /// the farther coordinate is unobstructed. pub fn successors( &self, node: RoutingNode, diff --git a/libs/cache/src/error.rs b/libs/cache/src/error.rs index 5eef0bc38..754bdfcbe 100644 --- a/libs/cache/src/error.rs +++ b/libs/cache/src/error.rs @@ -31,7 +31,7 @@ pub enum Error { Flexbuffers(#[from] flexbuffers::DeserializationError), #[allow(missing_docs)] #[error(transparent)] - Rpc(#[from] tonic::Status), + Rpc(#[from] Box), #[allow(missing_docs)] #[error(transparent)] Join(#[from] tokio::task::JoinError), diff --git a/libs/cache/src/persistent/client.rs b/libs/cache/src/persistent/client.rs index f658cb0a8..214b2f5b6 100644 --- a/libs/cache/src/persistent/client.rs +++ b/libs/cache/src/persistent/client.rs @@ -7,26 +7,27 @@ use std::{ net::TcpListener, path::{Path, PathBuf}, sync::{ - mpsc::{channel, Receiver, RecvTimeoutError, Sender}, Arc, Mutex, + mpsc::{Receiver, RecvTimeoutError, Sender, channel}, }, thread, time::Duration, }; use backoff::ExponentialBackoff; -use serde::{de::DeserializeOwned, Deserialize, Serialize}; +use serde::{Deserialize, Serialize, de::DeserializeOwned}; use tokio::runtime::{Handle, Runtime}; use tonic::transport::{Channel, Endpoint}; use crate::{ + CacheHandle, CacheHandleInner, Cacheable, CacheableWithState, GenerateFn, GenerateResultFn, + GenerateResultWithStateFn, GenerateWithStateFn, Namespace, error::{ArcResult, Error, Result}, rpc::{ local::{self, local_cache_client}, remote::{self, remote_cache_client}, }, - run_generator, CacheHandle, CacheHandleInner, Cacheable, CacheableWithState, GenerateFn, - GenerateResultFn, GenerateResultWithStateFn, GenerateWithStateFn, Namespace, + run_generator, }; use super::server::Server; @@ -825,7 +826,8 @@ impl Client { key, assign, }) - .await? + .await + .map_err(Box::new)? .into_inner()) }); Ok(out?.entry_status.unwrap()) @@ -835,7 +837,10 @@ impl Client { fn heartbeat_rpc_local(&self, id: u64) -> Result<()> { self.inner.handle.block_on(async { let mut client = self.connect_local().await?; - client.heartbeat(local::HeartbeatRequest { id }).await?; + client + .heartbeat(local::HeartbeatRequest { id }) + .await + .map_err(Box::new)?; Ok(()) }) } @@ -844,7 +849,10 @@ impl Client { fn done_rpc_local(&self, id: u64) -> Result<()> { self.inner.handle.block_on(async { let mut client = self.connect_local().await?; - client.done(local::DoneRequest { id }).await?; + client + .done(local::DoneRequest { id }) + .await + .map_err(Box::new)?; Ok(()) }) } @@ -853,7 +861,10 @@ impl Client { fn drop_rpc_local(&self, id: u64) -> Result<()> { self.inner.handle.block_on(async { let mut client = self.connect_local().await?; - client.drop(local::DropRequest { id }).await?; + client + .drop(local::DropRequest { id }) + .await + .map_err(Box::new)?; Ok(()) }) } @@ -1025,7 +1036,8 @@ impl Client { key, assign, }) - .await? + .await + .map_err(Box::new)? .into_inner()) }); Ok(out?.entry_status.unwrap()) @@ -1035,7 +1047,10 @@ impl Client { fn heartbeat_rpc_remote(&self, id: u64) -> Result<()> { self.inner.handle.block_on(async { let mut client = self.connect_remote().await?; - client.heartbeat(remote::HeartbeatRequest { id }).await?; + client + .heartbeat(remote::HeartbeatRequest { id }) + .await + .map_err(Box::new)?; Ok(()) }) } @@ -1044,7 +1059,10 @@ impl Client { fn set_rpc_remote(&self, id: u64, value: Vec) -> Result<()> { self.inner.handle.block_on(async { let mut client = self.connect_remote().await?; - client.set(remote::SetRequest { id, value }).await?; + client + .set(remote::SetRequest { id, value }) + .await + .map_err(Box::new)?; Ok(()) }) } diff --git a/pdks/sky130/src/atoll.rs b/pdks/sky130/src/atoll.rs index f1ed94abf..fcd7262de 100644 --- a/pdks/sky130/src/atoll.rs +++ b/pdks/sky130/src/atoll.rs @@ -1,8 +1,8 @@ //! SKY130 primitives for [ATOLL](atoll). +use crate::Sky130; use crate::layers::Sky130Layer; use crate::mos::{MosParams, Nfet01v8, Pfet01v8}; -use crate::Sky130; use arcstr::ArcStr; use atoll::abs::TrackCoord; use atoll::grid::{AbstractLayer, LayerStack, PdkLayer, RoutingGrid, TrackOffset}; @@ -331,8 +331,8 @@ impl MosTile { _ => i + 1, }]; - let gate_idx = |idx| match self.gate_dir { - GateDir::Left => (idx + 1) / 2, + let gate_idx = |idx: usize| match self.gate_dir { + GateDir::Left => idx.div_ceil(2), GateDir::Right => idx / 2, }; let poly_li = Rect::from_spans(li_track.hspan(), gate_vspan); @@ -470,7 +470,7 @@ impl Schematic for NmosTile { NodeBundle:: { d: io.sd[i], g: io.g[match self.tile.gate_dir { - GateDir::Left => (i + 1) / 2, + GateDir::Left => i.div_ceil(2), GateDir::Right => i / 2, }], s: io.sd[i + 1], @@ -579,7 +579,7 @@ impl Schematic for PmosTile { NodeBundle:: { d: io.sd[i], g: io.g[match self.tile.gate_dir { - GateDir::Left => (i + 1) / 2, + GateDir::Left => i.div_ceil(2), GateDir::Right => i / 2, }], s: io.sd[i + 1], diff --git a/pdks/sky130/src/mos.rs b/pdks/sky130/src/mos.rs index cb8a2d643..e93b0a609 100644 --- a/pdks/sky130/src/mos.rs +++ b/pdks/sky130/src/mos.rs @@ -13,8 +13,8 @@ use substrate::geometry::bbox::Bbox; use substrate::geometry::dir::Dir; use substrate::geometry::rect::Rect; use substrate::geometry::span::Span; -use substrate::layout::tracks::{RoundingMode, Tracks, UniformTracks}; use substrate::layout::Layout; +use substrate::layout::tracks::{RoundingMode, Tracks, UniformTracks}; use substrate::schematic::CellBuilder; use substrate::types::codegen::PortGeometryBundle; use substrate::types::layout::PortGeometry; @@ -435,8 +435,8 @@ impl MosTile { _ => i + 1, }]; - let gate_idx = |idx| match self.gate_dir { - GateDir::Left => (idx + 1) / 2, + let gate_idx = |idx: usize| match self.gate_dir { + GateDir::Left => idx.div_ceil(2), GateDir::Right => idx / 2, }; let poly_li = Rect::from_spans(li_track.hspan(), gate_vspan); diff --git a/substrate/src/block/tests.rs b/substrate/src/block/tests.rs index 85ef76f1a..fe8eb6cc0 100644 --- a/substrate/src/block/tests.rs +++ b/substrate/src/block/tests.rs @@ -3,6 +3,7 @@ use rust_decimal::Decimal; use serde::{Deserialize, Serialize}; use substrate::block::Block; +#[allow(unused)] #[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, Serialize, Deserialize, Block)] #[substrate(io = "TestbenchIo")] pub struct DelayCellTb { From 9bc94074bfc4c2facf781b23d6235ec5c6d09e78 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 18:57:22 -0800 Subject: [PATCH 08/28] clean up CI --- .github/workflows/check-repo.yml | 2 +- .github/workflows/check-workspace.yml | 39 ++++++++++++------- .github/workflows/ci-main.yml | 5 ++- .github/workflows/deploy-api-docs.yml | 24 ++++++++++-- .github/workflows/deploy-docs.yml | 7 +++- .github/workflows/deploy-release-api-docs.yml | 14 ------- .github/workflows/tag-release.yml | 19 +++++++++ docs/api/{deploy.sh => build.sh} | 4 +- 8 files changed, 75 insertions(+), 39 deletions(-) delete mode 100644 .github/workflows/deploy-release-api-docs.yml create mode 100644 .github/workflows/tag-release.yml rename docs/api/{deploy.sh => build.sh} (70%) diff --git a/.github/workflows/check-repo.yml b/.github/workflows/check-repo.yml index b49d887b5..3c9344ac4 100644 --- a/.github/workflows/check-repo.yml +++ b/.github/workflows/check-repo.yml @@ -25,7 +25,7 @@ jobs: workspace_path: examples/release check-docs: name: check-docs - runs-on: bwrc + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Check docs diff --git a/.github/workflows/check-workspace.yml b/.github/workflows/check-workspace.yml index 214e3c365..823c00133 100644 --- a/.github/workflows/check-workspace.yml +++ b/.github/workflows/check-workspace.yml @@ -16,9 +16,20 @@ env: jobs: lint: name: lint - runs-on: bwrc + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + id: toolchain + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: ${{ steps.toolchain.outputs.cachekey }} + workspaces: | + ${{ inputs.workspace_path }} + cache_on_failure: "true" - name: Check formatting run: | cargo fmt --check @@ -43,16 +54,16 @@ jobs: run: | cargo hack clippy --feature-powerset --tests -- -D warnings working-directory: ${{ inputs.workspace_path }} - test: - name: test - runs-on: bwrc - steps: - - uses: actions/checkout@v4 - - name: Test locked - if: ${{ inputs.locked }} - run: cargo test --locked --all-features - working-directory: ${{ inputs.workspace_path }} - - name: Test - if: ${{ ! inputs.locked }} - run: cargo test --all-features - working-directory: ${{ inputs.workspace_path }} + # test: + # name: test + # runs-on: bwrc + # steps: + # - uses: actions/checkout@v4 + # - name: Test locked + # if: ${{ inputs.locked }} + # run: cargo test --locked --all-features + # working-directory: ${{ inputs.workspace_path }} + # - name: Test + # if: ${{ ! inputs.locked }} + # run: cargo test --all-features + # working-directory: ${{ inputs.workspace_path }} diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 4647767fd..01084871c 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -76,8 +76,9 @@ jobs: with: key: ${{ steps.toolchain.outputs.cachekey }} workspaces: | - ./substrate -> target - ./cargo-workspaces/cargo-workspaces -> target + ./substrate + ./cargo-workspaces/cargo-workspaces + cache_on_failure: "true" - name: Build `cargo-workspaces` working-directory: cargo-workspaces/cargo-workspaces run: cargo build diff --git a/.github/workflows/deploy-api-docs.yml b/.github/workflows/deploy-api-docs.yml index ced4a3d8c..21d8ce2db 100644 --- a/.github/workflows/deploy-api-docs.yml +++ b/.github/workflows/deploy-api-docs.yml @@ -12,20 +12,36 @@ on: env: CARGO_TERM_COLOR: always - DOCS_NAME: ${{ inputs.name || github.ref.name }} - PUBLIC_DOCS_DIR: /tools/C/rahulkumar/substrate_docs_public jobs: deploy-api-docs: name: Deploy API documentation - runs-on: bwrc + runs-on: ubuntu-latest environment: docs steps: - uses: actions/checkout@v4 + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + id: toolchain + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: ${{ steps.toolchain.outputs.cachekey }} + workspaces: | + ${{ inputs.workspace_path }} + cache_on_failure: "true" - uses: superfly/flyctl-actions/setup-flyctl@master with: version: 0.3.66 - - run: ./deploy.sh ${{ env.PUBLIC_DOCS_DIR }} ${{ inputs.name || github.ref_name }} + - run: ./build.sh . ${{ inputs.name || github.ref_name }} + working-directory: docs/api + - uses: actions/checkout@v4 + with: + ref: refs/tags/release + - run: ./build.sh . release + working-directory: docs/api + - run: flyctl deploy --remote-only --detach working-directory: docs/api env: FLY_ACCESS_TOKEN: ${{ secrets.FLY_API_TOKEN_API }} diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index fb9850100..7d1cffd2a 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -18,14 +18,17 @@ env: jobs: deploy-docs: name: Deploy documentation - runs-on: bwrc + runs-on: ubuntu-latest environment: docs steps: - uses: actions/checkout@v4 - uses: superfly/flyctl-actions/setup-flyctl@master with: version: 0.3.66 - - run: ./deploy.sh ${{ env.PUBLIC_DOCS_DIR }} ${{ inputs.name || github.ref_name }} + - uses: actions/setup-node@v3 + with: + node-version: 23.x + - run: ./deploy.sh . ${{ inputs.name || github.ref_name }} working-directory: docs/docusaurus env: FLY_ACCESS_TOKEN: ${{ secrets.FLY_API_TOKEN_DOCS }} diff --git a/.github/workflows/deploy-release-api-docs.yml b/.github/workflows/deploy-release-api-docs.yml deleted file mode 100644 index 5f8010d59..000000000 --- a/.github/workflows/deploy-release-api-docs.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: deploy-release-api-docs - -on: - pull_request_target: - types: [labeled] - branches: [main] - -jobs: - deploy-api-docs: - if: "${{ github.event.label.name == 'autorelease: merged' }}" - uses: ./.github/workflows/deploy-api-docs.yml - secrets: inherit - with: - name: release diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml new file mode 100644 index 000000000..cac221e65 --- /dev/null +++ b/.github/workflows/tag-release.yml @@ -0,0 +1,19 @@ +name: tag-release + +on: + pull_request_target: + types: [labeled] + branches: [main] + +jobs: + deploy-api-docs: + if: "${{ github.event.label.name == 'autorelease: merged' }}" + uses: actions/github-script@v5 + with: + script: | + github.rest.git.updateRef({ + owner: context.repo.owner, + repo: context.repo.repo, + ref: 'refs/tags/release', + sha: context.sha + }) diff --git a/docs/api/deploy.sh b/docs/api/build.sh similarity index 70% rename from docs/api/deploy.sh rename to docs/api/build.sh index 437aadd59..fb3095e0f 100755 --- a/docs/api/deploy.sh +++ b/docs/api/build.sh @@ -14,9 +14,9 @@ fi PUBLIC_DOCS_DIR=$1 REF_NAME=$2 -just build +cargo d --no-deps --workspace --all-features --target-dir ./target --exclude tests --exclude examples +echo "" > ./target/doc/index.html rm -rf $PUBLIC_DOCS_DIR/api/static/$REF_NAME mkdir -p $PUBLIC_DOCS_DIR/api/static/$REF_NAME cp -r ./target/doc/. $PUBLIC_DOCS_DIR/api/static/$REF_NAME cd $PUBLIC_DOCS_DIR/api -flyctl deploy --remote-only --detach From 5c900a283482c373c484089b208a5cc0b6ef31f3 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 20:42:49 -0800 Subject: [PATCH 09/28] bump versions --- Cargo.lock | 942 +++--- Cargo.toml | 12 + codegen/Cargo.toml | 6 +- docs/docusaurus/yarn.lock | 3852 +++++++++++----------- examples/latest/resistor_bank/Cargo.toml | 1 - libs/atoll/Cargo.toml | 1 - pdks/sky130/Cargo.toml | 1 - substrate/Cargo.toml | 4 +- tools/ngspice/Cargo.toml | 22 +- 9 files changed, 2402 insertions(+), 2439 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 72240b3f2..ca43cb2f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,15 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - [[package]] name = "adler2" version = "2.0.1" @@ -23,7 +14,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "once_cell", "version_check", ] @@ -42,9 +33,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -60,9 +51,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -75,9 +66,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" @@ -90,29 +81,29 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "aph_disjoint_set" @@ -173,7 +164,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -190,9 +181,8 @@ dependencies = [ "itertools", "layir", "num", - "pathfinding", "rand", - "rustc-hash 1.1.0", + "rustc-hash", "serde", "slotmap", "substrate", @@ -213,9 +203,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" -version = "0.8.4" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" dependencies = [ "axum-core", "bytes", @@ -229,8 +219,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rustversion", - "serde", + "serde_core", "sync_wrapper", "tower", "tower-layer", @@ -239,9 +228,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.2" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" dependencies = [ "bytes", "futures-core", @@ -250,7 +239,6 @@ dependencies = [ "http-body-util", "mime", "pin-project-lite", - "rustversion", "sync_wrapper", "tower-layer", "tower-service", @@ -262,26 +250,11 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "instant", "rand", ] -[[package]] -name = "backtrace" -version = "0.3.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - [[package]] name = "base64" version = "0.22.1" @@ -296,9 +269,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "bitvec" @@ -323,9 +296,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" dependencies = [ "borsh-derive", "cfg_aliases", @@ -333,22 +306,22 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" +checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" dependencies = [ "once_cell", - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "bstr" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" dependencies = [ "memchr", "serde", @@ -356,9 +329,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" [[package]] name = "bytecheck" @@ -384,9 +357,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" [[package]] name = "byteorder" @@ -396,9 +369,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "cache" @@ -437,9 +410,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.36" +version = "1.2.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" +checksum = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583" dependencies = [ "find-msvc-tools", "shlex", @@ -458,9 +431,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -470,16 +443,16 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" dependencies = [ "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link 0.2.0", + "windows-link", ] [[package]] @@ -506,9 +479,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.47" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" +checksum = "3e34525d5bbbd55da2bb745d34b36121baac88d07619a9a09cfcf4a6c0832785" dependencies = [ "clap_builder", "clap_derive", @@ -516,9 +489,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.47" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" +checksum = "59a20016a20a3da95bef50ec7238dbd09baeef4311dcdd38ec15aba69812fb61" dependencies = [ "anstream", "anstyle", @@ -528,21 +501,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.47" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" [[package]] name = "codegen" @@ -553,7 +526,7 @@ dependencies = [ "darling", "examples", "macrotools", - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", "rust_decimal", @@ -561,7 +534,7 @@ dependencies = [ "scir", "snippets", "substrate", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -607,18 +580,18 @@ dependencies = [ [[package]] name = "convert_case" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" +checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" dependencies = [ "unicode-segmentation", ] [[package]] name = "convert_case" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" dependencies = [ "unicode-segmentation", ] @@ -729,9 +702,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -758,7 +731,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -769,19 +742,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.106", -] - -[[package]] -name = "deprecate-until" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3767f826efbbe5a5ae093920b58b43b01734202be697e1354914e862e8e704" -dependencies = [ - "proc-macro2", - "quote", - "semver", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -792,7 +753,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -813,7 +774,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -823,28 +784,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "derive_more" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" dependencies = [ "derive_more-impl", ] [[package]] name = "derive_more-impl" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ - "convert_case 0.7.1", + "convert_case 0.10.0", "proc-macro2", "quote", - "syn 2.0.106", + "rustc_version", + "syn 2.0.114", "unicode-xid", ] @@ -890,7 +852,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -910,9 +872,9 @@ checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" [[package]] name = "duplicate" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97af9b5f014e228b33e77d75ee0e6e87960124f0f4b16337b586a6bec91867b1" +checksum = "8e92f10a49176cbffacaedabfaa11d51db1ea0f80a83c26e1873b43cd1742c24" dependencies = [ "heck", "proc-macro2", @@ -921,9 +883,9 @@ dependencies = [ [[package]] name = "dwrote" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c93d234bac0cdd0e2ac08bc8a5133f8df2169e95b262dfcea5e5cb7855672f" +checksum = "9e1b35532432acc8b19ceed096e35dfa088d3ea037fe4f3c085f1f97f33b4d02" dependencies = [ "lazy_static", "libc", @@ -963,14 +925,14 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "env_filter" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" dependencies = [ "log", ] @@ -1000,7 +962,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -1036,9 +998,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.1" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" +checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db" [[package]] name = "fixedbitset" @@ -1048,9 +1010,9 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369" dependencies = [ "crc32fast", "miniz_oxide", @@ -1058,9 +1020,9 @@ dependencies = [ [[package]] name = "flexbuffers" -version = "25.2.10" +version = "25.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "935627e7bc8f083035d9faad09ffaed9128f73fb1f74a8798f115749c43378e8" +checksum = "8bc752b3d049e0705749b9999d0b130d6cf62935bc7762fd3bdb7636047abe43" dependencies = [ "bitflags 1.3.2", "byteorder", @@ -1093,7 +1055,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c7e611d49285d4c4b2e1727b72cf05353558885cc5252f93707b845dfcaf3d3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "byteorder", "core-foundation", "core-graphics", @@ -1130,7 +1092,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -1190,7 +1152,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -1279,33 +1241,33 @@ version = "0.1.1" dependencies = [ "darling", "macrotools", - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.4+wasi-0.2.4", + "wasip2", ] [[package]] @@ -1318,17 +1280,11 @@ dependencies = [ "weezl", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "globset" -version = "0.4.16" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" +checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" dependencies = [ "aho-corasick", "bstr", @@ -1343,7 +1299,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "ignore", "walkdir", ] @@ -1359,9 +1315,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -1396,9 +1352,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" [[package]] name = "hashlink" @@ -1423,12 +1379,11 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -1478,9 +1433,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ "atomic-waker", "bytes", @@ -1514,9 +1469,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" dependencies = [ "bytes", "futures-channel", @@ -1527,7 +1482,7 @@ dependencies = [ "hyper", "libc", "pin-project-lite", - "socket2 0.6.0", + "socket2 0.6.2", "tokio", "tower-service", "tracing", @@ -1535,9 +1490,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1565,9 +1520,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "ignore" -version = "0.4.23" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" +checksum = "d3d782a365a015e0f5c04902246139249abf769125006fbe7649e2ee88169b4a" dependencies = [ "crossbeam-deque", "globset", @@ -1601,18 +1556,19 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "indexmap" -version = "2.11.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "serde", + "serde_core", ] [[package]] @@ -1624,31 +1580,11 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "integer-sqrt" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" -dependencies = [ - "num-traits", -] - -[[package]] -name = "io-uring" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" -dependencies = [ - "bitflags 2.9.4", - "cfg-if", - "libc", -] - [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -1661,9 +1597,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jpeg-decoder" @@ -1673,9 +1609,9 @@ checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" [[package]] name = "js-sys" -version = "0.3.78" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" dependencies = [ "once_cell", "wasm-bindgen", @@ -1717,33 +1653,33 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.175" +version = "0.2.180" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" [[package]] name = "libloading" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-targets 0.53.3", + "windows-link", ] [[package]] name = "libm" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "libc", ] @@ -1772,9 +1708,9 @@ checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "macrotools" @@ -1783,7 +1719,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -1827,9 +1763,9 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "mime" @@ -1849,13 +1785,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.4" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -1909,11 +1845,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -1959,7 +1895,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -2035,15 +1971,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.21.3" @@ -2052,9 +1979,9 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "once_cell_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "option-ext" @@ -2114,20 +2041,6 @@ dependencies = [ "rustc_version", ] -[[package]] -name = "pathfinding" -version = "4.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ac35caa284c08f3721fb33c2741b5f763decaf42d080c8a6a722154347017e" -dependencies = [ - "deprecate-until", - "indexmap", - "integer-sqrt", - "num-traits", - "rustc-hash 2.1.1", - "thiserror", -] - [[package]] name = "pathtree" version = "0.3.0" @@ -2151,20 +2064,19 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "2c9eb05c21a464ea704b53158d358a31e6425db2f63a1a7312268b05fe2b75f7" dependencies = [ "memchr", - "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.8.1" +version = "2.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" +checksum = "68f9dbced329c441fa79d80472764b1a2c7e57123553b8519b36663a2fb234ed" dependencies = [ "pest", "pest_generator", @@ -2172,22 +2084,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.1" +version = "2.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" +checksum = "3bb96d5051a78f44f43c8f712d8e810adb0ebf923fc9ed2655a7f66f63ba8ee5" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "pest_meta" -version = "2.8.1" +version = "2.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" +checksum = "602113b5b5e8621770cfd490cfd90b9f84ab29bd2b0e49ad83eb6d186cef2365" dependencies = [ "pest", "sha2", @@ -2258,7 +2170,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -2354,7 +2266,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -2369,11 +2281,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit 0.22.27", + "toml_edit 0.23.10+spec-1.0.0", ] [[package]] @@ -2402,9 +2314,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -2417,9 +2329,8 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", "version_check", - "yansi", ] [[package]] @@ -2448,7 +2359,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.106", + "syn 2.0.114", "tempfile", ] @@ -2462,7 +2373,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -2525,9 +2436,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.40" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" dependencies = [ "proc-macro2", ] @@ -2571,7 +2482,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", ] [[package]] @@ -2580,16 +2491,16 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "libredox", "thiserror", ] [[package]] name = "regex" -version = "1.11.2" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -2599,9 +2510,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -2610,9 +2521,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "rend" @@ -2627,7 +2538,6 @@ dependencies = [ name = "resistor_bank" version = "0.1.0" dependencies = [ - "approx", "arcstr", "atoll", "derive-where", @@ -2644,9 +2554,9 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.7.45" +version = "0.7.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" dependencies = [ "bitvec", "bytecheck", @@ -2662,9 +2572,9 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.7.45" +version = "0.7.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" dependencies = [ "proc-macro2", "quote", @@ -2677,7 +2587,7 @@ version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "fallible-iterator", "fallible-streaming-iterator", "hashlink", @@ -2687,9 +2597,9 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.37.2" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d" +checksum = "61f703d19852dbf87cbc513643fa81428361eb6940f1ac14fd58155d295a3eb0" dependencies = [ "arrayvec", "borsh", @@ -2703,32 +2613,20 @@ dependencies = [ [[package]] name = "rust_decimal_macros" -version = "1.37.1" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6268b74858287e1a062271b988a0c534bf85bbeb567fe09331bf40ed78113d5" +checksum = "74a5a6f027e892c7a035c6fddb50435a1fbf5a734ffc0c2a9fed4d0221440519" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.114", ] -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - [[package]] name = "rustc-hash" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - [[package]] name = "rustc_version" version = "0.4.1" @@ -2744,7 +2642,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -2753,15 +2651,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.11.0", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -2772,9 +2670,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" [[package]] name = "same-file" @@ -2810,40 +2708,51 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", + "serde_core", + "zmij", ] [[package]] @@ -2896,18 +2805,19 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" [[package]] name = "simdutf8" @@ -2917,9 +2827,9 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "siphasher" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" [[package]] name = "sky130" @@ -2940,7 +2850,6 @@ dependencies = [ "ngspice", "paste", "pegasus", - "quantus", "rust_decimal", "rust_decimal_macros", "scir", @@ -2996,9 +2905,9 @@ checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "slotmap" -version = "1.0.7" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" dependencies = [ "version_check", ] @@ -3045,12 +2954,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3222,9 +3131,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" dependencies = [ "proc-macro2", "quote", @@ -3245,22 +3154,22 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.22.0" +version = "3.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" +checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", - "rustix 1.1.2", - "windows-sys 0.61.0", + "rustix 1.1.3", + "windows-sys 0.61.2", ] [[package]] name = "tera" -version = "1.20.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee" +checksum = "e8004bca281f2d32df3bacd59bc67b312cb4c70cea46cbd79dbe8ac5ed206722" dependencies = [ "chrono", "chrono-tz", @@ -3275,14 +3184,14 @@ dependencies = [ "serde", "serde_json", "slug", - "unic-segment", + "unicode-segmentation", ] [[package]] name = "test-log" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e33b98a582ea0be1168eba097538ee8dd4bbe0f2b01b22ac92ea30054e5be7b" +checksum = "37d53ac171c92a39e4769491c4b4dde7022c60042254b5fc044ae409d34a24d4" dependencies = [ "env_logger", "test-log-macros", @@ -3291,13 +3200,13 @@ dependencies = [ [[package]] name = "test-log-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451b374529930d7601b1eef8d32bc79ae870b6079b069401709c2a8bf9e75f36" +checksum = "be35209fd0781c5401458ab66e4f98accf63553e8fae7425503e92fdd319783b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -3313,22 +3222,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -3357,32 +3266,29 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ - "backtrace", "bytes", - "io-uring", "libc", "mio", "pin-project-lite", "signal-hook-registry", - "slab", - "socket2 0.6.0", + "socket2 0.6.2", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -3398,9 +3304,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" dependencies = [ "futures-core", "pin-project-lite", @@ -3409,9 +3315,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -3428,7 +3334,7 @@ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.11", "toml_edit 0.22.27", ] @@ -3441,6 +3347,15 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.19.15" @@ -3448,7 +3363,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap", - "toml_datetime", + "toml_datetime 0.6.11", "winnow 0.5.40", ] @@ -3461,9 +3376,30 @@ dependencies = [ "indexmap", "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.11", "toml_write", - "winnow 0.7.13", + "winnow 0.7.14", +] + +[[package]] +name = "toml_edit" +version = "0.23.10+spec-1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +dependencies = [ + "indexmap", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "winnow 0.7.14", +] + +[[package]] +name = "toml_parser" +version = "1.0.6+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +dependencies = [ + "winnow 0.7.14", ] [[package]] @@ -3512,14 +3448,14 @@ dependencies = [ "prost-build", "prost-types", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", @@ -3548,9 +3484,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -3559,20 +3495,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -3591,9 +3527,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", "nu-ansi-term", @@ -3632,18 +3568,18 @@ name = "type_dispatch_macros" version = "0.4.1" dependencies = [ "itertools", - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", "type_dispatch", ] [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -3651,67 +3587,17 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" -[[package]] -name = "unic-char-property" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" -dependencies = [ - "unic-char-range", -] - -[[package]] -name = "unic-char-range" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" - -[[package]] -name = "unic-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" - -[[package]] -name = "unic-segment" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23" -dependencies = [ - "unic-ucd-segment", -] - -[[package]] -name = "unic-ucd-segment" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-version" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" -dependencies = [ - "unic-common", -] - [[package]] name = "unicase" -version = "2.8.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-linebreak" @@ -3727,9 +3613,9 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "unicode-xid" @@ -3759,9 +3645,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" dependencies = [ "js-sys", "wasm-bindgen", @@ -3839,19 +3725,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.4+wasi-0.2.4" +name = "wasip2" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.101" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" dependencies = [ "cfg-if", "once_cell", @@ -3860,25 +3746,11 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.106", - "wasm-bindgen-shared", -] - [[package]] name = "wasm-bindgen-macro" -version = "0.2.101" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3886,31 +3758,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.101" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.106", - "wasm-bindgen-backend", + "syn 2.0.114", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.101" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.78" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" dependencies = [ "js-sys", "wasm-bindgen", @@ -3918,9 +3790,9 @@ dependencies = [ [[package]] name = "weezl" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" +checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" [[package]] name = "winapi" @@ -3944,7 +3816,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -3955,67 +3827,61 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.1.3", + "windows-link", "windows-result", "windows-strings", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - -[[package]] -name = "windows-link" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-result" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] @@ -4042,16 +3908,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", ] [[package]] name = "windows-sys" -version = "0.61.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.0", + "windows-link", ] [[package]] @@ -4072,19 +3938,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.1.3", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -4095,9 +3961,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -4107,9 +3973,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -4119,9 +3985,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -4131,9 +3997,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -4143,9 +4009,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -4155,9 +4021,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -4167,9 +4033,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -4179,9 +4045,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" @@ -4194,9 +4060,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] @@ -4212,9 +4078,9 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.45.1" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" [[package]] name = "wyz" @@ -4225,12 +4091,6 @@ dependencies = [ "tap", ] -[[package]] -name = "yansi" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" - [[package]] name = "yeslogic-fontconfig-sys" version = "6.0.0" @@ -4244,20 +4104,26 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "fdea86ddd5568519879b8187e1cf04e24fce28f7fe046ceecbce472ff19a2572" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "0c15e1b46eff7c6c91195752e0eeed8ef040e391cdece7c25376957d5f15df22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] + +[[package]] +name = "zmij" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439" diff --git a/Cargo.toml b/Cargo.toml index 887e3571e..103fbea89 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,3 +51,15 @@ members = [ exclude = ["examples/release"] +[workspace.dependencies] +serde = { version = "1", features = ["derive"] } +arcstr = { version = "1", features = ["serde"] } +rust_decimal = "1" +rust_decimal_macros = "1" +tera = "1" +lazy_static = "1" +tracing = "0.1" +indexmap = { version = "2", features = ["serde"] } +unicase = "2" +approx = "0.5" +thiserror = "2" diff --git a/codegen/Cargo.toml b/codegen/Cargo.toml index a6a6cc315..624258ddb 100644 --- a/codegen/Cargo.toml +++ b/codegen/Cargo.toml @@ -17,9 +17,9 @@ macrotools = { version = "0.2.0", registry = "substrate", path = "../libs/macrot [dev-dependencies] substrate = { version = "<=0.10.2", registry = "substrate", path = "../substrate" } scir = { version = "<=0.9.1", registry = "substrate", path = "../libs/scir" } -arcstr = "1" -rust_decimal = "1" -rust_decimal_macros = "1" +arcstr = { workspace = true } +rust_decimal = { workspace = true } +rust_decimal_macros = { workspace = true } [build-dependencies] snippets = { version = "0.7.0", registry = "substrate", path = "../docs/snippets" } diff --git a/docs/docusaurus/yarn.lock b/docs/docusaurus/yarn.lock index f05b3cab5..a834d899b 100644 --- a/docs/docusaurus/yarn.lock +++ b/docs/docusaurus/yarn.lock @@ -2,399 +2,406 @@ # yarn lockfile v1 -"@algolia/autocomplete-core@1.17.7": - version "1.17.7" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz#2c410baa94a47c5c5f56ed712bb4a00ebe24088b" - integrity sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q== - dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.17.7" - "@algolia/autocomplete-shared" "1.17.7" - -"@algolia/autocomplete-plugin-algolia-insights@1.17.7": - version "1.17.7" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz#7d2b105f84e7dd8f0370aa4c4ab3b704e6760d82" - integrity sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A== - dependencies: - "@algolia/autocomplete-shared" "1.17.7" - -"@algolia/autocomplete-preset-algolia@1.17.7": - version "1.17.7" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz#c9badc0d73d62db5bf565d839d94ec0034680ae9" - integrity sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA== - dependencies: - "@algolia/autocomplete-shared" "1.17.7" - -"@algolia/autocomplete-shared@1.17.7": - version "1.17.7" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz#105e84ad9d1a31d3fb86ba20dc890eefe1a313a0" - integrity sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg== - -"@algolia/client-abtesting@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.19.0.tgz#0a6e73da05decc8f1bbcd7e5b9a82a8d876e7bf5" - integrity sha512-dMHwy2+nBL0SnIsC1iHvkBao64h4z+roGelOz11cxrDBrAdASxLxmfVMop8gmodQ2yZSacX0Rzevtxa+9SqxCw== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" - -"@algolia/client-analytics@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.19.0.tgz#45e33343fd4517e05a340a97bb37bebb4466000e" - integrity sha512-CDW4RwnCHzU10upPJqS6N6YwDpDHno7w6/qXT9KPbPbt8szIIzCHrva4O9KIfx1OhdsHzfGSI5hMAiOOYl4DEQ== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" - -"@algolia/client-common@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.19.0.tgz#efddaaf28f0f478117c2aab22d19c99b06f99761" - integrity sha512-2ERRbICHXvtj5kfFpY5r8qu9pJII/NAHsdgUXnUitQFwPdPL7wXiupcvZJC7DSntOnE8AE0lM7oDsPhrJfj5nQ== - -"@algolia/client-insights@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.19.0.tgz#81ff8eb3df724f6dd8ea3f423966b9ef7d36f903" - integrity sha512-xPOiGjo6I9mfjdJO7Y+p035aWePcbsItizIp+qVyfkfZiGgD+TbNxM12g7QhFAHIkx/mlYaocxPY/TmwPzTe+A== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" - -"@algolia/client-personalization@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.19.0.tgz#9a75230b9dec490a1e0851539a40a9371c8cd987" - integrity sha512-B9eoce/fk8NLboGje+pMr72pw+PV7c5Z01On477heTZ7jkxoZ4X92dobeGuEQop61cJ93Gaevd1of4mBr4hu2A== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" - -"@algolia/client-query-suggestions@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.19.0.tgz#007d1b09818d6a225fbfdf93bbcb2edf8ab17da0" - integrity sha512-6fcP8d4S8XRDtVogrDvmSM6g5g6DndLc0pEm1GCKe9/ZkAzCmM3ZmW1wFYYPxdjMeifWy1vVEDMJK7sbE4W7MA== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" - -"@algolia/client-search@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.19.0.tgz#04fc5d7e26d41c99144eb33eedb0ea6f9b1c0056" - integrity sha512-Ctg3xXD/1VtcwmkulR5+cKGOMj4r0wC49Y/KZdGQcqpydKn+e86F6l3tb3utLJQVq4lpEJud6kdRykFgcNsp8Q== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" +"@algolia/abtesting@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.13.0.tgz#88bbf09c5846fbe9a213461ea8bfdcf756c060dd" + integrity sha512-Zrqam12iorp3FjiKMXSTpedGYznZ3hTEOAr2oCxI8tbF8bS1kQHClyDYNq/eV0ewMNLyFkgZVWjaS+8spsOYiQ== + dependencies: + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" + +"@algolia/autocomplete-core@1.17.9": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz#83374c47dc72482aa45d6b953e89377047f0dcdc" + integrity sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.17.9" + "@algolia/autocomplete-shared" "1.17.9" + +"@algolia/autocomplete-plugin-algolia-insights@1.17.9": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz#74c86024d09d09e8bfa3dd90b844b77d9f9947b6" + integrity sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ== + dependencies: + "@algolia/autocomplete-shared" "1.17.9" + +"@algolia/autocomplete-preset-algolia@1.17.9": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz#911f3250544eb8ea4096fcfb268f156b085321b5" + integrity sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ== + dependencies: + "@algolia/autocomplete-shared" "1.17.9" + +"@algolia/autocomplete-shared@1.17.9": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz#5f38868f7cb1d54b014b17a10fc4f7e79d427fa8" + integrity sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ== + +"@algolia/client-abtesting@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.47.0.tgz#0d64f45844dcf18cebe9d1dae183052ec3d3f6cb" + integrity sha512-aOpsdlgS9xTEvz47+nXmw8m0NtUiQbvGWNuSEb7fA46iPL5FxOmOUZkh8PREBJpZ0/H8fclSc7BMJCVr+Dn72w== + dependencies: + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" + +"@algolia/client-analytics@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.47.0.tgz#239ce66964a766316ec2e3a6a1773dfa89f13203" + integrity sha512-EcF4w7IvIk1sowrO7Pdy4Ako7x/S8+nuCgdk6En+u5jsaNQM4rTT09zjBPA+WQphXkA2mLrsMwge96rf6i7Mow== + dependencies: + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" + +"@algolia/client-common@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.47.0.tgz#de05deb8c058e9f125eea51de317ab1406247642" + integrity sha512-Wzg5Me2FqgRDj0lFuPWFK05UOWccSMsIBL2YqmTmaOzxVlLZ+oUqvKbsUSOE5ud8Fo1JU7JyiLmEXBtgDKzTwg== + +"@algolia/client-insights@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.47.0.tgz#9adbc82f6bfa896266559843fc74eddaaf9bff15" + integrity sha512-Ci+cn/FDIsDxSKMRBEiyKrqybblbk8xugo6ujDN1GSTv9RIZxwxqZYuHfdLnLEwLlX7GB8pqVyqrUSlRnR+sJA== + dependencies: + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" + +"@algolia/client-personalization@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.47.0.tgz#f45bca61625458a2c26d0f241bbc249f47aa0fe1" + integrity sha512-gsLnHPZmWcX0T3IigkDL2imCNtsQ7dR5xfnwiFsb+uTHCuYQt+IwSNjsd8tok6HLGLzZrliSaXtB5mfGBtYZvQ== + dependencies: + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" + +"@algolia/client-query-suggestions@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.47.0.tgz#20af440297524956aff483dccef7222c57366f04" + integrity sha512-PDOw0s8WSlR2fWFjPQldEpmm/gAoUgLigvC3k/jCSi/DzigdGX6RdC0Gh1RR1P8Cbk5KOWYDuL3TNzdYwkfDyA== + dependencies: + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" + +"@algolia/client-search@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.47.0.tgz#b74b948adbd2908cb70a73a17e8a23d7e5ae439c" + integrity sha512-b5hlU69CuhnS2Rqgsz7uSW0t4VqrLMLTPbUpEl0QVz56rsSwr1Sugyogrjb493sWDA+XU1FU5m9eB8uH7MoI0g== + dependencies: + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" "@algolia/events@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== -"@algolia/ingestion@1.19.0": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.19.0.tgz#b481bd2283866a1df18af9babba0ecb3f1d1d675" - integrity sha512-LO7w1MDV+ZLESwfPmXkp+KLeYeFrYEgtbCZG6buWjddhYraPQ9MuQWLhLLiaMlKxZ/sZvFTcZYuyI6Jx4WBhcg== +"@algolia/ingestion@1.47.0": + version "1.47.0" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.47.0.tgz#47ffeba5120a4b186a81a2adb1ffda2902c6f3f1" + integrity sha512-WvwwXp5+LqIGISK3zHRApLT1xkuEk320/EGeD7uYy+K8WwDd5OjXnhjuXRhYr1685KnkvWkq1rQ/ihCJjOfHpQ== dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/monitoring@1.19.0": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.19.0.tgz#abc85ac073c25233c7f8dae3000cc0821d582514" - integrity sha512-Mg4uoS0aIKeTpu6iv6O0Hj81s8UHagi5TLm9k2mLIib4vmMtX7WgIAHAcFIaqIZp5D6s5EVy1BaDOoZ7buuJHA== +"@algolia/monitoring@1.47.0": + version "1.47.0" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.47.0.tgz#3ea90f176495a1130887b0780d91ff91fd42b9f9" + integrity sha512-j2EUFKAlzM0TE4GRfkDE3IDfkVeJdcbBANWzK16Tb3RHz87WuDfQ9oeEW6XiRE1/bEkq2xf4MvZesvSeQrZRDA== dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/recommend@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.19.0.tgz#5898219e9457853c563eb527f0d1cbfcb8998c87" - integrity sha512-PbgrMTbUPlmwfJsxjFhal4XqZO2kpBNRjemLVTkUiti4w/+kzcYO4Hg5zaBgVqPwvFDNQ8JS4SS3TBBem88u+g== +"@algolia/recommend@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.47.0.tgz#71a759cdbe67e27f2299ab87d3c8aa4392001a88" + integrity sha512-+kTSE4aQ1ARj2feXyN+DMq0CIDHJwZw1kpxIunedkmpWUg8k3TzFwWsMCzJVkF2nu1UcFbl7xsIURz3Q3XwOXA== dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/requester-browser-xhr@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.19.0.tgz#979a340a81a381214c0dbdd235b51204098e3b4a" - integrity sha512-GfnhnQBT23mW/VMNs7m1qyEyZzhZz093aY2x8p0era96MMyNv8+FxGek5pjVX0b57tmSCZPf4EqNCpkGcGsmbw== +"@algolia/requester-browser-xhr@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.47.0.tgz#0e76a8e3db0b09235178cb47c9de0a198db7b52d" + integrity sha512-Ja+zPoeSA2SDowPwCNRbm5Q2mzDvVV8oqxCQ4m6SNmbKmPlCfe30zPfrt9ho3kBHnsg37pGucwOedRIOIklCHw== dependencies: - "@algolia/client-common" "5.19.0" + "@algolia/client-common" "5.47.0" -"@algolia/requester-fetch@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.19.0.tgz#59fe52733a718fc23bde548b377b52baf7228993" - integrity sha512-oyTt8ZJ4T4fYvW5avAnuEc6Laedcme9fAFryMD9ndUTIUe/P0kn3BuGcCLFjN3FDmdrETHSFkgPPf1hGy3sLCw== +"@algolia/requester-fetch@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.47.0.tgz#de68b44bef30d03919be249a6ff30e82975494a9" + integrity sha512-N6nOvLbaR4Ge+oVm7T4W/ea1PqcSbsHR4O58FJ31XtZjFPtOyxmnhgCmGCzP9hsJI6+x0yxJjkW5BMK/XI8OvA== dependencies: - "@algolia/client-common" "5.19.0" + "@algolia/client-common" "5.47.0" -"@algolia/requester-node-http@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.19.0.tgz#edbd58158d9dec774d608fbf2b2196d0ca4b257c" - integrity sha512-p6t8ue0XZNjcRiqNkb5QAM0qQRAKsCiebZ6n9JjWA+p8fWf8BvnhO55y2fO28g3GW0Imj7PrAuyBuxq8aDVQwQ== +"@algolia/requester-node-http@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.47.0.tgz#b8e46c1e80b74d9146dec7b0219131198951198a" + integrity sha512-z1oyLq5/UVkohVXNDEY70mJbT/sv/t6HYtCvCwNrOri6pxBJDomP9R83KOlwcat+xqBQEdJHjbrPh36f1avmZA== dependencies: - "@algolia/client-common" "5.19.0" + "@algolia/client-common" "5.47.0" -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2", "@babel/code-frame@^7.8.3": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" - integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.28.6", "@babel/code-frame@^7.8.3": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.28.6.tgz#72499312ec58b1e2245ba4a4f550c132be4982f7" + integrity sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q== dependencies: - "@babel/helper-validator-identifier" "^7.25.9" + "@babel/helper-validator-identifier" "^7.28.5" js-tokens "^4.0.0" - picocolors "^1.0.0" + picocolors "^1.1.1" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.26.0", "@babel/compat-data@^7.26.5": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.5.tgz#df93ac37f4417854130e21d72c66ff3d4b897fc7" - integrity sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg== +"@babel/compat-data@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.6.tgz#103f466803fa0f059e82ccac271475470570d74c" + integrity sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg== "@babel/core@^7.21.3", "@babel/core@^7.25.9": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40" - integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.26.0" - "@babel/generator" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-module-transforms" "^7.26.0" - "@babel/helpers" "^7.26.0" - "@babel/parser" "^7.26.0" - "@babel/template" "^7.25.9" - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.26.0" + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.6.tgz#531bf883a1126e53501ba46eb3bb414047af507f" + integrity sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw== + dependencies: + "@babel/code-frame" "^7.28.6" + "@babel/generator" "^7.28.6" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-module-transforms" "^7.28.6" + "@babel/helpers" "^7.28.6" + "@babel/parser" "^7.28.6" + "@babel/template" "^7.28.6" + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" + "@jridgewell/remapping" "^2.3.5" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.25.9", "@babel/generator@^7.26.0", "@babel/generator@^7.26.5": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.5.tgz#e44d4ab3176bbcaf78a5725da5f1dc28802a9458" - integrity sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw== +"@babel/generator@^7.25.9", "@babel/generator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.6.tgz#48dcc65d98fcc8626a48f72b62e263d25fc3c3f1" + integrity sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw== dependencies: - "@babel/parser" "^7.26.5" - "@babel/types" "^7.26.5" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" + "@babel/parser" "^7.28.6" + "@babel/types" "^7.28.6" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/helper-annotate-as-pure@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" - integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== +"@babel/helper-annotate-as-pure@^7.27.1", "@babel/helper-annotate-as-pure@^7.27.3": + version "7.27.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" + integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== dependencies: - "@babel/types" "^7.25.9" + "@babel/types" "^7.27.3" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz#75d92bb8d8d51301c0d49e52a65c9a7fe94514d8" - integrity sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA== +"@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25" + integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA== dependencies: - "@babel/compat-data" "^7.26.5" - "@babel/helper-validator-option" "^7.25.9" + "@babel/compat-data" "^7.28.6" + "@babel/helper-validator-option" "^7.27.1" browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz#7644147706bb90ff613297d49ed5266bde729f83" - integrity sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-member-expression-to-functions" "^7.25.9" - "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/traverse" "^7.25.9" +"@babel/helper-create-class-features-plugin@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz#611ff5482da9ef0db6291bcd24303400bca170fb" + integrity sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-member-expression-to-functions" "^7.28.5" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.28.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.28.6" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz#5169756ecbe1d95f7866b90bb555b022595302a0" - integrity sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1", "@babel/helper-create-regexp-features-plugin@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz#7c1ddd64b2065c7f78034b25b43346a7e19ed997" + integrity sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw== dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - regexpu-core "^6.2.0" + "@babel/helper-annotate-as-pure" "^7.27.3" + regexpu-core "^6.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.6.2", "@babel/helper-define-polyfill-provider@^0.6.3": - version "0.6.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz#f4f2792fae2ef382074bc2d713522cf24e6ddb21" - integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== +"@babel/helper-define-polyfill-provider@^0.6.5", "@babel/helper-define-polyfill-provider@^0.6.6": + version "0.6.6" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz#714dfe33d8bd710f556df59953720f6eeb6c1a14" + integrity sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA== dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + debug "^4.4.3" lodash.debounce "^4.0.8" - resolve "^1.14.2" - -"@babel/helper-member-expression-to-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" - integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-module-imports@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" - integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" - integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/helper-optimise-call-expression@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" - integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== - dependencies: - "@babel/types" "^7.25.9" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz#18580d00c9934117ad719392c4f6585c9333cc35" - integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg== - -"@babel/helper-remap-async-to-generator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" - integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-wrap-function" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/helper-replace-supers@^7.25.9": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz#6cb04e82ae291dae8e72335dfe438b0725f14c8d" - integrity sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.25.9" - "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/traverse" "^7.26.5" + resolve "^1.22.11" + +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + +"@babel/helper-member-expression-to-functions@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz#f3e07a10be37ed7a63461c63e6929575945a6150" + integrity sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg== + dependencies: + "@babel/traverse" "^7.28.5" + "@babel/types" "^7.28.5" + +"@babel/helper-module-imports@^7.27.1", "@babel/helper-module-imports@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c" + integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw== + dependencies: + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" + +"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.3", "@babel/helper-module-transforms@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e" + integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA== + dependencies: + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/traverse" "^7.28.6" + +"@babel/helper-optimise-call-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" + integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== + dependencies: + "@babel/types" "^7.27.1" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.28.6", "@babel/helper-plugin-utils@^7.8.0": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8" + integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug== + +"@babel/helper-remap-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" + integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-wrap-function" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-replace-supers@^7.27.1", "@babel/helper-replace-supers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz#94aa9a1d7423a00aead3f204f78834ce7d53fe44" + integrity sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.28.5" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/traverse" "^7.28.6" + +"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" + integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helper-wrap-function@^7.27.1": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz#4e349ff9222dab69a93a019cc296cdd8442e279a" + integrity sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ== + dependencies: + "@babel/template" "^7.28.6" + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" + +"@babel/helpers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7" + integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw== + dependencies: + "@babel/template" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/helper-skip-transparent-expression-wrappers@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" - integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== +"@babel/parser@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.6.tgz#f01a8885b7fa1e56dd8a155130226cd698ef13fd" + integrity sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ== dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-string-parser@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" - integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== - -"@babel/helper-validator-identifier@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" - integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== - -"@babel/helper-validator-option@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" - integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== - -"@babel/helper-wrap-function@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" - integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== + "@babel/types" "^7.28.6" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz#fbde57974707bbfa0376d34d425ff4fa6c732421" + integrity sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q== dependencies: - "@babel/template" "^7.25.9" - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helpers@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4" - integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== - dependencies: - "@babel/template" "^7.25.9" - "@babel/types" "^7.26.0" - -"@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.5": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.5.tgz#6fec9aebddef25ca57a935c86dbb915ae2da3e1f" - integrity sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw== - dependencies: - "@babel/types" "^7.26.5" - -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" - integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" - integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" - integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.28.5" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz#43f70a6d7efd52370eefbdf55ae03d91b293856d" + integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz#beb623bd573b8b6f3047bd04c32506adc3e58a72" + integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" - integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz#e134a5479eb2ba9c02714e8c1ebf1ec9076124fd" + integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/plugin-transform-optional-chaining" "^7.25.9" - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" - integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz#0e8289cec28baaf05d54fd08d81ae3676065f69f" + integrity sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/traverse" "^7.28.6" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -408,33 +415,33 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-import-assertions@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" - integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== +"@babel/plugin-syntax-import-assertions@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz#ae9bc1923a6ba527b70104dd2191b0cd872c8507" + integrity sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-syntax-import-attributes@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" - integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== +"@babel/plugin-syntax-import-attributes@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz#b71d5914665f60124e133696f17cd7669062c503" + integrity sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-syntax-jsx@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290" - integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA== +"@babel/plugin-syntax-jsx@^7.27.1", "@babel/plugin-syntax-jsx@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz#f8ca28bbd84883b5fea0e447c635b81ba73997ee" + integrity sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-syntax-typescript@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399" - integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ== +"@babel/plugin-syntax-typescript@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz#c7b2ddf1d0a811145b1de800d1abd146af92e3a2" + integrity sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -444,529 +451,540 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" - integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== +"@babel/plugin-transform-arrow-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" + integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-async-generator-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz#1b18530b077d18a407c494eb3d1d72da505283a2" - integrity sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw== +"@babel/plugin-transform-async-generator-functions@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.6.tgz#80cb86d3eaa2102e18ae90dd05ab87bdcad3877d" + integrity sha512-9knsChgsMzBV5Yh3kkhrZNxH3oCYAfMBkNNaVN4cP2RVlFPe8wYdwwcnOsAbkdDoV9UjFtOXWrWB52M8W4jNeA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-remap-async-to-generator" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-remap-async-to-generator" "^7.27.1" + "@babel/traverse" "^7.28.6" -"@babel/plugin-transform-async-to-generator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" - integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== +"@babel/plugin-transform-async-to-generator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz#bd97b42237b2d1bc90d74bcb486c39be5b4d7e77" + integrity sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g== dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-remap-async-to-generator" "^7.25.9" + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-remap-async-to-generator" "^7.27.1" -"@babel/plugin-transform-block-scoped-functions@^7.25.9": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz#3dc4405d31ad1cbe45293aa57205a6e3b009d53e" - integrity sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ== +"@babel/plugin-transform-block-scoped-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" + integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== dependencies: - "@babel/helper-plugin-utils" "^7.26.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-block-scoping@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz#c33665e46b06759c93687ca0f84395b80c0473a1" - integrity sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg== +"@babel/plugin-transform-block-scoping@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz#e1ef5633448c24e76346125c2534eeb359699a99" + integrity sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-class-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" - integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== +"@babel/plugin-transform-class-properties@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz#d274a4478b6e782d9ea987fda09bdb6d28d66b72" + integrity sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-class-static-block@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" - integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== +"@babel/plugin-transform-class-static-block@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz#1257491e8259c6d125ac4d9a6f39f9d2bf3dba70" + integrity sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-classes@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" - integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== +"@babel/plugin-transform-classes@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz#8f6fb79ba3703978e701ce2a97e373aae7dda4b7" + integrity sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q== dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" - "@babel/traverse" "^7.25.9" - globals "^11.1.0" + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-globals" "^7.28.0" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-replace-supers" "^7.28.6" + "@babel/traverse" "^7.28.6" -"@babel/plugin-transform-computed-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" - integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== +"@babel/plugin-transform-computed-properties@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz#936824fc71c26cb5c433485776d79c8e7b0202d2" + integrity sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/template" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/template" "^7.28.6" -"@babel/plugin-transform-destructuring@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" - integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== +"@babel/plugin-transform-destructuring@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz#b8402764df96179a2070bb7b501a1586cf8ad7a7" + integrity sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.28.5" -"@babel/plugin-transform-dotall-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" - integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== +"@babel/plugin-transform-dotall-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz#def31ed84e0fb6e25c71e53c124e7b76a4ab8e61" + integrity sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-duplicate-keys@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" - integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== +"@babel/plugin-transform-duplicate-keys@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz#f1fbf628ece18e12e7b32b175940e68358f546d1" + integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" - integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.28.6.tgz#e0c59ba54f1655dd682f2edf5f101b5910a8f6f3" + integrity sha512-5suVoXjC14lUN6ZL9OLKIHCNVWCrqGqlmEp/ixdXjvgnEl/kauLvvMO/Xw9NyMc95Joj1AeLVPVMvibBgSoFlA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-dynamic-import@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" - integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== +"@babel/plugin-transform-dynamic-import@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz#4c78f35552ac0e06aa1f6e3c573d67695e8af5a4" + integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-exponentiation-operator@^7.25.9": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" - integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== +"@babel/plugin-transform-explicit-resource-management@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz#dd6788f982c8b77e86779d1d029591e39d9d8be7" + integrity sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/plugin-transform-destructuring" "^7.28.5" -"@babel/plugin-transform-export-namespace-from@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" - integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== +"@babel/plugin-transform-exponentiation-operator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz#5e477eb7eafaf2ab5537a04aaafcf37e2d7f1091" + integrity sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-for-of@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz#4bdc7d42a213397905d89f02350c5267866d5755" - integrity sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A== +"@babel/plugin-transform-export-namespace-from@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz#71ca69d3471edd6daa711cf4dfc3400415df9c23" + integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-function-name@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" - integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== +"@babel/plugin-transform-for-of@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" + integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== dependencies: - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-json-strings@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" - integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== +"@babel/plugin-transform-function-name@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" + integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" - integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== +"@babel/plugin-transform-json-strings@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz#4c8c15b2dc49e285d110a4cf3dac52fd2dfc3038" + integrity sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-logical-assignment-operators@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" - integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== +"@babel/plugin-transform-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" + integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-member-expression-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" - integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== +"@babel/plugin-transform-logical-assignment-operators@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz#53028a3d77e33c50ef30a8fce5ca17065936e605" + integrity sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-modules-amd@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" - integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== +"@babel/plugin-transform-member-expression-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" + integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-commonjs@^7.25.9": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" - integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== +"@babel/plugin-transform-modules-amd@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz#a4145f9d87c2291fe2d05f994b65dba4e3e7196f" + integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== dependencies: - "@babel/helper-module-transforms" "^7.26.0" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-systemjs@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" - integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== +"@babel/plugin-transform-modules-commonjs@^7.27.1", "@babel/plugin-transform-modules-commonjs@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz#c0232e0dfe66a734cc4ad0d5e75fc3321b6fdef1" + integrity sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA== dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/helper-module-transforms" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-transform-modules-systemjs@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz#7439e592a92d7670dfcb95d0cbc04bd3e64801d2" + integrity sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew== + dependencies: + "@babel/helper-module-transforms" "^7.28.3" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/traverse" "^7.28.5" -"@babel/plugin-transform-modules-umd@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" - integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== +"@babel/plugin-transform-modules-umd@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz#63f2cf4f6dc15debc12f694e44714863d34cd334" + integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" - integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz#f32b8f7818d8fc0cc46ee20a8ef75f071af976e1" + integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-new-target@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" - integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== +"@babel/plugin-transform-new-target@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz#259c43939728cad1706ac17351b7e6a7bea1abeb" + integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-nullish-coalescing-operator@^7.25.9": - version "7.26.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz#fbf6b3c92cb509e7b319ee46e3da89c5bedd31fe" - integrity sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw== +"@babel/plugin-transform-nullish-coalescing-operator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz#9bc62096e90ab7a887f3ca9c469f6adec5679757" + integrity sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg== dependencies: - "@babel/helper-plugin-utils" "^7.26.5" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-numeric-separator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" - integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== +"@babel/plugin-transform-numeric-separator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz#1310b0292762e7a4a335df5f580c3320ee7d9e9f" + integrity sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-object-rest-spread@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" - integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== +"@babel/plugin-transform-object-rest-spread@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz#fdd4bc2d72480db6ca42aed5c051f148d7b067f7" + integrity sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA== dependencies: - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/plugin-transform-parameters" "^7.25.9" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/plugin-transform-destructuring" "^7.28.5" + "@babel/plugin-transform-parameters" "^7.27.7" + "@babel/traverse" "^7.28.6" -"@babel/plugin-transform-object-super@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" - integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== +"@babel/plugin-transform-object-super@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" + integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" -"@babel/plugin-transform-optional-catch-binding@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" - integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== +"@babel/plugin-transform-optional-catch-binding@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz#75107be14c78385978201a49c86414a150a20b4c" + integrity sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-optional-chaining@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" - integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== +"@babel/plugin-transform-optional-chaining@^7.27.1", "@babel/plugin-transform-optional-chaining@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz#926cf150bd421fc8362753e911b4a1b1ce4356cd" + integrity sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-parameters@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" - integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== +"@babel/plugin-transform-parameters@^7.27.7": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz#1fd2febb7c74e7d21cf3b05f7aebc907940af53a" + integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-private-methods@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" - integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== +"@babel/plugin-transform-private-methods@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz#c76fbfef3b86c775db7f7c106fff544610bdb411" + integrity sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-private-property-in-object@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" - integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== +"@babel/plugin-transform-private-property-in-object@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz#4fafef1e13129d79f1d75ac180c52aafefdb2811" + integrity sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA== dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-property-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" - integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== +"@babel/plugin-transform-property-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" + integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-react-constant-elements@^7.21.3": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz#08a1de35a301929b60fdf2788a54b46cd8ecd0ef" - integrity sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow== + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz#6c6b50424e749a6e48afd14cf7b92f98cb9383f9" + integrity sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-display-name@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz#4b79746b59efa1f38c8695065a92a9f5afb24f7d" - integrity sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ== +"@babel/plugin-transform-react-display-name@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz#6f20a7295fea7df42eb42fed8f896813f5b934de" + integrity sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-jsx-development@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz#8fd220a77dd139c07e25225a903b8be8c829e0d7" - integrity sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw== +"@babel/plugin-transform-react-jsx-development@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz#47ff95940e20a3a70e68ad3d4fcb657b647f6c98" + integrity sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q== dependencies: - "@babel/plugin-transform-react-jsx" "^7.25.9" + "@babel/plugin-transform-react-jsx" "^7.27.1" -"@babel/plugin-transform-react-jsx@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz#06367940d8325b36edff5e2b9cbe782947ca4166" - integrity sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw== +"@babel/plugin-transform-react-jsx@^7.27.1": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz#f51cb70a90b9529fbb71ee1f75ea27b7078eed62" + integrity sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow== dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/plugin-syntax-jsx" "^7.25.9" - "@babel/types" "^7.25.9" + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/plugin-syntax-jsx" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/plugin-transform-react-pure-annotations@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz#ea1c11b2f9dbb8e2d97025f43a3b5bc47e18ae62" - integrity sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg== +"@babel/plugin-transform-react-pure-annotations@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz#339f1ce355eae242e0649f232b1c68907c02e879" + integrity sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA== dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-regenerator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz#03a8a4670d6cebae95305ac6defac81ece77740b" - integrity sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg== +"@babel/plugin-transform-regenerator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.6.tgz#6ca2ed5b76cff87980f96eaacfc2ce833e8e7a1b" + integrity sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - regenerator-transform "^0.15.2" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-regexp-modifiers@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" - integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== +"@babel/plugin-transform-regexp-modifiers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz#7ef0163bd8b4a610481b2509c58cf217f065290b" + integrity sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-reserved-words@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" - integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== +"@babel/plugin-transform-reserved-words@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz#40fba4878ccbd1c56605a4479a3a891ac0274bb4" + integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-runtime@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz#62723ea3f5b31ffbe676da9d6dae17138ae580ea" - integrity sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" - babel-plugin-polyfill-regenerator "^0.6.1" + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz#ae3e21fbefe2831ebac04dfa6b463691696afe17" + integrity sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + babel-plugin-polyfill-corejs2 "^0.4.14" + babel-plugin-polyfill-corejs3 "^0.13.0" + babel-plugin-polyfill-regenerator "^0.6.5" semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" - integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== +"@babel/plugin-transform-shorthand-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" + integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-spread@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" - integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== +"@babel/plugin-transform-spread@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz#40a2b423f6db7b70f043ad027a58bcb44a9757b6" + integrity sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-sticky-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" - integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== +"@babel/plugin-transform-sticky-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" + integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-template-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz#6dbd4a24e8fad024df76d1fac6a03cf413f60fe1" - integrity sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw== +"@babel/plugin-transform-template-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" + integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-typeof-symbol@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz#224ba48a92869ddbf81f9b4a5f1204bbf5a2bc4b" - integrity sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA== +"@babel/plugin-transform-typeof-symbol@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz#70e966bb492e03509cf37eafa6dcc3051f844369" + integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-typescript@^7.25.9": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.5.tgz#6d9b48e8ee40a45a3ed12ebc013449fdf261714c" - integrity sha512-GJhPO0y8SD5EYVCy2Zr+9dSZcEgaSmq5BLR0Oc25TOEhC+ba49vUAGZFjy8v79z9E1mdldq4x9d1xgh4L1d5dQ== +"@babel/plugin-transform-typescript@^7.28.5": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz#1e93d96da8adbefdfdade1d4956f73afa201a158" + integrity sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw== dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.26.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/plugin-syntax-typescript" "^7.25.9" + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.28.6" -"@babel/plugin-transform-unicode-escapes@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" - integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== +"@babel/plugin-transform-unicode-escapes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz#3e3143f8438aef842de28816ece58780190cf806" + integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-property-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" - integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== +"@babel/plugin-transform-unicode-property-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz#63a7a6c21a0e75dae9b1861454111ea5caa22821" + integrity sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-unicode-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" - integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== +"@babel/plugin-transform-unicode-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" + integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-sets-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" - integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== +"@babel/plugin-transform-unicode-sets-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz#924912914e5df9fe615ec472f88ff4788ce04d4e" + integrity sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/preset-env@^7.20.2", "@babel/preset-env@^7.25.9": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.0.tgz#30e5c6bc1bcc54865bff0c5a30f6d4ccdc7fa8b1" - integrity sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== - dependencies: - "@babel/compat-data" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-option" "^7.25.9" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" - "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.6.tgz#b4586bb59d8c61be6c58997f4912e7ea6bd17178" + integrity sha512-GaTI4nXDrs7l0qaJ6Rg06dtOXTBCG6TMDB44zbqofCIC4PqC7SEvmFFtpxzCDw9W5aJ7RKVshgXTLvLdBFV/qw== + dependencies: + "@babel/compat-data" "^7.28.6" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.28.5" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.28.6" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions" "^7.26.0" - "@babel/plugin-syntax-import-attributes" "^7.26.0" + "@babel/plugin-syntax-import-assertions" "^7.28.6" + "@babel/plugin-syntax-import-attributes" "^7.28.6" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.25.9" - "@babel/plugin-transform-async-generator-functions" "^7.25.9" - "@babel/plugin-transform-async-to-generator" "^7.25.9" - "@babel/plugin-transform-block-scoped-functions" "^7.25.9" - "@babel/plugin-transform-block-scoping" "^7.25.9" - "@babel/plugin-transform-class-properties" "^7.25.9" - "@babel/plugin-transform-class-static-block" "^7.26.0" - "@babel/plugin-transform-classes" "^7.25.9" - "@babel/plugin-transform-computed-properties" "^7.25.9" - "@babel/plugin-transform-destructuring" "^7.25.9" - "@babel/plugin-transform-dotall-regex" "^7.25.9" - "@babel/plugin-transform-duplicate-keys" "^7.25.9" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" - "@babel/plugin-transform-dynamic-import" "^7.25.9" - "@babel/plugin-transform-exponentiation-operator" "^7.25.9" - "@babel/plugin-transform-export-namespace-from" "^7.25.9" - "@babel/plugin-transform-for-of" "^7.25.9" - "@babel/plugin-transform-function-name" "^7.25.9" - "@babel/plugin-transform-json-strings" "^7.25.9" - "@babel/plugin-transform-literals" "^7.25.9" - "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" - "@babel/plugin-transform-member-expression-literals" "^7.25.9" - "@babel/plugin-transform-modules-amd" "^7.25.9" - "@babel/plugin-transform-modules-commonjs" "^7.25.9" - "@babel/plugin-transform-modules-systemjs" "^7.25.9" - "@babel/plugin-transform-modules-umd" "^7.25.9" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" - "@babel/plugin-transform-new-target" "^7.25.9" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.9" - "@babel/plugin-transform-numeric-separator" "^7.25.9" - "@babel/plugin-transform-object-rest-spread" "^7.25.9" - "@babel/plugin-transform-object-super" "^7.25.9" - "@babel/plugin-transform-optional-catch-binding" "^7.25.9" - "@babel/plugin-transform-optional-chaining" "^7.25.9" - "@babel/plugin-transform-parameters" "^7.25.9" - "@babel/plugin-transform-private-methods" "^7.25.9" - "@babel/plugin-transform-private-property-in-object" "^7.25.9" - "@babel/plugin-transform-property-literals" "^7.25.9" - "@babel/plugin-transform-regenerator" "^7.25.9" - "@babel/plugin-transform-regexp-modifiers" "^7.26.0" - "@babel/plugin-transform-reserved-words" "^7.25.9" - "@babel/plugin-transform-shorthand-properties" "^7.25.9" - "@babel/plugin-transform-spread" "^7.25.9" - "@babel/plugin-transform-sticky-regex" "^7.25.9" - "@babel/plugin-transform-template-literals" "^7.25.9" - "@babel/plugin-transform-typeof-symbol" "^7.25.9" - "@babel/plugin-transform-unicode-escapes" "^7.25.9" - "@babel/plugin-transform-unicode-property-regex" "^7.25.9" - "@babel/plugin-transform-unicode-regex" "^7.25.9" - "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" + "@babel/plugin-transform-arrow-functions" "^7.27.1" + "@babel/plugin-transform-async-generator-functions" "^7.28.6" + "@babel/plugin-transform-async-to-generator" "^7.28.6" + "@babel/plugin-transform-block-scoped-functions" "^7.27.1" + "@babel/plugin-transform-block-scoping" "^7.28.6" + "@babel/plugin-transform-class-properties" "^7.28.6" + "@babel/plugin-transform-class-static-block" "^7.28.6" + "@babel/plugin-transform-classes" "^7.28.6" + "@babel/plugin-transform-computed-properties" "^7.28.6" + "@babel/plugin-transform-destructuring" "^7.28.5" + "@babel/plugin-transform-dotall-regex" "^7.28.6" + "@babel/plugin-transform-duplicate-keys" "^7.27.1" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.28.6" + "@babel/plugin-transform-dynamic-import" "^7.27.1" + "@babel/plugin-transform-explicit-resource-management" "^7.28.6" + "@babel/plugin-transform-exponentiation-operator" "^7.28.6" + "@babel/plugin-transform-export-namespace-from" "^7.27.1" + "@babel/plugin-transform-for-of" "^7.27.1" + "@babel/plugin-transform-function-name" "^7.27.1" + "@babel/plugin-transform-json-strings" "^7.28.6" + "@babel/plugin-transform-literals" "^7.27.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.28.6" + "@babel/plugin-transform-member-expression-literals" "^7.27.1" + "@babel/plugin-transform-modules-amd" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.28.6" + "@babel/plugin-transform-modules-systemjs" "^7.28.5" + "@babel/plugin-transform-modules-umd" "^7.27.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-new-target" "^7.27.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.28.6" + "@babel/plugin-transform-numeric-separator" "^7.28.6" + "@babel/plugin-transform-object-rest-spread" "^7.28.6" + "@babel/plugin-transform-object-super" "^7.27.1" + "@babel/plugin-transform-optional-catch-binding" "^7.28.6" + "@babel/plugin-transform-optional-chaining" "^7.28.6" + "@babel/plugin-transform-parameters" "^7.27.7" + "@babel/plugin-transform-private-methods" "^7.28.6" + "@babel/plugin-transform-private-property-in-object" "^7.28.6" + "@babel/plugin-transform-property-literals" "^7.27.1" + "@babel/plugin-transform-regenerator" "^7.28.6" + "@babel/plugin-transform-regexp-modifiers" "^7.28.6" + "@babel/plugin-transform-reserved-words" "^7.27.1" + "@babel/plugin-transform-shorthand-properties" "^7.27.1" + "@babel/plugin-transform-spread" "^7.28.6" + "@babel/plugin-transform-sticky-regex" "^7.27.1" + "@babel/plugin-transform-template-literals" "^7.27.1" + "@babel/plugin-transform-typeof-symbol" "^7.27.1" + "@babel/plugin-transform-unicode-escapes" "^7.27.1" + "@babel/plugin-transform-unicode-property-regex" "^7.28.6" + "@babel/plugin-transform-unicode-regex" "^7.27.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.28.6" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" - babel-plugin-polyfill-regenerator "^0.6.1" - core-js-compat "^3.38.1" + babel-plugin-polyfill-corejs2 "^0.4.14" + babel-plugin-polyfill-corejs3 "^0.13.0" + babel-plugin-polyfill-regenerator "^0.6.5" + core-js-compat "^3.43.0" semver "^6.3.1" "@babel/preset-modules@0.1.6-no-external-plugins": @@ -979,164 +997,205 @@ esutils "^2.0.2" "@babel/preset-react@^7.18.6", "@babel/preset-react@^7.25.9": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.26.3.tgz#7c5e028d623b4683c1f83a0bd4713b9100560caa" - integrity sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw== + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.28.5.tgz#6fcc0400fa79698433d653092c3919bb4b0878d9" + integrity sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-option" "^7.25.9" - "@babel/plugin-transform-react-display-name" "^7.25.9" - "@babel/plugin-transform-react-jsx" "^7.25.9" - "@babel/plugin-transform-react-jsx-development" "^7.25.9" - "@babel/plugin-transform-react-pure-annotations" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-transform-react-display-name" "^7.28.0" + "@babel/plugin-transform-react-jsx" "^7.27.1" + "@babel/plugin-transform-react-jsx-development" "^7.27.1" + "@babel/plugin-transform-react-pure-annotations" "^7.27.1" "@babel/preset-typescript@^7.21.0", "@babel/preset-typescript@^7.25.9": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz#4a570f1b8d104a242d923957ffa1eaff142a106d" - integrity sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg== + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz#540359efa3028236958466342967522fd8f2a60c" + integrity sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-option" "^7.25.9" - "@babel/plugin-syntax-jsx" "^7.25.9" - "@babel/plugin-transform-modules-commonjs" "^7.25.9" - "@babel/plugin-transform-typescript" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.27.1" + "@babel/plugin-transform-typescript" "^7.28.5" "@babel/runtime-corejs3@^7.25.9": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz#5af6bed16073eb4a0191233d61e158a5c768c430" - integrity sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w== - dependencies: - core-js-pure "^3.30.2" - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.25.9", "@babel/runtime@^7.8.4": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" - integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" - integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== - dependencies: - "@babel/code-frame" "^7.25.9" - "@babel/parser" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.5.tgz#6d0be3e772ff786456c1a37538208286f6e79021" - integrity sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ== - dependencies: - "@babel/code-frame" "^7.26.2" - "@babel/generator" "^7.26.5" - "@babel/parser" "^7.26.5" - "@babel/template" "^7.25.9" - "@babel/types" "^7.26.5" + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.28.6.tgz#f1e4a0da50f4856ceec1bb51c83f8ed0b202ed12" + integrity sha512-kz2fAQ5UzjV7X7D3ySxmj3vRq89dTpqOZWv76Z6pNPztkwb/0Yj1Mtx1xFrYj6mbIHysxtBot8J4o0JLCblcFw== + dependencies: + core-js-pure "^3.43.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.25.9": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.6.tgz#d267a43cb1836dc4d182cce93ae75ba954ef6d2b" + integrity sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA== + +"@babel/template@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57" + integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ== + dependencies: + "@babel/code-frame" "^7.28.6" + "@babel/parser" "^7.28.6" + "@babel/types" "^7.28.6" + +"@babel/traverse@^7.25.9", "@babel/traverse@^7.27.1", "@babel/traverse@^7.28.5", "@babel/traverse@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.6.tgz#871ddc79a80599a5030c53b1cc48cbe3a5583c2e" + integrity sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg== + dependencies: + "@babel/code-frame" "^7.28.6" + "@babel/generator" "^7.28.6" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.6" + "@babel/template" "^7.28.6" + "@babel/types" "^7.28.6" debug "^4.3.1" - globals "^11.1.0" -"@babel/types@^7.21.3", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.5", "@babel/types@^7.4.4": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.5.tgz#7a1e1c01d28e26d1fe7f8ec9567b3b92b9d07747" - integrity sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg== +"@babel/types@^7.21.3", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.5", "@babel/types@^7.28.6", "@babel/types@^7.4.4": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.6.tgz#c3e9377f1b155005bcc4c46020e7e394e13089df" + integrity sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg== dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@csstools/cascade-layer-name-parser@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz#64d128529397aa1e1c986f685713363b262b81b1" - integrity sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA== +"@csstools/cascade-layer-name-parser@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz#43f962bebead0052a9fed1a2deeb11f85efcbc72" + integrity sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A== -"@csstools/color-helpers@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.1.tgz#829f1c76f5800b79c51c709e2f36821b728e0e10" - integrity sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA== +"@csstools/color-helpers@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz#106c54c808cabfd1ab4c602d8505ee584c2996ef" + integrity sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA== -"@csstools/css-calc@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.1.tgz#a7dbc66627f5cf458d42aed14bda0d3860562383" - integrity sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag== +"@csstools/css-calc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.4.tgz#8473f63e2fcd6e459838dd412401d5948f224c65" + integrity sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ== -"@csstools/css-color-parser@^3.0.7": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz#442d61d58e54ad258d52c309a787fceb33906484" - integrity sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA== +"@csstools/css-color-parser@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz#4e386af3a99dd36c46fef013cfe4c1c341eed6f0" + integrity sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA== dependencies: - "@csstools/color-helpers" "^5.0.1" - "@csstools/css-calc" "^2.1.1" + "@csstools/color-helpers" "^5.1.0" + "@csstools/css-calc" "^2.1.4" + +"@csstools/css-parser-algorithms@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz#5755370a9a29abaec5515b43c8b3f2cf9c2e3076" + integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== -"@csstools/css-parser-algorithms@^3.0.4": +"@csstools/css-tokenizer@^3.0.4": version "3.0.4" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz#74426e93bd1c4dcab3e441f5cc7ba4fb35d94356" - integrity sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A== + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz#333fedabc3fd1a8e5d0100013731cf19e6a8c5d3" + integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== -"@csstools/css-tokenizer@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz#a5502c8539265fecbd873c1e395a890339f119c2" - integrity sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw== +"@csstools/media-query-list-parser@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz#7aec77bcb89c2da80ef207e73f474ef9e1b3cdf1" + integrity sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ== -"@csstools/media-query-list-parser@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz#e80e17eba1693fceafb8d6f2cfc68c0e7a9ab78a" - integrity sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A== +"@csstools/postcss-alpha-function@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz#7989605711de7831bc7cd75b94c9b5bac9c3728e" + integrity sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" -"@csstools/postcss-cascade-layers@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz#9640313e64b5e39133de7e38a5aa7f40dc259597" - integrity sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ== +"@csstools/postcss-cascade-layers@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz#dd2c70db3867b88975f2922da3bfbae7d7a2cae7" + integrity sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg== dependencies: "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" -"@csstools/postcss-color-function@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-4.0.7.tgz#d31d2044d8a4f8b3154ac54ac77014879eae9f56" - integrity sha512-aDHYmhNIHR6iLw4ElWhf+tRqqaXwKnMl0YsQ/X105Zc4dQwe6yJpMrTN6BwOoESrkDjOYMOfORviSSLeDTJkdQ== +"@csstools/postcss-color-function-display-p3-linear@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz#3017ff5e1f65307d6083e58e93d76724fb1ebf9f" + integrity sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg== dependencies: - "@csstools/css-color-parser" "^3.0.7" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-color-mix-function@^3.0.7": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.7.tgz#39735bbc84dc173061e4c2842ec656bb9bc6ed2e" - integrity sha512-e68Nev4CxZYCLcrfWhHH4u/N1YocOfTmw67/kVX5Rb7rnguqqLyxPjhHWjSBX8o4bmyuukmNf3wrUSU3//kT7g== +"@csstools/postcss-color-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz#a7c85a98c77b522a194a1bbb00dd207f40c7a771" + integrity sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA== dependencies: - "@csstools/css-color-parser" "^3.0.7" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-content-alt-text@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz#76f4687fb15ed45bc1139bb71e5775779762897a" - integrity sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw== +"@csstools/postcss-color-mix-function@^3.0.12": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz#2f1ee9f8208077af069545c9bd79bb9733382c2a" + integrity sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag== dependencies: - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-exponential-functions@^2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.6.tgz#dcee86d22102576b13d8bea059125fbcf98e83cc" - integrity sha512-IgJA5DQsQLu/upA3HcdvC6xEMR051ufebBTIXZ5E9/9iiaA7juXWz1ceYj814lnDYP/7eWjZnw0grRJlX4eI6g== +"@csstools/postcss-color-mix-variadic-function-arguments@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz#b4012b62a4eaa24d694172bb7137f9d2319cb8f2" + integrity sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-content-alt-text@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz#1d52da1762893c32999ff76839e48d6ec7c7a4cb" + integrity sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-contrast-color-function@^2.0.12": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz#ca46986d095c60f208d9e3f24704d199c9172637" + integrity sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA== dependencies: - "@csstools/css-calc" "^2.1.1" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-exponential-functions@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz#fc03d1272888cb77e64cc1a7d8a33016e4f05c69" + integrity sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" "@csstools/postcss-font-format-keywords@^4.0.0": version "4.0.0" @@ -1146,67 +1205,67 @@ "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-gamut-mapping@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.7.tgz#8aaa4b6ffb6e2187379a83d253607f988533be25" - integrity sha512-gzFEZPoOkY0HqGdyeBXR3JP218Owr683u7KOZazTK7tQZBE8s2yhg06W1tshOqk7R7SWvw9gkw2TQogKpIW8Xw== - dependencies: - "@csstools/css-color-parser" "^3.0.7" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - -"@csstools/postcss-gradients-interpolation-method@^5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.7.tgz#57e19d25e98aa028b98e22ef392ea24c3e61c568" - integrity sha512-WgEyBeg6glUeTdS2XT7qeTFBthTJuXlS9GFro/DVomj7W7WMTamAwpoP4oQCq/0Ki2gvfRYFi/uZtmRE14/DFA== - dependencies: - "@csstools/css-color-parser" "^3.0.7" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" +"@csstools/postcss-gamut-mapping@^2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz#be0e34c9f0142852cccfc02b917511f0d677db8b" + integrity sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-gradients-interpolation-method@^5.0.12": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz#0955cce4d97203b861bf66742bbec611b2f3661c" + integrity sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-hwb-function@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.7.tgz#d09528098c4b99c49c76de686a4ae35585acc691" - integrity sha512-LKYqjO+wGwDCfNIEllessCBWfR4MS/sS1WXO+j00KKyOjm7jDW2L6jzUmqASEiv/kkJO39GcoIOvTTfB3yeBUA== +"@csstools/postcss-hwb-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz#07f7ecb08c50e094673bd20eaf7757db0162beee" + integrity sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA== dependencies: - "@csstools/css-color-parser" "^3.0.7" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-ic-unit@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz#b60ec06500717c337447c39ae7fe7952eeb9d48f" - integrity sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA== +"@csstools/postcss-ic-unit@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz#2ee2da0690db7edfbc469279711b9e69495659d2" + integrity sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg== dependencies: - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-initial@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz#a86f5fc59ab9f16f1422dade4c58bd941af5df22" - integrity sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA== +"@csstools/postcss-initial@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz#c385bd9d8ad31ad159edd7992069e97ceea4d09a" + integrity sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg== -"@csstools/postcss-is-pseudo-class@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz#12041448fedf01090dd4626022c28b7f7623f58e" - integrity sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ== +"@csstools/postcss-is-pseudo-class@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz#d34e850bcad4013c2ed7abe948bfa0448aa8eb74" + integrity sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ== dependencies: "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" -"@csstools/postcss-light-dark-function@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz#807c170cd28eebb0c00e64dfc6ab0bf418f19209" - integrity sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw== +"@csstools/postcss-light-dark-function@^2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz#0df448aab9a33cb9a085264ff1f396fb80c4437d" + integrity sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA== dependencies: - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-logical-float-and-clear@^3.0.0": @@ -1231,32 +1290,32 @@ dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-logical-viewport-units@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz#f6cc63520ca2a6eb76b9cd946070c38dda66d733" - integrity sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw== +"@csstools/postcss-logical-viewport-units@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz#016d98a8b7b5f969e58eb8413447eb801add16fc" + integrity sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ== dependencies: - "@csstools/css-tokenizer" "^3.0.3" + "@csstools/css-tokenizer" "^3.0.4" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-media-minmax@^2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.6.tgz#427921c0f08033203810af16dfed0baedc538eab" - integrity sha512-J1+4Fr2W3pLZsfxkFazK+9kr96LhEYqoeBszLmFjb6AjYs+g9oDAw3J5oQignLKk3rC9XHW+ebPTZ9FaW5u5pg== +"@csstools/postcss-media-minmax@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz#184252d5b93155ae526689328af6bdf3fc113987" + integrity sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig== dependencies: - "@csstools/css-calc" "^2.1.1" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/media-query-list-parser" "^4.0.2" + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/media-query-list-parser" "^4.0.3" -"@csstools/postcss-media-queries-aspect-ratio-number-values@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz#d71102172c74baf3f892fac88cf1ea46a961600d" - integrity sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ== +"@csstools/postcss-media-queries-aspect-ratio-number-values@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz#f485c31ec13d6b0fb5c528a3474334a40eff5f11" + integrity sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg== dependencies: - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/media-query-list-parser" "^4.0.2" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/media-query-list-parser" "^4.0.3" "@csstools/postcss-nested-calc@^4.0.0": version "4.0.0" @@ -1266,49 +1325,62 @@ "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-normalize-display-values@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz#ecdde2daf4e192e5da0c6fd933b6d8aff32f2a36" - integrity sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q== +"@csstools/postcss-normalize-display-values@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#3738ecadb38cd6521c9565635d61aa4bf5457d27" + integrity sha512-TQUGBuRvxdc7TgNSTevYqrL8oItxiwPDixk20qCB5me/W8uF7BPbhRrAvFuhEoywQp/woRsUZ6SJ+sU5idZAIA== dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-oklab-function@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.7.tgz#33b3322dfb27b0b5eb83a7ad36e67f08bc4e66cd" - integrity sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ== +"@csstools/postcss-oklab-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz#416640ef10227eea1375b47b72d141495950971d" + integrity sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg== dependencies: - "@csstools/css-color-parser" "^3.0.7" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-progressive-custom-properties@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz#ecdb85bcdb1852d73970a214a376684a91f82bdc" - integrity sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q== +"@csstools/postcss-position-area-property@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-position-area-property/-/postcss-position-area-property-1.0.0.tgz#41f0cbc737a81a42890d5ec035fa26a45f4f4ad4" + integrity sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q== + +"@csstools/postcss-progressive-custom-properties@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz#c39780b9ff0d554efb842b6bd75276aa6f1705db" + integrity sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw== dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-random-function@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-random-function/-/postcss-random-function-1.0.2.tgz#699702820f19bb6b9632966ff44d8957db6889d2" - integrity sha512-vBCT6JvgdEkvRc91NFoNrLjgGtkLWt47GKT6E2UDn3nd8ZkMBiziQ1Md1OiKoSsgzxsSnGKG3RVdhlbdZEkHjA== +"@csstools/postcss-property-rule-prelude-list@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-property-rule-prelude-list/-/postcss-property-rule-prelude-list-1.0.0.tgz#700b7aa41228c02281bda074ae778f36a09da188" + integrity sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA== dependencies: - "@csstools/css-calc" "^2.1.1" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" -"@csstools/postcss-relative-color-syntax@^3.0.7": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.7.tgz#862f8c6a2bbbab1a46aff8265b6a095fd267a3a6" - integrity sha512-apbT31vsJVd18MabfPOnE977xgct5B1I+Jpf+Munw3n6kKb1MMuUmGGH+PT9Hm/fFs6fe61Q/EWnkrb4bNoNQw== - dependencies: - "@csstools/css-color-parser" "^3.0.7" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" +"@csstools/postcss-random-function@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz#3191f32fe72936e361dadf7dbfb55a0209e2691e" + integrity sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-relative-color-syntax@^3.0.12": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz#ced792450102441f7c160e1d106f33e4b44181f8" + integrity sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-scope-pseudo-class@^4.0.1": @@ -1318,50 +1390,65 @@ dependencies: postcss-selector-parser "^7.0.0" -"@csstools/postcss-sign-functions@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.1.tgz#eb8e4a5ac637982aeb9264cb99f85817612ad3e8" - integrity sha512-MslYkZCeMQDxetNkfmmQYgKCy4c+w9pPDfgOBCJOo/RI1RveEUdZQYtOfrC6cIZB7sD7/PHr2VGOcMXlZawrnA== +"@csstools/postcss-sign-functions@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz#a9ac56954014ae4c513475b3f1b3e3424a1e0c12" + integrity sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg== dependencies: - "@csstools/css-calc" "^2.1.1" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" -"@csstools/postcss-stepped-value-functions@^4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.6.tgz#ee88c6122daf58a1b8641f462e8e33427c60b1f1" - integrity sha512-/dwlO9w8vfKgiADxpxUbZOWlL5zKoRIsCymYoh1IPuBsXODKanKnfuZRr32DEqT0//3Av1VjfNZU9yhxtEfIeA== +"@csstools/postcss-stepped-value-functions@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz#36036f1a0e5e5ee2308e72f3c9cb433567c387b9" + integrity sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA== dependencies: - "@csstools/css-calc" "^2.1.1" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" -"@csstools/postcss-text-decoration-shorthand@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz#251fab0939d50c6fd73bb2b830b2574188efa087" - integrity sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw== +"@csstools/postcss-syntax-descriptor-syntax-production@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-syntax-descriptor-syntax-production/-/postcss-syntax-descriptor-syntax-production-1.0.1.tgz#98590e372e547cdae60aef47cfee11f3881307dd" + integrity sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow== + dependencies: + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-system-ui-font-family@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-system-ui-font-family/-/postcss-system-ui-font-family-1.0.0.tgz#bd65b79078debf6f67b318dc9b71a8f9fa16f8c8" + integrity sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ== dependencies: - "@csstools/color-helpers" "^5.0.1" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-text-decoration-shorthand@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz#fae1b70f07d1b7beb4c841c86d69e41ecc6f743c" + integrity sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA== + dependencies: + "@csstools/color-helpers" "^5.1.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-trigonometric-functions@^4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.6.tgz#fc5c5f4c9bd0fd796b58b9a14d5d663be76d19fa" - integrity sha512-c4Y1D2Why/PeccaSouXnTt6WcNHJkoJRidV2VW9s5gJ97cNxnLgQ4Qj8qOqkIR9VmTQKJyNcbF4hy79ZQnWD7A== +"@csstools/postcss-trigonometric-functions@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz#3f94ed2e319b57f2c59720b64e4d0a8a6fb8c3b2" + integrity sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A== dependencies: - "@csstools/css-calc" "^2.1.1" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" "@csstools/postcss-unset-value@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz#7caa981a34196d06a737754864baf77d64de4bba" integrity sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA== -"@csstools/selector-resolve-nested@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz#704a9b637975680e025e069a4c58b3beb3e2752a" - integrity sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ== +"@csstools/selector-resolve-nested@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz#848c6f44cb65e3733e478319b9342b7aa436fac7" + integrity sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g== "@csstools/selector-specificity@^5.0.0": version "5.0.0" @@ -1378,19 +1465,19 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@docsearch/css@3.8.2": - version "3.8.2" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.8.2.tgz#7973ceb6892c30f154ba254cd05c562257a44977" - integrity sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ== +"@docsearch/css@3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.9.0.tgz#3bc29c96bf024350d73b0cfb7c2a7b71bf251cd5" + integrity sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA== "@docsearch/react@^3.8.1": - version "3.8.2" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.8.2.tgz#7b11d39b61c976c0aa9fbde66e6b73b30f3acd42" - integrity sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg== + version "3.9.0" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.9.0.tgz#d0842b700c3ee26696786f3c8ae9f10c1a3f0db3" + integrity sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ== dependencies: - "@algolia/autocomplete-core" "1.17.7" - "@algolia/autocomplete-preset-algolia" "1.17.7" - "@docsearch/css" "3.8.2" + "@algolia/autocomplete-core" "1.17.9" + "@algolia/autocomplete-preset-algolia" "1.17.9" + "@docsearch/css" "3.9.0" algoliasearch "^5.14.2" "@docusaurus/babel@3.7.0": @@ -1898,13 +1985,20 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" - integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": @@ -1912,28 +2006,23 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - "@jridgewell/source-map@^0.3.3": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" - integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + version "0.3.11" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" + integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== dependencies: "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== -"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== +"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -1944,14 +2033,15 @@ integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== "@mdx-js/mdx@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-3.1.0.tgz#10235cab8ad7d356c262e8c21c68df5850a97dc3" - integrity sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw== + version "3.1.1" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-3.1.1.tgz#c5ffd991a7536b149e17175eee57a1a2a511c6d1" + integrity sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ== dependencies: "@types/estree" "^1.0.0" "@types/estree-jsx" "^1.0.0" "@types/hast" "^3.0.0" "@types/mdx" "^2.0.0" + acorn "^8.0.0" collapse-white-space "^2.0.0" devlop "^1.0.0" estree-util-is-identifier-name "^3.0.0" @@ -1974,9 +2064,9 @@ vfile "^6.0.0" "@mdx-js/react@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.1.0.tgz#c4522e335b3897b9a845db1dbdd2f966ae8fb0ed" - integrity sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ== + version "3.1.1" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.1.1.tgz#24bda7fffceb2fe256f954482123cda1be5f5fef" + integrity sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw== dependencies: "@types/mdx" "^2.0.0" @@ -2013,19 +2103,19 @@ dependencies: graceful-fs "4.2.10" -"@pnpm/npm-conf@^2.1.0": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz#bb375a571a0bd63ab0a23bece33033c683e9b6b0" - integrity sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw== +"@pnpm/npm-conf@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-3.0.2.tgz#857622421aa9bbf254e557b8a022c216a7928f47" + integrity sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA== dependencies: "@pnpm/config.env-replace" "^1.1.0" "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" "@polka/url@^1.0.0-next.24": - version "1.0.0-next.28" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" - integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw== + version "1.0.0-next.29" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.29.tgz#5a40109a1ab5f84d6fd8fc928b19f367cbe7e7b1" + integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== "@sideway/address@^4.1.5": version "4.1.5" @@ -2186,17 +2276,10 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== -"@types/acorn@^4.0.0": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" - integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== - dependencies: - "@types/estree" "*" - "@types/body-parser@*": - version "1.19.5" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" - integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + version "1.19.6" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.6.tgz#1859bebb8fd7dac9918a45d54c1971ab8b5af474" + integrity sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g== dependencies: "@types/connect" "*" "@types/node" "*" @@ -2253,15 +2336,15 @@ dependencies: "@types/estree" "*" -"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.5.tgz#f6a851c7fd512e5da087f6f20d29f44b162a6a95" - integrity sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA== + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz#1a77faffee9572d39124933259be2523837d7eaa" + integrity sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2269,9 +2352,9 @@ "@types/send" "*" "@types/express-serve-static-core@^4.17.33": - version "4.19.6" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" - integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== + version "4.19.8" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz#99b960322a4d576b239a640ab52ef191989b036f" + integrity sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2279,24 +2362,23 @@ "@types/send" "*" "@types/express@*": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.0.tgz#13a7d1f75295e90d19ed6e74cab3678488eaa96c" - integrity sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ== + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" + integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^5.0.0" - "@types/qs" "*" - "@types/serve-static" "*" + "@types/serve-static" "^2" "@types/express@^4.17.13": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + version "4.17.25" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.25.tgz#070c8c73a6fee6936d65c195dbbfb7da5026649b" + integrity sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" "@types/qs" "*" - "@types/serve-static" "*" + "@types/serve-static" "^1" "@types/gtag.js@^0.0.12": version "0.0.12" @@ -2321,19 +2403,19 @@ integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== "@types/http-cache-semantics@^4.0.2": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" - integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + version "4.2.0" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#f6a7788f438cbfde15f29acad46512b4c01913b3" + integrity sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q== "@types/http-errors@*": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" - integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472" + integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg== "@types/http-proxy@^1.17.8": - version "1.17.15" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.15.tgz#12118141ce9775a6499ecb4c01d02f90fc839d36" - integrity sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ== + version "1.17.17" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.17.tgz#d9e2c4571fe3507343cb210cd41790375e59a533" + integrity sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw== dependencies: "@types/node" "*" @@ -2356,7 +2438,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -2384,18 +2466,18 @@ integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== "@types/node-forge@^1.3.0": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" - integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + version "1.3.14" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.14.tgz#006c2616ccd65550560c2757d8472eb6d3ecea0b" + integrity sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw== dependencies: "@types/node" "*" "@types/node@*": - version "22.10.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.7.tgz#14a1ca33fd0ebdd9d63593ed8d3fbc882a6d28d7" - integrity sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg== + version "25.0.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.10.tgz#4864459c3c9459376b8b75fd051315071c8213e7" + integrity sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg== dependencies: - undici-types "~6.20.0" + undici-types "~7.16.0" "@types/node@^17.0.5": version "17.0.45" @@ -2413,9 +2495,9 @@ integrity sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ== "@types/qs@*": - version "6.9.18" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.18.tgz#877292caa91f7c1b213032b34626505b746624c2" - integrity sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA== + version "6.14.0" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.14.0.tgz#d8b60cecf62f2db0fb68e5e006077b9178b85de5" + integrity sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ== "@types/range-parser@*": version "1.2.7" @@ -2449,11 +2531,11 @@ "@types/react" "*" "@types/react@*": - version "19.0.7" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.7.tgz#c451968b999d1cb2d9207dc5ff56496164cf511d" - integrity sha512-MoFsEJKkAtZCrC1r6CM8U22GzhG7u2Wir8ons/aCKH6MBdD1ibV24zOSSkdZVUKqN5i396zG5VKLYZ3yaUZdLA== + version "19.2.10" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.10.tgz#f3ea799e6b4cebad6dfd231c238fc9de7652e2d2" + integrity sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw== dependencies: - csstype "^3.0.2" + csstype "^3.2.2" "@types/retry@0.12.0": version "0.12.0" @@ -2468,9 +2550,16 @@ "@types/node" "*" "@types/send@*": - version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" - integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-1.2.1.tgz#6a784e45543c18c774c049bff6d3dbaf045c9c74" + integrity sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ== + dependencies: + "@types/node" "*" + +"@types/send@<1": + version "0.17.6" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25" + integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og== dependencies: "@types/mime" "^1" "@types/node" "*" @@ -2482,14 +2571,22 @@ dependencies: "@types/express" "*" -"@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" - integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== +"@types/serve-static@^1", "@types/serve-static@^1.13.10": + version "1.15.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" + integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "<1" + +"@types/serve-static@^2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a" + integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ== dependencies: "@types/http-errors" "*" "@types/node" "*" - "@types/send" "*" "@types/sockjs@^0.3.33": version "0.3.36" @@ -2509,9 +2606,9 @@ integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== "@types/ws@^8.5.5": - version "8.5.13" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" - integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== dependencies: "@types/node" "*" @@ -2521,16 +2618,16 @@ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^17.0.8": - version "17.0.33" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" - integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24" + integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== dependencies: "@types/yargs-parser" "*" "@ungap/structured-clone@^1.0.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.1.tgz#28fa185f67daaf7b7a1a8c1d445132c5d979f8bd" - integrity sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" @@ -2663,7 +2760,7 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -accepts@~1.3.4, accepts@~1.3.8: +accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -2671,6 +2768,11 @@ accepts@~1.3.4, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" +acorn-import-phases@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" + integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== + acorn-jsx@^5.0.0: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -2683,10 +2785,10 @@ acorn-walk@^8.0.0: dependencies: acorn "^8.11.0" -acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.8.2: - version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== +acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.15.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== address@^1.0.1, address@^1.1.2: version "1.2.2" @@ -2741,30 +2843,31 @@ ajv@^8.0.0, ajv@^8.9.0: require-from-string "^2.0.2" algoliasearch-helper@^3.22.6: - version "3.23.0" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.23.0.tgz#638e766bf6be2308b8dcda3282e47aff66438712" - integrity sha512-8CK4Gb/ju4OesAYcS+mjBpNiVA7ILWpg7D2vhBZohh0YkG8QT1KZ9LG+8+EntQBUGoKtPy06OFhiwP4f5zzAQg== + version "3.27.0" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.27.0.tgz#987c18b715ed0ecb303711feaa14335e5b8516e1" + integrity sha512-eNYchRerbsvk2doHOMfdS1/B6Tm70oGtu8mzQlrNzbCeQ8p1MjCW8t/BL6iZ5PD+cL5NNMgTMyMnmiXZ1sgmNw== dependencies: "@algolia/events" "^4.0.1" algoliasearch@^5.14.2, algoliasearch@^5.17.1: - version "5.19.0" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.19.0.tgz#2a1490bb46a937515797fac30b2d1503fb028536" - integrity sha512-zrLtGhC63z3sVLDDKGW+SlCRN9eJHFTgdEmoAOpsVh6wgGL1GgTTDou7tpCBjevzgIvi3AIyDAQO3Xjbg5eqZg== - dependencies: - "@algolia/client-abtesting" "5.19.0" - "@algolia/client-analytics" "5.19.0" - "@algolia/client-common" "5.19.0" - "@algolia/client-insights" "5.19.0" - "@algolia/client-personalization" "5.19.0" - "@algolia/client-query-suggestions" "5.19.0" - "@algolia/client-search" "5.19.0" - "@algolia/ingestion" "1.19.0" - "@algolia/monitoring" "1.19.0" - "@algolia/recommend" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" + version "5.47.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.47.0.tgz#ed95e008bf37806d320419f7f9ad329dc893c6fc" + integrity sha512-AGtz2U7zOV4DlsuYV84tLp2tBbA7RPtLA44jbVH4TTpDcc1dIWmULjHSsunlhscbzDydnjuFlNhflR3nV4VJaQ== + dependencies: + "@algolia/abtesting" "1.13.0" + "@algolia/client-abtesting" "5.47.0" + "@algolia/client-analytics" "5.47.0" + "@algolia/client-common" "5.47.0" + "@algolia/client-insights" "5.47.0" + "@algolia/client-personalization" "5.47.0" + "@algolia/client-query-suggestions" "5.47.0" + "@algolia/client-search" "5.47.0" + "@algolia/ingestion" "1.47.0" + "@algolia/monitoring" "1.47.0" + "@algolia/recommend" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" ansi-align@^3.0.1: version "3.0.1" @@ -2791,9 +2894,9 @@ ansi-regex@^5.0.1: integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" - integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" @@ -2803,9 +2906,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: color-convert "^2.0.1" ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== anymatch@~3.1.2: version "3.1.3" @@ -2852,16 +2955,15 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@^10.4.19: - version "10.4.20" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" - integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== +autoprefixer@^10.4.19, autoprefixer@^10.4.23: + version "10.4.23" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.23.tgz#c6aa6db8e7376fcd900f9fd79d143ceebad8c4e6" + integrity sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA== dependencies: - browserslist "^4.23.3" - caniuse-lite "^1.0.30001646" - fraction.js "^4.3.7" - normalize-range "^0.1.2" - picocolors "^1.0.1" + browserslist "^4.28.1" + caniuse-lite "^1.0.30001760" + fraction.js "^5.3.4" + picocolors "^1.1.1" postcss-value-parser "^4.2.0" babel-loader@^9.2.1: @@ -2879,29 +2981,29 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.12" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz#ca55bbec8ab0edeeef3d7b8ffd75322e210879a9" - integrity sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og== +babel-plugin-polyfill-corejs2@^0.4.14: + version "0.4.15" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz#808fa349686eea4741807cfaaa2aa3aa57ce120a" + integrity sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw== dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.3" + "@babel/compat-data" "^7.28.6" + "@babel/helper-define-polyfill-provider" "^0.6.6" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.10.6: - version "0.10.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" - integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== +babel-plugin-polyfill-corejs3@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz#bb7f6aeef7addff17f7602a08a6d19a128c30164" + integrity sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" - core-js-compat "^3.38.0" + "@babel/helper-define-polyfill-provider" "^0.6.5" + core-js-compat "^3.43.0" -babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz#abeb1f3f1c762eace37587f42548b08b57789bc8" - integrity sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q== +babel-plugin-polyfill-regenerator@^0.6.5: + version "0.6.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz#69f5dd263cab933c42fe5ea05e83443b374bd4bf" + integrity sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.3" + "@babel/helper-define-polyfill-provider" "^0.6.6" bail@^2.0.0: version "2.0.2" @@ -2913,6 +3015,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +baseline-browser-mapping@^2.9.0: + version "2.9.18" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.18.tgz#c8281693035a9261b10d662a5379650a6c2d1ff7" + integrity sha512-e23vBV1ZLfjb9apvfPk4rHVu2ry6RIr2Wfs+O324okSidrX7pTAnEJPCh/O5BtRlr7QtZI7ktOP3vsqr7Z5XoA== + batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -2928,23 +3035,23 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== +body-parser@~1.20.3: + version "1.20.4" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.4.tgz#f8e20f4d06ca8a50a71ed329c15dccad1cdc547f" + integrity sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA== dependencies: - bytes "3.1.2" + bytes "~3.1.2" content-type "~1.0.5" debug "2.6.9" depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" + destroy "~1.2.0" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + on-finished "~2.4.1" + qs "~6.14.0" + raw-body "~2.5.3" type-is "~1.6.18" - unpipe "1.0.0" + unpipe "~1.0.0" bonjour-service@^1.0.11: version "1.3.0" @@ -2988,9 +3095,9 @@ boxen@^7.0.0: wrap-ansi "^8.1.0" brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -3002,15 +3109,16 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.23.0, browserslist@^4.23.1, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.3: - version "4.24.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" - integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.28.1: + version "4.28.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" + integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== dependencies: - caniuse-lite "^1.0.30001688" - electron-to-chromium "^1.5.73" - node-releases "^2.0.19" - update-browserslist-db "^1.1.1" + baseline-browser-mapping "^2.9.0" + caniuse-lite "^1.0.30001759" + electron-to-chromium "^1.5.263" + node-releases "^2.0.27" + update-browserslist-db "^1.2.0" buffer-from@^1.0.0: version "1.1.2" @@ -3022,7 +3130,7 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== -bytes@3.1.2: +bytes@3.1.2, bytes@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== @@ -3045,10 +3153,10 @@ cacheable-request@^10.2.8: normalize-url "^8.0.0" responselike "^3.0.0" -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz#32e5892e6361b29b0b545ba6f7763378daca2840" - integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: es-errors "^1.3.0" function-bind "^1.1.2" @@ -3064,12 +3172,12 @@ call-bind@^1.0.8: set-function-length "^1.2.2" call-bound@^1.0.2, call-bound@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.3.tgz#41cfd032b593e39176a71533ab4f384aa04fd681" - integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== dependencies: - call-bind-apply-helpers "^1.0.1" - get-intrinsic "^1.2.6" + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" callsites@^3.0.0: version "3.1.0" @@ -3104,10 +3212,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688: - version "1.0.30001695" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz#39dfedd8f94851132795fdf9b79d29659ad9c4d4" - integrity sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001759, caniuse-lite@^1.0.30001760: + version "1.0.30001766" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz#b6f6b55cb25a2d888d9393104d14751c6a7d6f7a" + integrity sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA== ccount@^2.0.0: version "2.0.1" @@ -3123,9 +3231,9 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: supports-color "^7.1.0" chalk@^5.0.1, chalk@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" - integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== char-regex@^1.0.2: version "1.0.2" @@ -3317,15 +3425,15 @@ compressible@~2.0.18: mime-db ">= 1.43.0 < 2" compression@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.5.tgz#fdd256c0a642e39e314c478f6c2cd654edd74c93" - integrity sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q== + version "1.8.1" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79" + integrity sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w== dependencies: bytes "3.1.2" compressible "~2.0.18" debug "2.6.9" negotiator "~0.6.4" - on-headers "~1.0.2" + on-headers "~1.1.0" safe-buffer "5.2.1" vary "~1.1.2" @@ -3359,16 +3467,16 @@ connect-history-api-fallback@^2.0.0: integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== consola@^3.2.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.0.tgz#4cfc9348fd85ed16a17940b3032765e31061ab88" - integrity sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA== + version "3.4.2" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== -content-disposition@0.5.4: +content-disposition@~0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== @@ -3385,20 +3493,20 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== +cookie-signature@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454" + integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== +cookie@~0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== copy-text-to-clipboard@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz#0202b2d9bdae30a49a53f898626dcc3b49ad960b" - integrity sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q== + version "3.2.2" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz#99bc79db3f2d355ec33a08d573aff6804491ddb9" + integrity sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A== copy-webpack-plugin@^11.0.0: version "11.0.0" @@ -3412,22 +3520,22 @@ copy-webpack-plugin@^11.0.0: schema-utils "^4.0.0" serialize-javascript "^6.0.0" -core-js-compat@^3.38.0, core-js-compat@^3.38.1: - version "3.40.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.40.0.tgz#7485912a5a4a4315c2fdb2cbdc623e6881c88b38" - integrity sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ== +core-js-compat@^3.43.0: + version "3.48.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.48.0.tgz#7efbe1fc1cbad44008190462217cc5558adaeaa6" + integrity sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q== dependencies: - browserslist "^4.24.3" + browserslist "^4.28.1" -core-js-pure@^3.30.2: - version "3.40.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.40.0.tgz#d9a019e9160f9b042eeb6abb92242680089d486e" - integrity sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A== +core-js-pure@^3.43.0: + version "3.48.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.48.0.tgz#7d5a3fe1ec3631b9aa76a81c843ac2ce918e5023" + integrity sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw== core-js@^3.31.1: - version "3.40.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.40.0.tgz#2773f6b06877d8eda102fc42f828176437062476" - integrity sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ== + version "3.48.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.48.0.tgz#1f813220a47bbf0e667e3885c36cd6f0593bf14d" + integrity sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ== core-util-is@~1.0.0: version "1.0.3" @@ -3479,14 +3587,14 @@ css-blank-pseudo@^7.0.1: postcss-selector-parser "^7.0.0" css-declaration-sorter@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" - integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== + version "7.3.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.3.1.tgz#acd204976d7ca5240b5579bfe6e73d4d088fd568" + integrity sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA== -css-has-pseudo@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz#fb42e8de7371f2896961e1f6308f13c2c7019b72" - integrity sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ== +css-has-pseudo@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz#a5ee2daf5f70a2032f3cefdf1e36e7f52a243873" + integrity sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA== dependencies: "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" @@ -3535,9 +3643,9 @@ css-select@^4.1.3: nth-check "^2.0.1" css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + version "5.2.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.2.2.tgz#01b6e8d163637bb2dd6c982ca4ed65863682786e" + integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== dependencies: boolbase "^1.0.0" css-what "^6.1.0" @@ -3562,14 +3670,14 @@ css-tree@~2.2.0: source-map-js "^1.0.1" css-what@^6.0.1, css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + version "6.2.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" + integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== -cssdb@^8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-8.2.3.tgz#7e6980bb5a785a9b4eb2a21bd38d50624b56cb46" - integrity sha512-9BDG5XmJrJQQnJ51VFxXCAtpZ5ebDlAREmO8sxMOVU0aSxN/gocbctjIG5LMh3WBUq+xTlb/jw2LoljBEqraTA== +cssdb@^8.6.0: + version "8.7.1" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-8.7.1.tgz#f296bbedc39ace9edf0ed8fbbec57c3e117747cd" + integrity sha512-+F6LKx48RrdGOtE4DT5jz7Uo+VeyKXpK797FAevIkzjV8bMHz6xTO5F7gNDcRCHmPgD5jj2g6QCsY9zmVrh38A== cssesc@^3.0.0: version "3.0.0" @@ -3645,10 +3753,10 @@ csso@^5.0.5: dependencies: css-tree "~2.2.0" -csstype@^3.0.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +csstype@^3.2.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" + integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== debounce@^1.2.1: version "1.2.1" @@ -3662,17 +3770,17 @@ debug@2.6.9, debug@^2.6.0: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.4.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" - integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: ms "^2.1.3" decode-named-character-reference@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" - integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz#3e40603760874c2e5867691b599d73a7da25b53f" + integrity sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q== dependencies: character-entities "^2.0.0" @@ -3742,7 +3850,7 @@ del@^6.1.1: rimraf "^3.0.2" slash "^3.0.0" -depd@2.0.0: +depd@2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -3757,7 +3865,7 @@ dequal@^2.0.0: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== -destroy@1.2.0: +destroy@1.2.0, destroy@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== @@ -3910,10 +4018,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.5.73: - version "1.5.84" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.84.tgz#8e334ca206bb293a20b16418bf454783365b0a95" - integrity sha512-I+DQ8xgafao9Ha6y0qjHHvpZ9OfyA1qKlkHkjywxzniORU2awxyz7f/iVJcULmrF2yrM3nHQf+iDjJtbbexd/g== +electron-to-chromium@^1.5.263: + version "1.5.279" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.279.tgz#67dfdeb22fd81412d0d18d1d9b2c749e9b8945cb" + integrity sha512-0bblUU5UNdOt5G7XqGiJtpZMONma6WAfq9vsFmtn9x1+joAObr6x1chfqyxFSDCAFwFhCQDrqeAr6MYdpwJ9Hg== emoji-regex@^8.0.0: version "8.0.0" @@ -3940,20 +4048,15 @@ emoticon@^4.0.1: resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.1.0.tgz#d5a156868ee173095627a33de3f1e914c3dde79e" integrity sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - encodeurl@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== -enhanced-resolve@^5.17.1: - version "5.18.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz#91eb1db193896b9801251eeff1c6980278b1e404" - integrity sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ== +enhanced-resolve@^5.17.4: + version "5.18.4" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz#c22d33055f3952035ce6a144ce092447c525f828" + integrity sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -3963,15 +4066,20 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.2.0, entities@^4.4.0, entities@^4.5.0: +entities@^4.2.0, entities@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +entities@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694" + integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== + error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + version "1.3.4" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" + integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== dependencies: is-arrayish "^0.2.1" @@ -3985,12 +4093,12 @@ es-errors@^1.3.0: resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-module-lexer@^1.2.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" - integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== +es-module-lexer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.0.0.tgz#f657cd7a9448dcdda9c070a3cb75e5dc1e85f5b1" + integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== -es-object-atoms@^1.0.0: +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== @@ -4117,9 +4225,9 @@ estree-util-to-js@^2.0.0: source-map "^0.7.0" estree-util-value-to-estree@^3.0.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.2.1.tgz#f8083e56f51efb4889794490730c036ba6167ee6" - integrity sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw== + version "3.5.0" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz#cd70cf37e7f78eae3e110d66a3436ce0d18a8f80" + integrity sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ== dependencies: "@types/estree" "^1.0.0" @@ -4187,38 +4295,38 @@ execa@^5.0.0: strip-final-newline "^2.0.0" express@^4.17.3: - version "4.21.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" - integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== + version "4.22.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.22.1.tgz#1de23a09745a4fffdb39247b344bb5eaff382069" + integrity sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" + body-parser "~1.20.3" + content-disposition "~0.5.4" content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" + cookie "~0.7.1" + cookie-signature "~1.0.6" debug "2.6.9" depd "2.0.0" encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" + finalhandler "~1.3.1" + fresh "~0.5.2" + http-errors "~2.0.0" merge-descriptors "1.0.3" methods "~1.1.2" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.12" + path-to-regexp "~0.1.12" proxy-addr "~2.0.7" - qs "6.13.0" + qs "~6.14.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" + send "~0.19.0" + serve-static "~1.16.2" setprototypeof "1.2.0" - statuses "2.0.1" + statuses "~2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -4257,14 +4365,14 @@ fast-json-stable-stringify@^2.0.0: integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-uri@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" - integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" + integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== fastq@^1.6.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.18.0.tgz#d631d7e25faffea81887fe5ea8c9010e1b36fee0" - integrity sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw== + version "1.20.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675" + integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== dependencies: reusify "^1.0.4" @@ -4316,17 +4424,17 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== +finalhandler@~1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88" + integrity sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg== dependencies: debug "2.6.9" encodeurl "~2.0.0" escape-html "~1.0.3" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - statuses "2.0.1" + statuses "~2.0.2" unpipe "~1.0.0" find-cache-dir@^4.0.0: @@ -4366,9 +4474,9 @@ flat@^5.0.2: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== follow-redirects@^1.0.0: - version "1.15.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" - integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== fork-ts-checker-webpack-plugin@^6.5.0: version "6.5.3" @@ -4404,20 +4512,20 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" - integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== +fraction.js@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-5.3.4.tgz#8c0fcc6a9908262df4ed197427bdeef563e0699a" + integrity sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ== -fresh@0.5.2: +fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== fs-extra@^11.1.1, fs-extra@^11.2.0: - version "11.3.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.0.tgz#0daced136bbaf65a555a326719af931adc7a314d" - integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== + version "11.3.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.3.tgz#a27da23b72524e81ac6c3815cc0179b8c74c59ee" + integrity sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -4434,9 +4542,9 @@ fs-extra@^9.0.0: universalify "^2.0.0" fs-monkey@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" - integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.1.0.tgz#632aa15a20e71828ed56b24303363fb1414e5997" + integrity sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw== fs.realpath@^1.0.0: version "1.0.0" @@ -4458,17 +4566,17 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz#dcfcb33d3272e15f445d15124bc0a216189b9044" - integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA== +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: - call-bind-apply-helpers "^1.0.1" + call-bind-apply-helpers "^1.0.2" es-define-property "^1.0.1" es-errors "^1.3.0" - es-object-atoms "^1.0.0" + es-object-atoms "^1.1.1" function-bind "^1.1.2" - get-proto "^1.0.0" + get-proto "^1.0.1" gopd "^1.2.0" has-symbols "^1.1.0" hasown "^2.0.2" @@ -4479,7 +4587,7 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-proto@^1.0.0: +get-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== @@ -4551,11 +4659,6 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -4663,15 +4766,15 @@ hasown@^2.0.2: function-bind "^1.1.2" hast-util-from-parse5@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz#29b42758ba96535fd6021f0f533c000886c0f00f" - integrity sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A== + version "8.0.3" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz#830a35022fff28c3fea3697a98c2f4cc6b835a2e" + integrity sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg== dependencies: "@types/hast" "^3.0.0" "@types/unist" "^3.0.0" devlop "^1.0.0" hastscript "^9.0.0" - property-information "^6.0.0" + property-information "^7.0.0" vfile "^6.0.0" vfile-location "^5.0.0" web-namespaces "^2.0.0" @@ -4703,9 +4806,9 @@ hast-util-raw@^9.0.0: zwitch "^2.0.0" hast-util-to-estree@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.1.tgz#b7f0b247d9f62127bb5db34e3a86c93d17279071" - integrity sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ== + version "3.1.3" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz#e654c1c9374645135695cc0ab9f70b8fcaf733d7" + integrity sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w== dependencies: "@types/estree" "^1.0.0" "@types/estree-jsx" "^1.0.0" @@ -4718,16 +4821,16 @@ hast-util-to-estree@^3.0.0: mdast-util-mdx-expression "^2.0.0" mdast-util-mdx-jsx "^3.0.0" mdast-util-mdxjs-esm "^2.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" - style-to-object "^1.0.0" + style-to-js "^1.0.0" unist-util-position "^5.0.0" zwitch "^2.0.0" hast-util-to-jsx-runtime@^2.0.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz#6d11b027473e69adeaa00ca4cfb5bb68e3d282fa" - integrity sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg== + version "2.3.6" + resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz#ff31897aae59f62232e21594eac7ef6b63333e98" + integrity sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg== dependencies: "@types/estree" "^1.0.0" "@types/hast" "^3.0.0" @@ -4739,21 +4842,21 @@ hast-util-to-jsx-runtime@^2.0.0: mdast-util-mdx-expression "^2.0.0" mdast-util-mdx-jsx "^3.0.0" mdast-util-mdxjs-esm "^2.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" - style-to-object "^1.0.0" + style-to-js "^1.0.0" unist-util-position "^5.0.0" vfile-message "^4.0.0" hast-util-to-parse5@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz#477cd42d278d4f036bc2ea58586130f6f39ee6ed" - integrity sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw== + version "8.0.1" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz#95aa391cc0514b4951418d01c883d1038af42f5d" + integrity sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA== dependencies: "@types/hast" "^3.0.0" comma-separated-tokens "^2.0.0" devlop "^1.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" web-namespaces "^2.0.0" zwitch "^2.0.0" @@ -4766,14 +4869,14 @@ hast-util-whitespace@^3.0.0: "@types/hast" "^3.0.0" hastscript@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-9.0.0.tgz#2b76b9aa3cba8bf6d5280869f6f6f7165c230763" - integrity sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw== + version "9.0.1" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-9.0.1.tgz#dbc84bef6051d40084342c229c451cd9dc567dff" + integrity sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w== dependencies: "@types/hast" "^3.0.0" comma-separated-tokens "^2.0.0" hast-util-parse-selector "^4.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" he@^1.2.0: @@ -4811,9 +4914,9 @@ hpack.js@^2.1.6: wbuf "^1.1.0" html-entities@^2.3.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" - integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + version "2.6.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" + integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== html-escaper@^2.0.2: version "2.0.2" @@ -4857,9 +4960,9 @@ html-void-elements@^3.0.0: integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== html-webpack-plugin@^5.6.0: - version "5.6.3" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz#a31145f0fee4184d53a794f9513147df1e653685" - integrity sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg== + version "5.6.6" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.6.tgz#5321b9579f4a1949318550ced99c2a4a4e60cbaf" + integrity sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -4888,45 +4991,46 @@ htmlparser2@^8.0.1: entities "^4.4.0" http-cache-semantics@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5" + integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== +http-errors@~1.8.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== dependencies: - depd "2.0.0" + depd "~1.1.2" inherits "2.0.4" setprototypeof "1.2.0" - statuses "2.0.1" + statuses ">= 1.5.0 < 2" toidentifier "1.0.1" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== +http-errors@~2.0.0, http-errors@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" + depd "~2.0.0" + inherits "~2.0.4" + setprototypeof "~1.2.0" + statuses "~2.0.2" + toidentifier "~1.0.1" http-parser-js@>=0.5.1: - version "0.5.9" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.9.tgz#b817b3ca0edea6236225000d795378707c169cec" - integrity sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw== + version "0.5.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075" + integrity sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA== http-proxy-middleware@^2.0.3: - version "2.0.7" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz#915f236d92ae98ef48278a95dedf17e991936ec6" - integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA== + version "2.0.9" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" + integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== dependencies: "@types/http-proxy" "^1.17.8" http-proxy "^1.18.1" @@ -4956,7 +5060,7 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4.24: +iconv-lite@~0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -4974,9 +5078,9 @@ ignore@^5.2.0, ignore@^5.2.4: integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== image-size@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.2.0.tgz#312af27a2ff4ff58595ad00b9344dd684c910df6" - integrity sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w== + version "1.2.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.2.1.tgz#ee118aedfe666db1a6ee12bed5821cde3740276d" + integrity sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw== dependencies: queue "6.0.2" @@ -4986,9 +5090,9 @@ immer@^9.0.7: integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== import-fresh@^3.1.0, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -5021,16 +5125,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -5041,10 +5140,10 @@ ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inline-style-parser@0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz#f4af5fe72e612839fcd453d989a586566d695f22" - integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== +inline-style-parser@0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.7.tgz#b1fc68bfc0313b8685745e4464e37f9376b9c909" + integrity sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA== interpret@^1.0.0: version "1.4.0" @@ -5064,9 +5163,9 @@ ipaddr.js@1.9.1: integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== ipaddr.js@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.3.0.tgz#71dce70e1398122208996d1c22f2ba46a24b1abc" + integrity sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg== is-alphabetical@^2.0.0: version "2.0.1" @@ -5100,7 +5199,7 @@ is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.16.0: +is-core-module@^2.16.1: version "2.16.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== @@ -5153,9 +5252,9 @@ is-installed-globally@^0.4.0: is-path-inside "^3.0.2" is-npm@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" - integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== + version "6.1.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.1.0.tgz#f70e0b6c132dfc817ac97d3badc0134945b098d3" + integrity sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA== is-number@^7.0.0: version "7.0.0" @@ -5304,30 +5403,25 @@ joi@^17.9.2: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + version "3.14.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" + integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== dependencies: argparse "^1.0.7" esprima "^4.0.0" js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== dependencies: argparse "^2.0.1" -jsesc@^3.0.2: +jsesc@^3.0.2, jsesc@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== -jsesc@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" - integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== - json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -5354,9 +5448,9 @@ json5@^2.1.2, json5@^2.2.3: integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + version "6.2.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" + integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== dependencies: universalify "^2.0.0" optionalDependencies: @@ -5387,12 +5481,12 @@ latest-version@^7.0.0: package-json "^8.1.0" launch-editor@^2.6.0: - version "2.9.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.9.1.tgz#253f173bd441e342d4344b4dae58291abb425047" - integrity sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w== + version "2.12.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.12.0.tgz#cc740f4e0263a6b62ead2485f9896e545321f817" + integrity sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg== dependencies: - picocolors "^1.0.0" - shell-quote "^1.8.1" + picocolors "^1.1.1" + shell-quote "^1.8.3" leven@^3.1.0: version "3.1.0" @@ -5409,10 +5503,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== +loader-runner@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" + integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== loader-utils@^2.0.0: version "2.0.4" @@ -5466,9 +5560,9 @@ lodash.uniq@^4.5.0: integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== lodash@^4.17.20, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + version "4.17.23" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" + integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== longest-streak@^3.0.0: version "3.1.0" @@ -5524,12 +5618,13 @@ math-intrinsics@^1.1.0: integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== mdast-util-directive@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz#3fb1764e705bbdf0afb0d3f889e4404c3e82561f" - integrity sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q== + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz#f3656f4aab6ae3767d3c72cfab5e8055572ccba1" + integrity sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q== dependencies: "@types/mdast" "^4.0.0" "@types/unist" "^3.0.0" + ccount "^2.0.0" devlop "^1.0.0" mdast-util-from-markdown "^2.0.0" mdast-util-to-markdown "^2.0.0" @@ -5589,9 +5684,9 @@ mdast-util-gfm-autolink-literal@^2.0.0: micromark-util-character "^2.0.0" mdast-util-gfm-footnote@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz#25a1753c7d16db8bfd53cd84fe50562bd1e6d6a9" - integrity sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz#7778e9d9ca3df7238cc2bd3fa2b1bf6a65b19403" + integrity sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ== dependencies: "@types/mdast" "^4.0.0" devlop "^1.1.0" @@ -5630,9 +5725,9 @@ mdast-util-gfm-task-list-item@^2.0.0: mdast-util-to-markdown "^2.0.0" mdast-util-gfm@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz#3f2aecc879785c3cb6a81ff3a243dc11eca61095" - integrity sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz#2cdf63b92c2a331406b0fb0db4c077c1b0331751" + integrity sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ== dependencies: mdast-util-from-markdown "^2.0.0" mdast-util-gfm-autolink-literal "^2.0.0" @@ -5704,9 +5799,9 @@ mdast-util-phrasing@^4.0.0: unist-util-is "^6.0.0" mdast-util-to-hast@^13.0.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" - integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== + version "13.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz#d7ff84ca499a57e2c060ae67548ad950e689a053" + integrity sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA== dependencies: "@types/hast" "^3.0.0" "@types/mdast" "^4.0.0" @@ -5783,9 +5878,9 @@ methods@~1.1.2: integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromark-core-commonmark@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz#6a45bbb139e126b3f8b361a10711ccc7c6e15e93" - integrity sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w== + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz#c691630e485021a68cf28dbc2b2ca27ebf678cd4" + integrity sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg== dependencies: decode-named-character-reference "^1.0.0" devlop "^1.0.0" @@ -5907,9 +6002,9 @@ micromark-extension-gfm@^3.0.0: micromark-util-types "^2.0.0" micromark-extension-mdx-expression@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz#1407b9ce69916cf5e03a196ad9586889df25302a" - integrity sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ== + version "3.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz#43d058d999532fb3041195a3c3c05c46fa84543b" + integrity sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q== dependencies: "@types/estree" "^1.0.0" devlop "^1.0.0" @@ -5921,11 +6016,10 @@ micromark-extension-mdx-expression@^3.0.0: micromark-util-types "^2.0.0" micromark-extension-mdx-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz#5abb83da5ddc8e473a374453e6ea56fbd66b59ad" - integrity sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg== + version "3.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz#ffc98bdb649798902fa9fc5689f67f9c1c902044" + integrity sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ== dependencies: - "@types/acorn" "^4.0.0" "@types/estree" "^1.0.0" devlop "^1.0.0" estree-util-is-identifier-name "^3.0.0" @@ -5993,9 +6087,9 @@ micromark-factory-label@^2.0.0: micromark-util-types "^2.0.0" micromark-factory-mdx-expression@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz#2afaa8ba6d5f63e0cead3e4dee643cad184ca260" - integrity sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz#bb09988610589c07d1c1e4425285895041b3dfa9" + integrity sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ== dependencies: "@types/estree" "^1.0.0" devlop "^1.0.0" @@ -6106,11 +6200,10 @@ micromark-util-encode@^2.0.0: integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== micromark-util-events-to-acorn@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz#4275834f5453c088bd29cd72dfbf80e3327cec07" - integrity sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA== + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz#e7a8a6b55a47e5a06c720d5a1c4abae8c37c98f3" + integrity sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg== dependencies: - "@types/acorn" "^4.0.0" "@types/estree" "^1.0.0" "@types/unist" "^3.0.0" devlop "^1.0.0" @@ -6148,9 +6241,9 @@ micromark-util-sanitize-uri@^2.0.0: micromark-util-symbol "^2.0.0" micromark-util-subtokenize@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.3.tgz#70ffb99a454bd8c913c8b709c3dc97baefb65f96" - integrity sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz#d8ade5ba0f3197a1cf6a2999fbbfe6357a1a19ee" + integrity sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA== dependencies: devlop "^1.0.0" micromark-util-chunked "^2.0.0" @@ -6173,14 +6266,14 @@ micromark-util-types@^1.0.0: integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== micromark-util-types@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.1.tgz#a3edfda3022c6c6b55bfb049ef5b75d70af50709" - integrity sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== micromark@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.1.tgz#294c2f12364759e5f9e925a767ae3dfde72223ff" - integrity sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw== + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.2.tgz#91395a3e1884a198e62116e33c9c568e39936fdb" + integrity sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" @@ -6214,9 +6307,9 @@ mime-db@1.52.0: integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== "mime-db@>= 1.43.0 < 2": - version "1.53.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" - integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== mime-db@~1.33.0: version "1.33.0" @@ -6230,7 +6323,7 @@ mime-types@2.1.18: dependencies: mime-db "~1.33.0" -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34, mime-types@~2.1.35: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -6258,9 +6351,9 @@ mimic-response@^4.0.0: integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== mini-css-extract-plugin@^2.9.1: - version "2.9.2" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz#966031b468917a5446f4c24a80854b2947503c5b" - integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== + version "2.10.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.0.tgz#d801a1f388f8fac7333c01b7c15c9222c811def4" + integrity sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g== dependencies: schema-utils "^4.0.0" tapable "^2.2.1" @@ -6283,9 +6376,9 @@ minimist@^1.2.0: integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mrmime@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" - integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" + integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== ms@2.0.0: version "2.0.0" @@ -6305,10 +6398,10 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -nanoid@^3.3.8: - version "3.3.8" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" - integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== negotiator@0.6.3: version "0.6.3" @@ -6344,29 +6437,24 @@ node-emoji@^2.1.0: skin-tone "^2.0.0" node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + version "1.3.3" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.3.tgz#0ad80f6333b3a0045e827ac20b7f735f93716751" + integrity sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg== -node-releases@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" - integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== +node-releases@^2.0.27: + version "2.0.27" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - normalize-url@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a" - integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== + version "8.1.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.1.1.tgz#751a20c8520e5725404c06015fea21d7567f25ef" + integrity sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ== npm-run-path@^4.0.1: version "4.0.1" @@ -6401,9 +6489,9 @@ object-assign@^4.1.1: integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.13.3: - version "1.13.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" - integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== object-keys@^1.1.1: version "1.1.1" @@ -6427,17 +6515,17 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@2.4.1: +on-finished@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== +on-headers@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65" + integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== once@^1.3.0: version "1.4.0" @@ -6596,13 +6684,13 @@ parse5-htmlparser2-tree-adapter@^7.0.0: parse5 "^7.0.0" parse5@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a" - integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ== + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== dependencies: - entities "^4.5.0" + entities "^6.0.0" -parseurl@~1.3.2, parseurl@~1.3.3: +parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -6650,11 +6738,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" - integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== - path-to-regexp@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-3.3.0.tgz#f7f31d32e8518c2660862b644414b6d5c63a611b" @@ -6667,12 +6750,17 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" +path-to-regexp@~0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1: +picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -6718,15 +6806,15 @@ postcss-clamp@^4.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-color-functional-notation@^7.0.7: - version "7.0.7" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.7.tgz#c5362df010926f902ce4e7fb3da2a46cff175d1b" - integrity sha512-EZvAHsvyASX63vXnyXOIynkxhaHRSsdb7z6yiXKIovGXAolW4cMZ3qoh7k3VdTsLBS6VGdksGfIo3r6+waLoOw== +postcss-color-functional-notation@^7.0.12: + version "7.0.12" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz#9a3df2296889e629fde18b873bb1f50a4ecf4b83" + integrity sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw== dependencies: - "@csstools/css-color-parser" "^3.0.7" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-color-hex-alpha@^10.0.0: @@ -6763,35 +6851,35 @@ postcss-convert-values@^6.1.0: browserslist "^4.23.0" postcss-value-parser "^4.2.0" -postcss-custom-media@^11.0.5: - version "11.0.5" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz#2fcd88a9b1d4da41c67dac6f2def903063a3377d" - integrity sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ== - dependencies: - "@csstools/cascade-layer-name-parser" "^2.0.4" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/media-query-list-parser" "^4.0.2" - -postcss-custom-properties@^14.0.4: - version "14.0.4" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz#de9c663285a98833a946d7003a34369d3ce373a9" - integrity sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A== - dependencies: - "@csstools/cascade-layer-name-parser" "^2.0.4" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" +postcss-custom-media@^11.0.6: + version "11.0.6" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz#6b450e5bfa209efb736830066682e6567bd04967" + integrity sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw== + dependencies: + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/media-query-list-parser" "^4.0.3" + +postcss-custom-properties@^14.0.6: + version "14.0.6" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz#1af73a650bf115ba052cf915287c9982825fc90e" + integrity sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ== + dependencies: + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -postcss-custom-selectors@^8.0.4: - version "8.0.4" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz#95ef8268fdbbbd84f34cf84a4517c9d99d419c5a" - integrity sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg== +postcss-custom-selectors@^8.0.5: + version "8.0.5" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz#9448ed37a12271d7ab6cb364b6f76a46a4a323e8" + integrity sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg== dependencies: - "@csstools/cascade-layer-name-parser" "^2.0.4" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" postcss-selector-parser "^7.0.0" postcss-dir-pseudo-class@^9.0.1: @@ -6828,12 +6916,12 @@ postcss-discard-unused@^6.0.5: dependencies: postcss-selector-parser "^6.0.16" -postcss-double-position-gradients@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz#eddd424ec754bb543d057d4d2180b1848095d4d2" - integrity sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg== +postcss-double-position-gradients@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz#b482d08b5ced092b393eb297d07976ab482d4cad" + integrity sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g== dependencies: - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" @@ -6869,15 +6957,15 @@ postcss-image-set-function@^7.0.0: "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -postcss-lab-function@^7.0.7: - version "7.0.7" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-7.0.7.tgz#9c87c21ce5132c55824190b75d7d7adede9c2fac" - integrity sha512-+ONj2bpOQfsCKZE2T9VGMyVVdGcGUpr7u3SVfvkJlvhTRmDCfY25k4Jc8fubB9DclAPR4+w8uVtDZmdRgdAHig== +postcss-lab-function@^7.0.12: + version "7.0.12" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz#eb555ac542607730eb0a87555074e4a5c6eef6e4" + integrity sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w== dependencies: - "@csstools/css-color-parser" "^3.0.7" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-loader@^7.3.3: @@ -6889,10 +6977,10 @@ postcss-loader@^7.3.3: jiti "^1.20.0" semver "^7.5.4" -postcss-logical@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-8.0.0.tgz#0db0b90c2dc53b485a8074a4b7a906297544f58d" - integrity sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg== +postcss-logical@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-8.1.0.tgz#4092b16b49e3ecda70c4d8945257da403d167228" + integrity sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA== dependencies: postcss-value-parser "^4.2.0" @@ -6982,12 +7070,12 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-nesting@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-13.0.1.tgz#c405796d7245a3e4c267a9956cacfe9670b5d43e" - integrity sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ== +postcss-nesting@^13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-13.0.2.tgz#fde0d4df772b76d03b52eccc84372e8d1ca1402e" + integrity sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ== dependencies: - "@csstools/selector-resolve-nested" "^3.0.0" + "@csstools/selector-resolve-nested" "^3.1.0" "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" @@ -7086,66 +7174,74 @@ postcss-place@^10.0.0: postcss-value-parser "^4.2.0" postcss-preset-env@^10.1.0: - version "10.1.3" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-10.1.3.tgz#7d07adef2237a643162e751b00eb1e339aa3b82e" - integrity sha512-9qzVhcMFU/MnwYHyYpJz4JhGku/4+xEiPTmhn0hj3IxnUYlEF9vbh7OC1KoLAnenS6Fgg43TKNp9xcuMeAi4Zw== - dependencies: - "@csstools/postcss-cascade-layers" "^5.0.1" - "@csstools/postcss-color-function" "^4.0.7" - "@csstools/postcss-color-mix-function" "^3.0.7" - "@csstools/postcss-content-alt-text" "^2.0.4" - "@csstools/postcss-exponential-functions" "^2.0.6" + version "10.6.1" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-10.6.1.tgz#df30cfc54e90af2dcff5f94104e6f272359c9f65" + integrity sha512-yrk74d9EvY+W7+lO9Aj1QmjWY9q5NsKjK2V9drkOPZB/X6KZ0B3igKsHUYakb7oYVhnioWypQX3xGuePf89f3g== + dependencies: + "@csstools/postcss-alpha-function" "^1.0.1" + "@csstools/postcss-cascade-layers" "^5.0.2" + "@csstools/postcss-color-function" "^4.0.12" + "@csstools/postcss-color-function-display-p3-linear" "^1.0.1" + "@csstools/postcss-color-mix-function" "^3.0.12" + "@csstools/postcss-color-mix-variadic-function-arguments" "^1.0.2" + "@csstools/postcss-content-alt-text" "^2.0.8" + "@csstools/postcss-contrast-color-function" "^2.0.12" + "@csstools/postcss-exponential-functions" "^2.0.9" "@csstools/postcss-font-format-keywords" "^4.0.0" - "@csstools/postcss-gamut-mapping" "^2.0.7" - "@csstools/postcss-gradients-interpolation-method" "^5.0.7" - "@csstools/postcss-hwb-function" "^4.0.7" - "@csstools/postcss-ic-unit" "^4.0.0" - "@csstools/postcss-initial" "^2.0.0" - "@csstools/postcss-is-pseudo-class" "^5.0.1" - "@csstools/postcss-light-dark-function" "^2.0.7" + "@csstools/postcss-gamut-mapping" "^2.0.11" + "@csstools/postcss-gradients-interpolation-method" "^5.0.12" + "@csstools/postcss-hwb-function" "^4.0.12" + "@csstools/postcss-ic-unit" "^4.0.4" + "@csstools/postcss-initial" "^2.0.1" + "@csstools/postcss-is-pseudo-class" "^5.0.3" + "@csstools/postcss-light-dark-function" "^2.0.11" "@csstools/postcss-logical-float-and-clear" "^3.0.0" "@csstools/postcss-logical-overflow" "^2.0.0" "@csstools/postcss-logical-overscroll-behavior" "^2.0.0" "@csstools/postcss-logical-resize" "^3.0.0" - "@csstools/postcss-logical-viewport-units" "^3.0.3" - "@csstools/postcss-media-minmax" "^2.0.6" - "@csstools/postcss-media-queries-aspect-ratio-number-values" "^3.0.4" + "@csstools/postcss-logical-viewport-units" "^3.0.4" + "@csstools/postcss-media-minmax" "^2.0.9" + "@csstools/postcss-media-queries-aspect-ratio-number-values" "^3.0.5" "@csstools/postcss-nested-calc" "^4.0.0" - "@csstools/postcss-normalize-display-values" "^4.0.0" - "@csstools/postcss-oklab-function" "^4.0.7" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" - "@csstools/postcss-random-function" "^1.0.2" - "@csstools/postcss-relative-color-syntax" "^3.0.7" + "@csstools/postcss-normalize-display-values" "^4.0.1" + "@csstools/postcss-oklab-function" "^4.0.12" + "@csstools/postcss-position-area-property" "^1.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/postcss-property-rule-prelude-list" "^1.0.0" + "@csstools/postcss-random-function" "^2.0.1" + "@csstools/postcss-relative-color-syntax" "^3.0.12" "@csstools/postcss-scope-pseudo-class" "^4.0.1" - "@csstools/postcss-sign-functions" "^1.1.1" - "@csstools/postcss-stepped-value-functions" "^4.0.6" - "@csstools/postcss-text-decoration-shorthand" "^4.0.1" - "@csstools/postcss-trigonometric-functions" "^4.0.6" + "@csstools/postcss-sign-functions" "^1.1.4" + "@csstools/postcss-stepped-value-functions" "^4.0.9" + "@csstools/postcss-syntax-descriptor-syntax-production" "^1.0.1" + "@csstools/postcss-system-ui-font-family" "^1.0.0" + "@csstools/postcss-text-decoration-shorthand" "^4.0.3" + "@csstools/postcss-trigonometric-functions" "^4.0.9" "@csstools/postcss-unset-value" "^4.0.0" - autoprefixer "^10.4.19" - browserslist "^4.23.1" + autoprefixer "^10.4.23" + browserslist "^4.28.1" css-blank-pseudo "^7.0.1" - css-has-pseudo "^7.0.2" + css-has-pseudo "^7.0.3" css-prefers-color-scheme "^10.0.0" - cssdb "^8.2.3" + cssdb "^8.6.0" postcss-attribute-case-insensitive "^7.0.1" postcss-clamp "^4.1.0" - postcss-color-functional-notation "^7.0.7" + postcss-color-functional-notation "^7.0.12" postcss-color-hex-alpha "^10.0.0" postcss-color-rebeccapurple "^10.0.0" - postcss-custom-media "^11.0.5" - postcss-custom-properties "^14.0.4" - postcss-custom-selectors "^8.0.4" + postcss-custom-media "^11.0.6" + postcss-custom-properties "^14.0.6" + postcss-custom-selectors "^8.0.5" postcss-dir-pseudo-class "^9.0.1" - postcss-double-position-gradients "^6.0.0" + postcss-double-position-gradients "^6.0.4" postcss-focus-visible "^10.0.1" postcss-focus-within "^9.0.1" postcss-font-variant "^5.0.0" postcss-gap-properties "^6.0.0" postcss-image-set-function "^7.0.0" - postcss-lab-function "^7.0.7" - postcss-logical "^8.0.0" - postcss-nesting "^13.0.1" + postcss-lab-function "^7.0.12" + postcss-logical "^8.1.0" + postcss-nesting "^13.0.2" postcss-opacity-percentage "^3.0.0" postcss-overflow-shorthand "^6.0.0" postcss-page-break "^3.0.4" @@ -7204,9 +7300,9 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16: util-deprecate "^1.0.2" postcss-selector-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz#41bd8b56f177c093ca49435f65731befe25d6b9c" - integrity sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ== + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz#e75d2e0d843f620e5df69076166f4e16f891cb9f" + integrity sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -7244,11 +7340,11 @@ postcss-zindex@^6.0.2: integrity sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg== postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.38: - version "8.5.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214" - integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ== + version "8.5.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== dependencies: - nanoid "^3.3.8" + nanoid "^3.3.11" picocolors "^1.1.1" source-map-js "^1.2.1" @@ -7279,9 +7375,9 @@ prism-react-renderer@^2.1.0, prism-react-renderer@^2.3.0: clsx "^2.0.0" prismjs@^1.29.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" - integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + version "1.30.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.30.0.tgz#d9709969d9d4e16403f6f348c63553b19f0975a9" + integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw== process-nextick-args@~2.0.0: version "2.0.1" @@ -7305,10 +7401,10 @@ prop-types@^15.6.2, prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.13.1" -property-information@^6.0.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" - integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== +property-information@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" + integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== proto-list@~1.2.1: version "1.2.4" @@ -7329,18 +7425,18 @@ punycode@^2.1.0: integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pupa@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" - integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== + version "3.3.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.3.0.tgz#bc4036f9e8920c08ad472bc18fb600067cb83810" + integrity sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA== dependencies: escape-goat "^4.0.0" -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== +qs@~6.14.0: + version "6.14.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159" + integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ== dependencies: - side-channel "^1.0.6" + side-channel "^1.1.0" queue-microtask@^1.2.2: version "1.2.3" @@ -7376,15 +7472,15 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +raw-body@~2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2" + integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + unpipe "~1.0.0" raw-loader@^4.0.2: version "4.0.2" @@ -7435,16 +7531,16 @@ react-dev-utils@^12.0.1: text-table "^0.2.0" react-dom@^19.0.0: - version "19.1.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.0.tgz#133558deca37fa1d682708df8904b25186793623" - integrity sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g== + version "19.2.4" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.4.tgz#6fac6bd96f7db477d966c7ec17c1a2b1ad8e6591" + integrity sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ== dependencies: - scheduler "^0.26.0" + scheduler "^0.27.0" react-error-overlay@^6.0.11: - version "6.0.11" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" - integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== + version "6.1.0" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.1.0.tgz#22b86256beb1c5856f08a9a228adb8121dd985f2" + integrity sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ== react-fast-compare@^3.2.0: version "3.2.2" @@ -7522,9 +7618,9 @@ react-router@5.3.4, react-router@^5.3.4: tiny-warning "^1.0.0" react@^19.0.0: - version "19.1.0" - resolved "https://registry.yarnpkg.com/react/-/react-19.1.0.tgz#926864b6c48da7627f004795d6cce50e90793b75" - integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg== + version "19.2.4" + resolved "https://registry.yarnpkg.com/react/-/react-19.2.4.tgz#438e57baa19b77cb23aab516cf635cd0579ee09a" + integrity sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ== readable-stream@^2.0.1: version "2.3.8" @@ -7577,9 +7673,9 @@ recma-build-jsx@^1.0.0: vfile "^6.0.0" recma-jsx@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/recma-jsx/-/recma-jsx-1.0.0.tgz#f7bef02e571a49d6ba3efdfda8e2efab48dbe3aa" - integrity sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q== + version "1.0.1" + resolved "https://registry.yarnpkg.com/recma-jsx/-/recma-jsx-1.0.1.tgz#58e718f45e2102ed0bf2fa994f05b70d76801a1a" + integrity sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w== dependencies: acorn-jsx "^5.0.0" estree-util-to-js "^2.0.0" @@ -7614,10 +7710,10 @@ recursive-readdir@^2.2.2: dependencies: minimatch "^3.0.5" -regenerate-unicode-properties@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" - integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== +regenerate-unicode-properties@^10.2.2: + version "10.2.2" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" + integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== dependencies: regenerate "^1.4.2" @@ -7626,36 +7722,24 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== - dependencies: - "@babel/runtime" "^7.8.4" - -regexpu-core@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" - integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== +regexpu-core@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" + integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^10.2.0" + regenerate-unicode-properties "^10.2.2" regjsgen "^0.8.0" - regjsparser "^0.12.0" + regjsparser "^0.13.0" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" + unicode-match-property-value-ecmascript "^2.2.1" registry-auth-token@^5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.3.tgz#417d758c8164569de8cf5cabff16cc937902dcc6" - integrity sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA== + version "5.1.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.1.1.tgz#f1ff69c8e492e7edee07110b4752dd0a8aa82853" + integrity sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q== dependencies: - "@pnpm/npm-conf" "^2.1.0" + "@pnpm/npm-conf" "^3.0.2" registry-url@^6.0.0: version "6.0.1" @@ -7669,12 +7753,12 @@ regjsgen@^0.8.0: resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== -regjsparser@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" - integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== +regjsparser@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.0.tgz#01f8351335cf7898d43686bc74d2dd71c847ecc0" + integrity sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q== dependencies: - jsesc "~3.0.2" + jsesc "~3.1.0" rehype-raw@^7.0.0: version "7.0.0" @@ -7700,9 +7784,9 @@ relateurl@^0.2.7: integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== remark-directive@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-3.0.0.tgz#34452d951b37e6207d2e2a4f830dc33442923268" - integrity sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-3.0.1.tgz#689ba332f156cfe1118e849164cc81f157a3ef0a" + integrity sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A== dependencies: "@types/mdast" "^4.0.0" mdast-util-directive "^3.0.0" @@ -7731,9 +7815,9 @@ remark-frontmatter@^5.0.0: unified "^11.0.0" remark-gfm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.0.tgz#aea777f0744701aa288b67d28c43565c7e8c35de" - integrity sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA== + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.1.tgz#33227b2a74397670d357bf05c098eaf8513f0d6b" + integrity sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg== dependencies: "@types/mdast" "^4.0.0" mdast-util-gfm "^3.0.0" @@ -7743,9 +7827,9 @@ remark-gfm@^4.0.0: unified "^11.0.0" remark-mdx@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.1.0.tgz#f979be729ecb35318fa48e2135c1169607a78343" - integrity sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.1.1.tgz#047f97038bc7ec387aebb4b0a4fe23779999d845" + integrity sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg== dependencies: mdast-util-mdx "^3.0.0" micromark-extension-mdxjs "^3.0.0" @@ -7761,9 +7845,9 @@ remark-parse@^11.0.0: unified "^11.0.0" remark-rehype@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.1.tgz#f864dd2947889a11997c0a2667cd6b38f685bca7" - integrity sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ== + version "11.1.2" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.2.tgz#2addaadda80ca9bd9aa0da763e74d16327683b37" + integrity sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw== dependencies: "@types/hast" "^3.0.0" "@types/mdast" "^4.0.0" @@ -7826,12 +7910,12 @@ resolve-pathname@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== -resolve@^1.1.6, resolve@^1.14.2: - version "1.22.10" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" - integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== +resolve@^1.1.6, resolve@^1.22.11: + version "1.22.11" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" + integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== dependencies: - is-core-module "^2.16.0" + is-core-module "^2.16.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -7848,9 +7932,9 @@ retry@^0.13.1: integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rimraf@^3.0.2: version "3.0.2" @@ -7892,14 +7976,14 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sax@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" - integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + version "1.4.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.4.tgz#f29c2bba80ce5b86f4343b4c2be9f2b96627cf8b" + integrity sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw== -scheduler@^0.26.0: - version "0.26.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.26.0.tgz#4ce8a8c2a2095f13ea11bf9a445be50c555d6337" - integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA== +scheduler@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.27.0.tgz#0c4ef82d67d1e5c1e359e8fc76d3a87f045fe5bd" + integrity sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== schema-utils@2.7.0: version "2.7.0" @@ -7910,7 +7994,7 @@ schema-utils@2.7.0: ajv "^6.12.2" ajv-keywords "^3.4.1" -schema-utils@^3.0.0, schema-utils@^3.2.0: +schema-utils@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -7919,10 +8003,10 @@ schema-utils@^3.0.0, schema-utils@^3.2.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.0.tgz#3b669f04f71ff2dfb5aba7ce2d5a9d79b35622c0" - integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== +schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.3.0, schema-utils@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" + integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== dependencies: "@types/json-schema" "^7.0.9" ajv "^8.9.0" @@ -7963,28 +8047,28 @@ semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.4: - version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + version "7.7.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" + integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== +send@~0.19.0, send@~0.19.1: + version "0.19.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.2.tgz#59bc0da1b4ea7ad42736fd642b1c4294e114ff29" + integrity sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg== dependencies: debug "2.6.9" depd "2.0.0" destroy "1.2.0" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" + fresh "~0.5.2" + http-errors "~2.0.1" mime "1.6.0" ms "2.1.3" - on-finished "2.4.1" + on-finished "~2.4.1" range-parser "~1.2.1" - statuses "2.0.1" + statuses "~2.0.2" serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: version "6.0.2" @@ -8007,27 +8091,27 @@ serve-handler@^6.1.6: range-parser "1.2.0" serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + version "1.9.2" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.2.tgz#2988e3612106d78a5e4849ddff552ce7bd3d9bcb" + integrity sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ== dependencies: - accepts "~1.3.4" + accepts "~1.3.8" batch "0.6.1" debug "2.6.9" escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" + http-errors "~1.8.0" + mime-types "~2.1.35" + parseurl "~1.3.3" -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== +serve-static@~1.16.2: + version "1.16.3" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.3.tgz#a97b74d955778583f3862a4f0b841eb4d5d78cf9" + integrity sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA== dependencies: encodeurl "~2.0.0" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.19.0" + send "~0.19.1" set-function-length@^1.2.2: version "1.2.2" @@ -8041,12 +8125,7 @@ set-function-length@^1.2.2: gopd "^1.0.1" has-property-descriptors "^1.0.2" -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: +setprototypeof@1.2.0, setprototypeof@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== @@ -8075,10 +8154,10 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.7.3, shell-quote@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a" - integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== +shell-quote@^1.7.3, shell-quote@^1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== shelljs@^0.8.5: version "0.8.5" @@ -8118,7 +8197,7 @@ side-channel-weakmap@^1.0.2: object-inspect "^1.13.3" side-channel-map "^1.0.1" -side-channel@^1.0.6: +side-channel@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== @@ -8216,9 +8295,9 @@ source-map@^0.6.0, source-map@~0.6.0: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.0: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + version "0.7.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02" + integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== space-separated-tokens@^2.0.0: version "2.0.2" @@ -8258,20 +8337,20 @@ srcset@^4.0.0: resolved "https://registry.yarnpkg.com/srcset/-/srcset-4.0.0.tgz#336816b665b14cd013ba545b6fe62357f86e65f4" integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2": +"statuses@>= 1.5.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +statuses@~2.0.1, statuses@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== + std-env@^3.7.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.8.0.tgz#b56ffc1baf1a29dcc80a3bdf11d7fca7c315e7d5" - integrity sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w== + version "3.10.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.10.0.tgz#d810b27e3a073047b2b5e40034881f5ea6f9c83b" + integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" @@ -8330,9 +8409,9 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== dependencies: ansi-regex "^6.0.1" @@ -8356,12 +8435,19 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -style-to-object@^1.0.0: - version "1.0.8" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.8.tgz#67a29bca47eaa587db18118d68f9d95955e81292" - integrity sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g== +style-to-js@^1.0.0: + version "1.1.21" + resolved "https://registry.yarnpkg.com/style-to-js/-/style-to-js-1.1.21.tgz#2908941187f857e79e28e9cd78008b9a0b3e0e8d" + integrity sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ== + dependencies: + style-to-object "1.0.14" + +style-to-object@1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.14.tgz#1d22f0e7266bb8c6d8cae5caf4ec4f005e08f611" + integrity sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw== dependencies: - inline-style-parser "0.2.4" + inline-style-parser "0.2.7" stylehacks@^6.1.1: version "6.1.1" @@ -8413,15 +8499,15 @@ tapable@^1.0.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +tapable@^2.0.0, tapable@^2.2.0, tapable@^2.2.1, tapable@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" + integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== -terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: - version "5.3.11" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz#93c21f44ca86634257cac176f884f942b7ba3832" - integrity sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ== +terser-webpack-plugin@^5.3.16, terser-webpack-plugin@^5.3.9: + version "5.3.16" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz#741e448cc3f93d8026ebe4f7ef9e4afacfd56330" + integrity sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q== dependencies: "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" @@ -8430,12 +8516,12 @@ terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: terser "^5.31.1" terser@^5.10.0, terser@^5.15.1, terser@^5.31.1: - version "5.37.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.37.0.tgz#38aa66d1cfc43d0638fab54e43ff8a4f72a21ba3" - integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== + version "5.46.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.46.0.tgz#1b81e560d584bbdd74a8ede87b4d9477b0ff9695" + integrity sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg== dependencies: "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" + acorn "^8.15.0" commander "^2.20.0" source-map-support "~0.5.20" @@ -8466,7 +8552,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.1: +toidentifier@1.0.1, toidentifier@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== @@ -8522,14 +8608,14 @@ typedarray-to-buffer@^3.1.5: is-typedarray "^1.0.0" typescript@~5.8.0: - version "5.8.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.2.tgz#8170b3702f74b79db2e5a96207c15e65807999e4" - integrity sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ== + version "5.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" + integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== -undici-types@~6.20.0: - version "6.20.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433" - integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" @@ -8549,15 +8635,15 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" - integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== +unicode-match-property-value-ecmascript@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" + integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + version "2.2.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1" + integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== unified@^11.0.0, unified@^11.0.3, unified@^11.0.4: version "11.0.5" @@ -8580,9 +8666,9 @@ unique-string@^3.0.0: crypto-random-string "^4.0.0" unist-util-is@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" - integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.1.tgz#d0a3f86f2dd0db7acd7d8c2478080b5c67f9c6a9" + integrity sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g== dependencies: "@types/unist" "^3.0.0" @@ -8608,17 +8694,17 @@ unist-util-stringify-position@^4.0.0: "@types/unist" "^3.0.0" unist-util-visit-parents@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" - integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== + version "6.0.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz#777df7fb98652ce16b4b7cd999d0a1a40efa3a02" + integrity sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ== dependencies: "@types/unist" "^3.0.0" unist-util-is "^6.0.0" unist-util-visit@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" - integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + version "5.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.1.0.tgz#9a2a28b0aa76a15e0da70a08a5863a2f060e2468" + integrity sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg== dependencies: "@types/unist" "^3.0.0" unist-util-is "^6.0.0" @@ -8629,15 +8715,15 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz#97e9c96ab0ae7bcac08e9ae5151d26e6bc6b5580" - integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg== +update-browserslist-db@^1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== dependencies: escalade "^3.2.0" picocolors "^1.1.1" @@ -8722,9 +8808,9 @@ vfile-location@^5.0.0: vfile "^6.0.0" vfile-message@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" - integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== + version "4.0.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.3.tgz#87b44dddd7b70f0641c2e3ed0864ba73e2ea8df4" + integrity sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw== dependencies: "@types/unist" "^3.0.0" unist-util-stringify-position "^4.0.0" @@ -8737,10 +8823,10 @@ vfile@^6.0.0, vfile@^6.0.1: "@types/unist" "^3.0.0" vfile-message "^4.0.0" -watchpack@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" - integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== +watchpack@^2.4.4: + version "2.5.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.5.1.tgz#dd38b601f669e0cbf567cb802e75cead82cde102" + integrity sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -8840,39 +8926,41 @@ webpack-merge@^6.0.1: flat "^5.0.2" wildcard "^2.0.1" -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== +webpack-sources@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" + integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== webpack@^5.88.1, webpack@^5.95.0: - version "5.97.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.97.1.tgz#972a8320a438b56ff0f1d94ade9e82eac155fa58" - integrity sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg== + version "5.104.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.104.1.tgz#94bd41eb5dbf06e93be165ba8be41b8260d4fb1a" + integrity sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA== dependencies: "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.6" + "@types/estree" "^1.0.8" + "@types/json-schema" "^7.0.15" "@webassemblyjs/ast" "^1.14.1" "@webassemblyjs/wasm-edit" "^1.14.1" "@webassemblyjs/wasm-parser" "^1.14.1" - acorn "^8.14.0" - browserslist "^4.24.0" + acorn "^8.15.0" + acorn-import-phases "^1.0.3" + browserslist "^4.28.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.1" - es-module-lexer "^1.2.1" + enhanced-resolve "^5.17.4" + es-module-lexer "^2.0.0" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.11" json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" + loader-runner "^4.3.1" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.2.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.10" - watchpack "^2.4.1" - webpack-sources "^3.2.3" + schema-utils "^4.3.3" + tapable "^2.3.0" + terser-webpack-plugin "^5.3.16" + watchpack "^2.4.4" + webpack-sources "^3.3.3" webpackbar@^6.0.1: version "6.0.1" @@ -8967,9 +9055,9 @@ ws@^7.3.1: integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== ws@^8.13.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + version "8.19.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" + integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: version "5.1.0" @@ -8999,9 +9087,9 @@ yocto-queue@^0.1.0: integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yocto-queue@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" - integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== + version "1.2.2" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.2.tgz#3e09c95d3f1aa89a58c114c99223edf639152c00" + integrity sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ== zwitch@^2.0.0: version "2.0.4" diff --git a/examples/latest/resistor_bank/Cargo.toml b/examples/latest/resistor_bank/Cargo.toml index 1459f8a61..c80e2c549 100644 --- a/examples/latest/resistor_bank/Cargo.toml +++ b/examples/latest/resistor_bank/Cargo.toml @@ -17,5 +17,4 @@ arcstr = "1" rust_decimal = "1" rust_decimal_macros = "1" derive-where = "1" -approx = "0.5" diff --git a/libs/atoll/Cargo.toml b/libs/atoll/Cargo.toml index b41b1f235..497f02c7f 100644 --- a/libs/atoll/Cargo.toml +++ b/libs/atoll/Cargo.toml @@ -15,7 +15,6 @@ tracing = "0.1" num = "0.4.1" rand = "0.8.5" serde = { version = "1.0.192", features = ["derive"] } -pathfinding = "4.8.0" indexmap = "2" rustc-hash = "1" cache = { version = "0.7.1", registry = "substrate", path = "../cache" } diff --git a/pdks/sky130/Cargo.toml b/pdks/sky130/Cargo.toml index d44853827..0d355453e 100644 --- a/pdks/sky130/Cargo.toml +++ b/pdks/sky130/Cargo.toml @@ -13,7 +13,6 @@ gds = { version = "0.4.1", registry = "substrate", path = "../../libs/gds" } spectre = { version = "0.11.2", registry = "substrate", path = "../../tools/spectre" } ngspice = { version = "0.5.2", registry = "substrate", path = "../../tools/ngspice" } pegasus = { version = "0.2.1", registry = "substrate", path = "../../tools/pegasus" } -quantus = { version = "0.2.2", registry = "substrate", path = "../../tools/quantus" } spice = { version = "0.9.2", registry = "substrate", path = "../../libs/spice" } geometry_macros = { version = "0.1.1", registry = "substrate", path = "../../libs/geometry_macros" } geometry = { version = "0.7.1", registry = "substrate", path = "../../libs/geometry" } diff --git a/substrate/Cargo.toml b/substrate/Cargo.toml index 244b8bb4e..0f5cc1314 100644 --- a/substrate/Cargo.toml +++ b/substrate/Cargo.toml @@ -4,8 +4,8 @@ version = "0.10.2" edition = "2024" [dependencies] -serde = { version = "1", features = ["derive"] } -arcstr = { version = "1", features = ["serde"] } +serde = { workspace = true } +arcstr = { workspace = true } anyhow = "1" thiserror = "2" once_cell = "1" diff --git a/tools/ngspice/Cargo.toml b/tools/ngspice/Cargo.toml index f00769238..71baedb19 100644 --- a/tools/ngspice/Cargo.toml +++ b/tools/ngspice/Cargo.toml @@ -4,16 +4,16 @@ version = "0.5.2" edition = "2024" [dependencies] -rust_decimal = "1" -rust_decimal_macros = "1" -thiserror = "2" -arcstr = { version = "1", features = ["serde"] } -tera = "1" -lazy_static = "1" -serde = { version = "1", features = ["derive"] } -tracing = "0.1" -indexmap = { version = "2", features = ["serde"] } -unicase = "2" +rust_decimal = { workspace = true } +rust_decimal_macros = { workspace = true } +arcstr = { workspace = true } +thiserror = { workspace = true } +tera = { workspace = true } +lazy_static = { workspace = true } +serde = { workspace = true } +tracing = { workspace = true } +indexmap = { workspace = true } +unicase = { workspace = true } cache = { version = "0.7.1", registry = "substrate", path = "../../libs/cache" } scir = { version = "0.9.1", registry = "substrate", path = "../../libs/scir" } @@ -22,4 +22,4 @@ nutlex = { version = "0.4.2", registry = "substrate", path = "../../libs/nutlex" spice = { version = "0.9.2", registry = "substrate", path = "../../libs/spice" } [dev-dependencies] -approx = "0.5" +approx = { workspace = true } From 051926cf8d405535c3f66eefc27afd40065f937d Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 20:44:08 -0800 Subject: [PATCH 10/28] fix tag-release action --- .github/workflows/tag-release.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index cac221e65..3418e91b4 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -8,12 +8,13 @@ on: jobs: deploy-api-docs: if: "${{ github.event.label.name == 'autorelease: merged' }}" - uses: actions/github-script@v5 - with: - script: | - github.rest.git.updateRef({ - owner: context.repo.owner, - repo: context.repo.repo, - ref: 'refs/tags/release', - sha: context.sha - }) + steps: + - uses: actions/github-script@v5 + with: + script: | + github.rest.git.updateRef({ + owner: context.repo.owner, + repo: context.repo.repo, + ref: 'refs/tags/release', + sha: context.sha + }) From e8f556aaa9889909cb564bf9a4a1dbddbd03b7be Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 20:45:29 -0800 Subject: [PATCH 11/28] fix deploy docs and tag release workflows --- .github/workflows/deploy-docs.yml | 2 +- .github/workflows/tag-release.yml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 7d1cffd2a..a17d11f6d 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -19,7 +19,7 @@ jobs: deploy-docs: name: Deploy documentation runs-on: ubuntu-latest - environment: docs + environment: main steps: - uses: actions/checkout@v4 - uses: superfly/flyctl-actions/setup-flyctl@master diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 3418e91b4..c9d3f4234 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -6,7 +6,9 @@ on: branches: [main] jobs: - deploy-api-docs: + tag-release: + name: Tag Release + runs-on: ubuntu-latest if: "${{ github.event.label.name == 'autorelease: merged' }}" steps: - uses: actions/github-script@v5 From 357397a64fa20e4b2ade24a3ed97c0e4ff2c0efc Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 20:49:35 -0800 Subject: [PATCH 12/28] install cargo hack --- .github/workflows/check-repo.yml | 1 + .github/workflows/check-workspace.yml | 6 +----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/check-repo.yml b/.github/workflows/check-repo.yml index 3c9344ac4..46dcf3796 100644 --- a/.github/workflows/check-repo.yml +++ b/.github/workflows/check-repo.yml @@ -28,6 +28,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - uses: dtolnay/install@cargo-hack - name: Check docs run: | cargo hack --all rustdoc --all-features diff --git a/.github/workflows/check-workspace.yml b/.github/workflows/check-workspace.yml index 823c00133..10acbb6da 100644 --- a/.github/workflows/check-workspace.yml +++ b/.github/workflows/check-workspace.yml @@ -19,11 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - id: toolchain - with: - toolchain: stable + - uses: dtolnay/install@cargo-hack - uses: Swatinem/rust-cache@v2 with: key: ${{ steps.toolchain.outputs.cachekey }} From 0af09aab3b56cbe09368523860a54b6753f3ed40 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 20:51:31 -0800 Subject: [PATCH 13/28] use correct cargo hack installation action --- .github/workflows/check-repo.yml | 2 +- .github/workflows/check-workspace.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-repo.yml b/.github/workflows/check-repo.yml index 46dcf3796..5e91d0f16 100644 --- a/.github/workflows/check-repo.yml +++ b/.github/workflows/check-repo.yml @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: dtolnay/install@cargo-hack + - uses: taiki-e/install-action@cargo-hack - name: Check docs run: | cargo hack --all rustdoc --all-features diff --git a/.github/workflows/check-workspace.yml b/.github/workflows/check-workspace.yml index 10acbb6da..5c8849bc4 100644 --- a/.github/workflows/check-workspace.yml +++ b/.github/workflows/check-workspace.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: dtolnay/install@cargo-hack + - uses: taiki-e/install-action@cargo-hack - uses: Swatinem/rust-cache@v2 with: key: ${{ steps.toolchain.outputs.cachekey }} From c49075d3667d11d16eb3b7bc4bf798a5aee180fa Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 20:54:17 -0800 Subject: [PATCH 14/28] install correct rust toolchain --- .github/workflows/check-repo.yml | 2 ++ .github/workflows/check-workspace.yml | 1 + 2 files changed, 3 insertions(+) diff --git a/.github/workflows/check-repo.yml b/.github/workflows/check-repo.yml index 5e91d0f16..87bdb7d8e 100644 --- a/.github/workflows/check-repo.yml +++ b/.github/workflows/check-repo.yml @@ -28,7 +28,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@cargo-hack + - uses: Swatinem/rust-cache@v2 - name: Check docs run: | cargo hack --all rustdoc --all-features diff --git a/.github/workflows/check-workspace.yml b/.github/workflows/check-workspace.yml index 5c8849bc4..34a1be722 100644 --- a/.github/workflows/check-workspace.yml +++ b/.github/workflows/check-workspace.yml @@ -19,6 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@cargo-hack - uses: Swatinem/rust-cache@v2 with: From 0a669fdf320051864b4bb401f40072aa2f3e1cc1 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 20:57:18 -0800 Subject: [PATCH 15/28] run format --- bins/cdl2spice/src/main.rs | 2 +- bins/sky130spconv/src/main.rs | 2 +- bins/spicemerge/src/main.rs | 2 +- codegen/src/block.rs | 2 +- codegen/src/io.rs | 2 +- codegen/src/lib.rs | 6 +- codegen/src/schematic.rs | 2 +- codegen/src/simulation.rs | 2 +- config/src/home/env.rs | 4 +- config/src/home/windows.rs | 2 +- config/src/lib.rs | 2 +- config/src/paths.rs | 7 +- config/src/raw/environment.rs | 2 +- config/src/tests.rs | 2 +- examples/latest/colbuf/src/lib.rs | 6 +- .../latest/sky130_inverter/src/atoll/mod.rs | 14 +- examples/latest/sky130_inverter/src/layout.rs | 20 +- examples/latest/sky130_inverter/src/lib.rs | 2 +- examples/latest/sky130_inverter/src/tb/cds.rs | 6 +- .../latest/sky130_inverter/src/tb/open.rs | 6 +- examples/latest/spice_vdivider/src/lib.rs | 2 +- examples/latest/strongarm/src/tb/mod.rs | 2 +- .../latest/substrate_api_examples/src/lib.rs | 2 +- examples/latest/vdivider/src/lib.rs | 4 +- examples/latest/via/src/lib.rs | 13 +- libs/atoll/src/fold.rs | 45 ++--- libs/atoll/src/lib.rs | 2 +- libs/atoll/src/resizing.rs | 33 ++-- libs/atoll/src/route.rs | 6 +- libs/atoll/src/straps.rs | 8 +- libs/cache/src/mem.rs | 10 +- libs/cache/src/multi.rs | 34 ++-- libs/cache/src/persistent/server.rs | 8 +- libs/cache/src/tests/multi.rs | 4 +- libs/cache/src/tests/persistent.rs | 8 +- libs/diagnostics/src/tests.rs | 12 +- libs/enumify_macros/src/lib.rs | 2 +- libs/gds/src/read.rs | 6 +- libs/gds/src/ser.rs | 2 +- libs/gdsconv/src/conv.rs | 15 +- libs/gdsconv/src/import.rs | 7 +- libs/gdsconv/src/tests.rs | 16 +- libs/geometry_macros/src/lib.rs | 6 +- libs/scir/src/lib.rs | 16 +- libs/scir/src/validation.rs | 182 ++++++++++-------- libs/spice/src/netlist.rs | 17 +- libs/spice/src/parser/conv.rs | 10 +- libs/spice/src/parser/tests.rs | 2 +- libs/type_dispatch_macros/src/impls.rs | 4 +- libs/type_dispatch_macros/src/lib.rs | 2 +- libs/type_dispatch_macros/src/types.rs | 2 +- pdks/sky130/src/layers.rs | 2 +- pdks/sky130/src/layout.rs | 6 +- pdks/sky130/src/res.rs | 8 +- pdks/sky130/src/stdcells.rs | 4 +- pdks/sky130/src/tests.rs | 4 +- substrate/src/cache/mod.rs | 4 +- substrate/src/context.rs | 6 +- substrate/src/layout/element.rs | 2 +- substrate/src/layout/mod.rs | 2 +- substrate/src/layout/tests.rs | 6 +- substrate/src/layout/tiling.rs | 21 +- substrate/src/schematic/netlist.rs | 2 +- substrate/src/schematic/pex.rs | 4 +- substrate/src/schematic/tests.rs | 2 +- substrate/src/simulation/data.rs | 2 +- substrate/src/simulation/waveform.rs | 6 +- substrate/src/types/codegen.rs | 16 +- substrate/src/types/impls.rs | 6 +- substrate/src/types/mod.rs | 13 +- tools/magic/src/drc.rs | 4 +- tools/magic/src/extract.rs | 2 +- tools/magic/src/pex.rs | 2 +- tools/magic_netgen/src/lib.rs | 8 +- tools/netgen/src/compare.rs | 2 +- tools/ngspice/src/lib.rs | 11 +- tools/ngspice/src/tran.rs | 4 +- tools/pegasus/src/drc.rs | 13 +- tools/pegasus/src/lvs.rs | 4 +- tools/pegasus/src/utils.rs | 2 +- tools/quantus/src/pex.rs | 10 +- tools/quantus/src/utils.rs | 2 +- tools/spectre/src/analysis/ac.rs | 6 +- tools/spectre/src/analysis/dc.rs | 6 +- tools/spectre/src/analysis/tran.rs | 4 +- tools/spectre/src/lib.rs | 8 +- tools/spectre/src/tests.rs | 16 +- 87 files changed, 419 insertions(+), 376 deletions(-) diff --git a/bins/cdl2spice/src/main.rs b/bins/cdl2spice/src/main.rs index 92ff8a0f7..db5859e4b 100644 --- a/bins/cdl2spice/src/main.rs +++ b/bins/cdl2spice/src/main.rs @@ -2,10 +2,10 @@ use anyhow::Context; use arcstr::ArcStr; use clap::Parser as ClapParser; use scir::netlist::ConvertibleNetlister; +use spice::Spice; use spice::netlist::NetlistOptions; use spice::parser::conv::ScirConverter; use spice::parser::{Dialect, Parser}; -use spice::Spice; use std::io; use std::path::PathBuf; diff --git a/bins/sky130spconv/src/main.rs b/bins/sky130spconv/src/main.rs index 6f4da0e4b..2093a9420 100644 --- a/bins/sky130spconv/src/main.rs +++ b/bins/sky130spconv/src/main.rs @@ -2,9 +2,9 @@ use anyhow::Context; use clap::Parser as ClapParser; use scir::netlist::ConvertibleNetlister; use sky130::{Sky130, Sky130CdsSchema, Sky130OpenSchema, Sky130Schema, Sky130SrcNdaSchema}; +use spice::Spice; use spice::netlist::NetlistOptions; use spice::parser::{Dialect, Parser}; -use spice::Spice; use std::io; use std::path::PathBuf; diff --git a/bins/spicemerge/src/main.rs b/bins/spicemerge/src/main.rs index 0bbb1ac81..71aa83a61 100644 --- a/bins/spicemerge/src/main.rs +++ b/bins/spicemerge/src/main.rs @@ -1,9 +1,9 @@ use anyhow::Context; use clap::Parser as ClapParser; use scir::netlist::ConvertibleNetlister; +use spice::Spice; use spice::netlist::NetlistOptions; use spice::parser::{Dialect, Parser}; -use spice::Spice; use std::io; use std::path::PathBuf; diff --git a/codegen/src/block.rs b/codegen/src/block.rs index 79dd80eca..362c762a8 100644 --- a/codegen/src/block.rs +++ b/codegen/src/block.rs @@ -2,7 +2,7 @@ use convert_case::{Case, Casing}; use darling::FromDeriveInput; use macrotools::add_trait_bounds; use proc_macro2::TokenStream; -use quote::{quote, ToTokens}; +use quote::{ToTokens, quote}; use crate::substrate_ident; diff --git a/codegen/src/io.rs b/codegen/src/io.rs index 6577e67fe..ee195c538 100644 --- a/codegen/src/io.rs +++ b/codegen/src/io.rs @@ -1,7 +1,7 @@ use macrotools::DeriveInputHelper; use proc_macro2::TokenStream; use quote::{format_ident, quote}; -use syn::{parse_quote, DeriveInput}; +use syn::{DeriveInput, parse_quote}; use crate::common::*; use crate::layout::*; diff --git a/codegen/src/lib.rs b/codegen/src/lib.rs index f7d492ae9..0ad82d946 100644 --- a/codegen/src/lib.rs +++ b/codegen/src/lib.rs @@ -13,13 +13,13 @@ use crate::schematic::nested_data; use darling::FromDeriveInput; use macrotools::{handle_darling_error, handle_syn_error}; use proc_macro::TokenStream; +use proc_macro_crate::{FoundCrate, crate_name}; use proc_macro2::{Span, TokenStream as TokenStream2}; -use proc_macro_crate::{crate_name, FoundCrate}; use quote::quote; -use simulation::{save_tuples, SaveTuplesInput}; +use simulation::{SaveTuplesInput, save_tuples}; use snippets::include_snippet; use syn::Ident; -use syn::{parse_macro_input, DeriveInput}; +use syn::{DeriveInput, parse_macro_input}; /// Derives `Io` for a struct. /// diff --git a/codegen/src/schematic.rs b/codegen/src/schematic.rs index 23d4471f5..8a9512bad 100644 --- a/codegen/src/schematic.rs +++ b/codegen/src/schematic.rs @@ -2,7 +2,7 @@ use macrotools::{DeriveInputHelper, ImplTrait, MapField}; use proc_macro2::TokenStream; use quote::{format_ident, quote}; use syn::GenericParam; -use syn::{parse_quote, DeriveInput}; +use syn::{DeriveInput, parse_quote}; use crate::common::*; use crate::substrate_ident; diff --git a/codegen/src/simulation.rs b/codegen/src/simulation.rs index 58c07c480..221943494 100644 --- a/codegen/src/simulation.rs +++ b/codegen/src/simulation.rs @@ -1,6 +1,6 @@ use proc_macro2::TokenStream; use quote::{format_ident, quote}; -use syn::{parse::Parse, parse_quote, Generics, Index, LitInt, Token, Type}; +use syn::{Generics, Index, LitInt, Token, Type, parse::Parse, parse_quote}; use crate::substrate_ident; diff --git a/config/src/home/env.rs b/config/src/home/env.rs index 879b7f01d..189b7084b 100644 --- a/config/src/home/env.rs +++ b/config/src/home/env.rs @@ -75,8 +75,6 @@ pub(crate) fn substrate_home_with_cwd_env(env: &dyn Env, cwd: &Path) -> io::Resu } _ => home_dir_with_env(env) .map(|p| p.join(".substrate")) - .ok_or_else(|| { - io::Error::other("could not find Substrate home dir") - }), + .ok_or_else(|| io::Error::other("could not find Substrate home dir")), } } diff --git a/config/src/home/windows.rs b/config/src/home/windows.rs index 5e5b84534..445a7360a 100644 --- a/config/src/home/windows.rs +++ b/config/src/home/windows.rs @@ -11,7 +11,7 @@ use std::os::windows::ffi::OsStringExt; use std::path::PathBuf; use windows_sys::Win32::Foundation::{MAX_PATH, S_OK}; -use windows_sys::Win32::UI::Shell::{SHGetFolderPathW, CSIDL_PROFILE}; +use windows_sys::Win32::UI::Shell::{CSIDL_PROFILE, SHGetFolderPathW}; pub(crate) fn home_dir_inner() -> Option { env::var_os("USERPROFILE") diff --git a/config/src/lib.rs b/config/src/lib.rs index 90d4e500b..fef1cf4a2 100644 --- a/config/src/lib.rs +++ b/config/src/lib.rs @@ -6,7 +6,7 @@ use std::{ path::PathBuf, }; -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use cache::{ multi::MultiCache, persistent::client::{Client, ClientKind}, diff --git a/config/src/paths.rs b/config/src/paths.rs index 042534177..81054a49e 100644 --- a/config/src/paths.rs +++ b/config/src/paths.rs @@ -42,9 +42,10 @@ impl<'a> Iterator for PathAncestors<'a> { self.current = path.parent(); if let Some(ref stop_at) = self.stop_at - && path == stop_at { - self.current = None; - } + && path == stop_at + { + self.current = None; + } Some(path) } else { diff --git a/config/src/raw/environment.rs b/config/src/raw/environment.rs index bd782ae99..b1ebf911a 100644 --- a/config/src/raw/environment.rs +++ b/config/src/raw/environment.rs @@ -8,7 +8,7 @@ use std::collections::HashMap; use std::ffi::{OsStr, OsString}; -use anyhow::{anyhow, bail, Result}; +use anyhow::{Result, anyhow, bail}; /// Generate `case_insensitive_env` and `normalized_env` from the `env`. fn make_case_insensitive_and_normalized_env( diff --git a/config/src/tests.rs b/config/src/tests.rs index 66d24f761..8d599b2fa 100644 --- a/config/src/tests.rs +++ b/config/src/tests.rs @@ -3,7 +3,7 @@ use std::collections::{HashMap, HashSet}; use anyhow::Result; use cache::persistent::client::ClientKind; -use crate::{raw::RawConfig, CacheProviderConfig, Config}; +use crate::{CacheProviderConfig, Config, raw::RawConfig}; const CONFIG_DIR: &str = concat!( env!("CARGO_MANIFEST_DIR"), diff --git a/examples/latest/colbuf/src/lib.rs b/examples/latest/colbuf/src/lib.rs index 02f970a85..d63b3ea40 100644 --- a/examples/latest/colbuf/src/lib.rs +++ b/examples/latest/colbuf/src/lib.rs @@ -1,7 +1,7 @@ use ngspice::Ngspice; use rust_decimal_macros::dec; -use spectre::blocks::Vsource; use spectre::Spectre; +use spectre::blocks::Vsource; use spice::Spice; use substrate::arcstr; use substrate::block::Block; @@ -263,10 +263,10 @@ mod tests { use std::{path::PathBuf, sync::Arc}; use approx::assert_relative_eq; - use spectre::{analysis::tran::Tran, ErrPreset, Options}; + use spectre::{ErrPreset, Options, analysis::tran::Tran}; use substrate::{ context::Context, - simulation::{waveform::TimeWaveform, SimController}, + simulation::{SimController, waveform::TimeWaveform}, }; use super::*; diff --git a/examples/latest/sky130_inverter/src/atoll/mod.rs b/examples/latest/sky130_inverter/src/atoll/mod.rs index d84b14700..9f39ffda2 100644 --- a/examples/latest/sky130_inverter/src/atoll/mod.rs +++ b/examples/latest/sky130_inverter/src/atoll/mod.rs @@ -1,9 +1,9 @@ -use atoll::{fold::Foldable, route::GreedyRouter, Orientation, Tile, TileData}; +use atoll::{Orientation, Tile, TileData, fold::Foldable, route::GreedyRouter}; use layir::Shape; use sky130::{ + Sky130, atoll::{GateDir, MosLength, NmosTile, NtapTile, PmosTile, PtapTile, Sky130ViaMaker}, layers::Sky130Layer, - Sky130, }; use substrate::{ geometry::{align::AlignMode, bbox::Bbox, rect::Rect}, @@ -136,18 +136,18 @@ mod tests { use super::*; - use atoll::fold::{FoldedArray, PinConfig}; use atoll::TileWrapper; - use pegasus::drc::{run_drc, DrcParams}; - use pegasus::lvs::{LvsParams, LvsStatus}; + use atoll::fold::{FoldedArray, PinConfig}; use pegasus::RuleCheck; + use pegasus::drc::{DrcParams, run_drc}; + use pegasus::lvs::{LvsParams, LvsStatus}; use scir::netlist::ConvertibleNetlister; use sky130::layout::to_gds; use sky130::{ - Sky130CdsSchema, SKY130_DRC, SKY130_DRC_RULES_PATH, SKY130_LVS, SKY130_LVS_RULES_PATH, + SKY130_DRC, SKY130_DRC_RULES_PATH, SKY130_LVS, SKY130_LVS_RULES_PATH, Sky130CdsSchema, }; - use spice::{netlist::NetlistOptions, Spice}; + use spice::{Spice, netlist::NetlistOptions}; use std::path::PathBuf; use substrate::block::Block; diff --git a/examples/latest/sky130_inverter/src/layout.rs b/examples/latest/sky130_inverter/src/layout.rs index 08533f069..a2d249408 100644 --- a/examples/latest/sky130_inverter/src/layout.rs +++ b/examples/latest/sky130_inverter/src/layout.rs @@ -1,10 +1,10 @@ // begin-code-snippet imports use layir::Shape; use sky130::{ + Sky130, layers::Sky130Layer, layout::{NtapTile, PtapTile}, mos::{GateDir, MosLength, NmosTile, PmosTile}, - Sky130, }; use substrate::{ error::Result, @@ -128,11 +128,11 @@ mod open { mod tests { use std::{path::PathBuf, sync::Arc}; - use magic::drc::{run_drc, DrcParams}; - use sky130::{layout::to_gds, Sky130OpenSchema}; + use magic::drc::{DrcParams, run_drc}; + use sky130::{Sky130OpenSchema, layout::to_gds}; use substrate::{block::Block, schematic::ConvertSchema}; - use crate::{sky130_open_ctx, Inverter, SKY130_MAGIC_TECH_FILE, SKY130_NETGEN_SETUP_FILE}; + use crate::{Inverter, SKY130_MAGIC_TECH_FILE, SKY130_NETGEN_SETUP_FILE, sky130_open_ctx}; #[test] fn inverter_layout_open() { @@ -193,17 +193,17 @@ mod cds { use std::path::PathBuf; use pegasus::{ - drc::{run_drc, DrcParams}, - lvs::LvsStatus, RuleCheck, + drc::{DrcParams, run_drc}, + lvs::LvsStatus, }; - use sky130::{layout::to_gds, Sky130CdsSchema}; - use spice::{netlist::NetlistOptions, Spice}; + use sky130::{Sky130CdsSchema, layout::to_gds}; + use spice::{Spice, netlist::NetlistOptions}; use substrate::{block::Block, schematic::ConvertSchema}; use crate::{ - sky130_cds_ctx, Inverter, SKY130_DRC, SKY130_DRC_RULES_PATH, SKY130_LVS, - SKY130_LVS_RULES_PATH, + Inverter, SKY130_DRC, SKY130_DRC_RULES_PATH, SKY130_LVS, SKY130_LVS_RULES_PATH, + sky130_cds_ctx, }; fn test_check_filter(check: &RuleCheck) -> bool { diff --git a/examples/latest/sky130_inverter/src/lib.rs b/examples/latest/sky130_inverter/src/lib.rs index ea0876506..e1c897dd3 100644 --- a/examples/latest/sky130_inverter/src/lib.rs +++ b/examples/latest/sky130_inverter/src/lib.rs @@ -1,6 +1,6 @@ // begin-code-snippet imports -use sky130::mos::{Nfet01v8, Pfet01v8}; use sky130::Sky130; +use sky130::mos::{Nfet01v8, Pfet01v8}; use substrate::block::Block; use substrate::context::Context; use substrate::error::Result; diff --git a/examples/latest/sky130_inverter/src/tb/cds.rs b/examples/latest/sky130_inverter/src/tb/cds.rs index ff57ed3de..386a2263b 100644 --- a/examples/latest/sky130_inverter/src/tb/cds.rs +++ b/examples/latest/sky130_inverter/src/tb/cds.rs @@ -8,12 +8,12 @@ use crate::SKY130_TECHNOLOGY_DIR; use quantus::pex::Pex; use rust_decimal::prelude::ToPrimitive; use rust_decimal_macros::dec; +use sky130::Sky130CdsSchema; use sky130::corner::Sky130Corner; use sky130::layout::to_gds; -use sky130::Sky130CdsSchema; +use spectre::Spectre; use spectre::analysis::tran::Tran; use spectre::blocks::{Pulse, Vsource}; -use spectre::Spectre; use spice::Spice; use std::path::Path; use std::path::PathBuf; @@ -22,8 +22,8 @@ use substrate::block::Block; use substrate::context::Context; use substrate::error::Result; use substrate::schematic::{CellBuilder, ConvertSchema, Schematic}; -use substrate::simulation::waveform::{EdgeDir, TimeWaveform}; use substrate::simulation::Pvt; +use substrate::simulation::waveform::{EdgeDir, TimeWaveform}; use substrate::types::schematic::{IoNodeBundle, Node}; use substrate::types::{Signal, TestbenchIo}; // end-code-snippet imports diff --git a/examples/latest/sky130_inverter/src/tb/open.rs b/examples/latest/sky130_inverter/src/tb/open.rs index 229b9d3cb..d69d89450 100644 --- a/examples/latest/sky130_inverter/src/tb/open.rs +++ b/examples/latest/sky130_inverter/src/tb/open.rs @@ -5,13 +5,13 @@ use crate::SKY130_MAGIC_TECH_FILE; use crate::SKY130_NETGEN_SETUP_FILE; use magic_netgen::Pex; -use ngspice::blocks::{Pulse, Vsource}; use ngspice::Ngspice; +use ngspice::blocks::{Pulse, Vsource}; use rust_decimal::prelude::ToPrimitive; use rust_decimal_macros::dec; +use sky130::Sky130OpenSchema; use sky130::corner::Sky130Corner; use sky130::layout::to_gds; -use sky130::Sky130OpenSchema; use spice::Spice; use std::path::Path; use std::path::PathBuf; @@ -20,8 +20,8 @@ use substrate::block::Block; use substrate::context::Context; use substrate::error::Result; use substrate::schematic::{CellBuilder, ConvertSchema, Schematic}; -use substrate::simulation::waveform::{EdgeDir, TimeWaveform}; use substrate::simulation::Pvt; +use substrate::simulation::waveform::{EdgeDir, TimeWaveform}; use substrate::types::schematic::{IoNodeBundle, Node}; use substrate::types::{Signal, TestbenchIo}; // end-code-snippet imports diff --git a/examples/latest/spice_vdivider/src/lib.rs b/examples/latest/spice_vdivider/src/lib.rs index 0209be924..cc6d351f4 100644 --- a/examples/latest/spice_vdivider/src/lib.rs +++ b/examples/latest/spice_vdivider/src/lib.rs @@ -5,7 +5,7 @@ use substrate::{ block::Block, error::Result, schematic::{CellBuilder, Schematic}, - types::{schematic::IoNodeBundle, InOut, Io, Output, Signal}, + types::{InOut, Io, Output, Signal, schematic::IoNodeBundle}, }; // end-code-snippet imports diff --git a/examples/latest/strongarm/src/tb/mod.rs b/examples/latest/strongarm/src/tb/mod.rs index 1cbd147b3..98c3de239 100644 --- a/examples/latest/strongarm/src/tb/mod.rs +++ b/examples/latest/strongarm/src/tb/mod.rs @@ -1,8 +1,8 @@ //! StrongARM testbenches. use approx::abs_diff_eq; -use rust_decimal::prelude::ToPrimitive; use rust_decimal::Decimal; +use rust_decimal::prelude::ToPrimitive; use rust_decimal_macros::dec; use spectre::analysis::tran::{OutputWaveform, Tran}; use spectre::blocks::{Pulse, Vsource}; diff --git a/examples/latest/substrate_api_examples/src/lib.rs b/examples/latest/substrate_api_examples/src/lib.rs index 325f92084..d7536b1d2 100644 --- a/examples/latest/substrate_api_examples/src/lib.rs +++ b/examples/latest/substrate_api_examples/src/lib.rs @@ -626,8 +626,8 @@ mod scir_examples { use scir::{Cell, Direction, Instance, LibraryBuilder}; use substrate::block::Block; use substrate::schematic::{CellBuilder, PrimitiveBinding, Schematic, ScirBinding}; - use substrate::types::schematic::IoNodeBundle; use substrate::types::TwoTerminalIo; + use substrate::types::schematic::IoNodeBundle; // begin-code-snippet scir-schema pub struct MySchema; diff --git a/examples/latest/vdivider/src/lib.rs b/examples/latest/vdivider/src/lib.rs index 8ac36b00b..ac1f07227 100644 --- a/examples/latest/vdivider/src/lib.rs +++ b/examples/latest/vdivider/src/lib.rs @@ -2,8 +2,8 @@ use arcstr::ArcStr; use rust_decimal::Decimal; use rust_decimal_macros::dec; use serde::{Deserialize, Serialize}; -use spectre::blocks::{Iprobe, Resistor, Vsource}; use spectre::Spectre; +use spectre::blocks::{Iprobe, Resistor, Vsource}; use substrate::block::Block; use substrate::schematic::{CellBuilder, Instance, NestedData, Schematic}; use substrate::types::{Array, InOut, Io, Output, PowerIo, Signal, TestbenchIo}; @@ -169,7 +169,7 @@ impl Schematic for VdividerTb { mod tests { use approx::relative_eq; use rust_decimal_macros::dec; - use spectre::{analysis::tran::Tran, ErrPreset}; + use spectre::{ErrPreset, analysis::tran::Tran}; use substrate::{context::Context, simulation::waveform::TimeWaveform}; use super::*; diff --git a/examples/latest/via/src/lib.rs b/examples/latest/via/src/lib.rs index 8b9a895f1..72e124f18 100644 --- a/examples/latest/via/src/lib.rs +++ b/examples/latest/via/src/lib.rs @@ -1,12 +1,12 @@ use layir::Shape; +use substrate::types::ArrayBundle; use substrate::types::codegen::PortGeometryBundle; use substrate::types::layout::PortGeometry; -use substrate::types::ArrayBundle; use substrate::{ block::Block, geometry::rect::Rect, - layout::{schema::Schema, Layout}, - types::{layout::PortGeometryBuilder, Array, InOut, Io, Signal}, + layout::{Layout, schema::Schema}, + types::{Array, InOut, Io, Signal, layout::PortGeometryBuilder}, }; #[derive(Clone, Debug, Default, Io)] @@ -153,11 +153,12 @@ mod tests { #[test] fn export_rects_layout_mismatched_io_length() { let ctx = Context::builder().build(); - assert!(ctx - .export_layir(Rects { + assert!( + ctx.export_layir(Rects { n_io: 12, n_drawn: 16, }) - .is_err()); + .is_err() + ); } } diff --git a/libs/atoll/src/fold.rs b/libs/atoll/src/fold.rs index d53d3d1ec..d5a9614db 100644 --- a/libs/atoll/src/fold.rs +++ b/libs/atoll/src/fold.rs @@ -4,9 +4,8 @@ use crate::abs::{GridCoord, TrackCoord}; use crate::grid::{AbstractLayer, RoutingGrid, RoutingState}; use crate::route::ViaMaker; use crate::{ - get_abstract, + NetId, PointState, TileBuilder, TileData, get_abstract, grid::{LayerStack, PdkLayer}, - NetId, PointState, TileBuilder, TileData, }; use crate::{Orientation, Tile}; use arcstr::ArcStr; @@ -19,8 +18,8 @@ use substrate::geometry::align::AlignMode; use substrate::geometry::bbox::Bbox; use substrate::geometry::rect::Rect; use substrate::layout::tracks::RoundingMode; -use substrate::types::schematic::{IoNodeBundle, Node}; use substrate::types::Flatten; +use substrate::types::schematic::{IoNodeBundle, Node}; use substrate::{ block::Block, context::Context, @@ -793,19 +792,20 @@ fn create_match(input: MatchInput) -> Option(input: MatchInput) -> Option GreedyStrapperState<'a, L> { } if let Some((from, _)) = vias.last() && from.coord(track_dir) + strap_via_spacing > track_coord - && from.coord(track_dir) < track_coord + strap_via_spacing - { - has_via = true; - } + && from.coord(track_dir) < track_coord + strap_via_spacing + { + has_via = true; + } if !has_via && (self.routing_state.is_routed_for_net(ilt.to, strap.net) || self diff --git a/libs/cache/src/mem.rs b/libs/cache/src/mem.rs index b64863940..5a881cfeb 100644 --- a/libs/cache/src/mem.rs +++ b/libs/cache/src/mem.rs @@ -2,19 +2,19 @@ use std::{ any::{Any, TypeId}, - collections::{hash_map::Entry, HashMap}, + collections::{HashMap, hash_map::Entry}, fmt::Debug, hash::Hash, sync::Arc, thread, }; -use serde::{de::DeserializeOwned, Serialize}; +use serde::{Serialize, de::DeserializeOwned}; use crate::{ - error::ArcResult, run_generator, CacheHandle, CacheHandleInner, CacheValueHolder, Cacheable, - CacheableWithState, GenerateFn, GenerateResultFn, GenerateResultWithStateFn, - GenerateWithStateFn, Namespace, + CacheHandle, CacheHandleInner, CacheValueHolder, Cacheable, CacheableWithState, GenerateFn, + GenerateResultFn, GenerateResultWithStateFn, GenerateWithStateFn, Namespace, error::ArcResult, + run_generator, }; #[derive(Debug)] diff --git a/libs/cache/src/multi.rs b/libs/cache/src/multi.rs index 13850bee4..d0fa1330e 100644 --- a/libs/cache/src/multi.rs +++ b/libs/cache/src/multi.rs @@ -3,18 +3,18 @@ use std::{ any::Any, sync::{ - mpsc::{channel, Receiver, Sender}, Arc, + mpsc::{Receiver, Sender, channel}, }, }; use crate::{ - error::ArcResult, mem::NamespaceCache, persistent::client::Client, run_generator, CacheHandle, - CacheHandleInner, CacheValueHolder, Cacheable, CacheableWithState, GenerateFn, - GenerateResultFn, GenerateResultWithStateFn, GenerateWithStateFn, Namespace, + CacheHandle, CacheHandleInner, CacheValueHolder, Cacheable, CacheableWithState, GenerateFn, + GenerateResultFn, GenerateResultWithStateFn, GenerateWithStateFn, Namespace, error::ArcResult, + mem::NamespaceCache, persistent::client::Client, run_generator, }; -use serde::{de::DeserializeOwned, Serialize}; +use serde::{Serialize, de::DeserializeOwned}; /// A cache with multiple providers. /// @@ -57,18 +57,18 @@ trait MultiGenerateFn: { } impl< - C, - K, - V, - R, - T: Fn( - &mut C, - Namespace, - Arc, - Sender>>, - Receiver, - ) -> CacheHandleInner, - > MultiGenerateFn for T + C, + K, + V, + R, + T: Fn( + &mut C, + Namespace, + Arc, + Sender>>, + Receiver, + ) -> CacheHandleInner, +> MultiGenerateFn for T { } diff --git a/libs/cache/src/persistent/server.rs b/libs/cache/src/persistent/server.rs index f63336d58..5dcc80ac6 100644 --- a/libs/cache/src/persistent/server.rs +++ b/libs/cache/src/persistent/server.rs @@ -1,7 +1,7 @@ //! A persistent cache gRPC server. -use std::collections::hash_map::Entry; use std::collections::HashMap; +use std::collections::hash_map::Entry; use std::path::Path; use std::sync::Arc; use std::time::Duration; @@ -18,6 +18,7 @@ use tokio::time::Instant; use tokio_rusqlite::Connection; use tonic::Response; +use crate::Namespace; use crate::error::Result; use crate::rpc::local::{ self, @@ -27,7 +28,6 @@ use crate::rpc::remote::{ self, remote_cache_server::{RemoteCache, RemoteCacheServer}, }; -use crate::Namespace; /// The name of the config manifest TOML file. pub const CONFIG_MANIFEST_NAME: &str = "Cache.toml"; @@ -602,7 +602,9 @@ impl CacheImpl { if Instant::now().duration_since(data.last_heartbeat) > self.heartbeat_timeout { - tracing::debug!("assigned worker has not sent a heartbeat recently, entry is no longer loading"); + tracing::debug!( + "assigned worker has not sent a heartbeat recently, entry is no longer loading" + ); if assign { loading.remove(id); next_assignment_id.increment(); diff --git a/libs/cache/src/tests/multi.rs b/libs/cache/src/tests/multi.rs index 450264329..316161a5d 100644 --- a/libs/cache/src/tests/multi.rs +++ b/libs/cache/src/tests/multi.rs @@ -5,9 +5,9 @@ use test_log::test; use crate::{ error::Result, multi::MultiCache, - persistent::client::{create_server_and_clients, setup_test, ServerKind}, + persistent::client::{ServerKind, create_server_and_clients, setup_test}, tests::persistent::{ - cached_generate, BASIC_TEST_GENERATE_FN, BASIC_TEST_NAMESPACE, BASIC_TEST_PARAM, + BASIC_TEST_GENERATE_FN, BASIC_TEST_NAMESPACE, BASIC_TEST_PARAM, cached_generate, }, }; diff --git a/libs/cache/src/tests/persistent.rs b/libs/cache/src/tests/persistent.rs index 11f22ff1f..4c1ae0b28 100644 --- a/libs/cache/src/tests/persistent.rs +++ b/libs/cache/src/tests/persistent.rs @@ -5,18 +5,18 @@ use std::{ time::Duration, }; -use serde::{de::DeserializeOwned, Serialize}; +use serde::{Serialize, de::DeserializeOwned}; use test_log::test; use tokio::runtime::Handle; use crate::{ + CacheHandle, error::{Error, Result}, persistent::client::{ - create_runtime, create_server_and_clients, setup_test, ServerKind, - TEST_SERVER_HEARTBEAT_TIMEOUT, + ServerKind, TEST_SERVER_HEARTBEAT_TIMEOUT, create_runtime, create_server_and_clients, + setup_test, }, tests::Key, - CacheHandle, }; use crate::persistent::client::{Client, ClientKind}; diff --git a/libs/diagnostics/src/tests.rs b/libs/diagnostics/src/tests.rs index 63249c9a9..78c993ae3 100644 --- a/libs/diagnostics/src/tests.rs +++ b/libs/diagnostics/src/tests.rs @@ -69,9 +69,11 @@ fn severity_is_error() { #[test] fn default_help_is_none() { - assert!(TestIssue { - severity: Severity::Warning, - } - .help() - .is_none()); + assert!( + TestIssue { + severity: Severity::Warning, + } + .help() + .is_none() + ); } diff --git a/libs/enumify_macros/src/lib.rs b/libs/enumify_macros/src/lib.rs index 3b89424b8..6daf0bdbc 100644 --- a/libs/enumify_macros/src/lib.rs +++ b/libs/enumify_macros/src/lib.rs @@ -6,7 +6,7 @@ use proc_macro::TokenStream; use proc_macro_error::proc_macro_error; use crate::impls::Enumify; -use syn::{parse_macro_input, DeriveInput}; +use syn::{DeriveInput, parse_macro_input}; pub(crate) mod impls; diff --git a/libs/gds/src/read.rs b/libs/gds/src/read.rs index 971b84182..a7169d79f 100644 --- a/libs/gds/src/read.rs +++ b/libs/gds/src/read.rs @@ -46,7 +46,7 @@ impl GdsReader { Ok(num) => num, // The normal case }; let len = len - 4; // Strip out the four header-bytes - // Read and decode its RecordType + // Read and decode its RecordType let record_type = self.file.read_u8()?; let record_type: GdsRecordType = FromPrimitive::from_u8(record_type).ok_or(GdsError::InvalidRecordType(record_type))?; @@ -77,7 +77,7 @@ impl GdsReader { fn read_record_content(&mut self, header: &GdsRecordHeader) -> GdsResult { // Based on that header-data, decode to a [GdsRecord] - use GdsDataType::{BitArray, NoData, Str, F64, I16, I32}; + use GdsDataType::{BitArray, F64, I16, I32, NoData, Str}; let len = header.len; let record: GdsRecord = match (header.rtype, header.dtype, len) { // Library-Level Records @@ -509,7 +509,7 @@ impl GdsParser { | GdsRecord::AttrTable(_) | GdsRecord::Generations(_) | GdsRecord::Format(_) => { - return Err(GdsError::Unsupported(Some(r), Some(GdsContext::Library))) + return Err(GdsError::Unsupported(Some(r), Some(GdsContext::Library))); } // Invalid _ => return self.invalid(r), diff --git a/libs/gds/src/ser.rs b/libs/gds/src/ser.rs index 82e84a17e..5f7509065 100644 --- a/libs/gds/src/ser.rs +++ b/libs/gds/src/ser.rs @@ -7,8 +7,8 @@ use std::io::{BufReader, BufWriter, Read, Write}; use std::path::Path; // Crates.io Imports -use serde::de::DeserializeOwned; use serde::Serialize; +use serde::de::DeserializeOwned; use textwrap::dedent; /// An enumeration of first-class supported serialization formats. diff --git a/libs/gdsconv/src/conv.rs b/libs/gdsconv/src/conv.rs index 0b2b01e50..f750a2294 100644 --- a/libs/gdsconv/src/conv.rs +++ b/libs/gdsconv/src/conv.rs @@ -104,13 +104,14 @@ pub fn from_gds( { // Identify pin shapes with multiple labels. if let Some(ref name) = name - && name != text.text() { - return Err(FromGdsError::PinWithMultipleLabels { - cell: cell.name().clone(), - label1: name.clone(), - label2: text.text().clone(), - }); - } + && name != text.text() + { + return Err(FromGdsError::PinWithMultipleLabels { + cell: cell.name().clone(), + label1: name.clone(), + label2: text.text().clone(), + }); + } name = Some(text.text().clone()); pin_texts.push(text.clone()); } diff --git a/libs/gdsconv/src/import.rs b/libs/gdsconv/src/import.rs index 2416eba7a..a1ea73919 100644 --- a/libs/gdsconv/src/import.rs +++ b/libs/gdsconv/src/import.rs @@ -107,9 +107,10 @@ impl<'a> GdsImporter<'a> { let gdsunit = units.db_unit(); if let Some(expected_units) = &self.opts.units - && (gdsunit - expected_units.db_unit()).abs() / expected_units.db_unit() > 1e-3 { - return Err(GdsImportError); - } + && (gdsunit - expected_units.db_unit()).abs() / expected_units.db_unit() > 1e-3 + { + return Err(GdsImportError); + } Ok(()) } /// Imports and adds a cell if not already defined diff --git a/libs/gdsconv/src/tests.rs b/libs/gdsconv/src/tests.rs index a25653a7e..4e7f78ad8 100644 --- a/libs/gdsconv/src/tests.rs +++ b/libs/gdsconv/src/tests.rs @@ -5,9 +5,9 @@ use geometry::{prelude::Transformation, rect::Rect, shape::Shape as GShape}; use layir::{Cell, Element, Instance, Library, LibraryBuilder, Shape, Text}; use crate::{ - export::{export_gds, GdsExportOpts}, - import::{import_gds, GdsImportOpts}, GdsLayer, + export::{GdsExportOpts, export_gds}, + import::{GdsImportOpts, import_gds}, }; const BUILD_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/build"); @@ -127,11 +127,13 @@ fn test_gds_import() { for elem in b_elems { match elem { Element::Shape(s) => { - assert!([ - Shape::new(GdsLayer(67, 20), Rect::from_sides(0, 0, 3000, 3000)), - Shape::new(GdsLayer(67, 16), Rect::from_sides(0, 0, 1000, 1000)) - ] - .contains(s)); + assert!( + [ + Shape::new(GdsLayer(67, 20), Rect::from_sides(0, 0, 3000, 3000)), + Shape::new(GdsLayer(67, 16), Rect::from_sides(0, 0, 1000, 1000)) + ] + .contains(s) + ); } Element::Text(t) => { assert_eq!( diff --git a/libs/geometry_macros/src/lib.rs b/libs/geometry_macros/src/lib.rs index c72e082f0..3a0956cb4 100644 --- a/libs/geometry_macros/src/lib.rs +++ b/libs/geometry_macros/src/lib.rs @@ -2,13 +2,13 @@ #![warn(missing_docs)] use macrotools::{ - derive_trait, handle_syn_error, DeriveInputHelper, DeriveTrait, ImplTrait, MapField, Receiver, + DeriveInputHelper, DeriveTrait, ImplTrait, MapField, Receiver, derive_trait, handle_syn_error, }; use proc_macro::TokenStream; +use proc_macro_crate::{FoundCrate, crate_name}; use proc_macro2::{Span, TokenStream as TokenStream2}; -use proc_macro_crate::{crate_name, FoundCrate}; use quote::quote; -use syn::{parse_macro_input, parse_quote, DeriveInput, Ident}; +use syn::{DeriveInput, Ident, parse_macro_input, parse_quote}; pub(crate) fn geometry_ident() -> TokenStream2 { match crate_name("geometry") { diff --git a/libs/scir/src/lib.rs b/libs/scir/src/lib.rs index eb592c1c2..00711632c 100644 --- a/libs/scir/src/lib.rs +++ b/libs/scir/src/lib.rs @@ -34,7 +34,7 @@ use drivers::DriverIssue; use indexmap::IndexMap; use rust_decimal::Decimal; use serde::{Deserialize, Serialize}; -use tracing::{span, Level}; +use tracing::{Level, span}; use uniquify::Names; use crate::schema::{FromSchema, NoSchema, NoSchemaError, Schema}; @@ -1061,9 +1061,10 @@ impl LibraryBuilder { // Clear top cell if top cell was deleted. if let Some(top) = self.top_cell() - && !cells.contains(&top) { - self.top = None; - } + && !cells.contains(&top) + { + self.top = None; + } // Remove primitives. self.primitives.retain(|id, _| primitives.contains(id)); @@ -1473,9 +1474,10 @@ impl LibraryBuilder { for (_, cell) in cells.iter_mut() { for (_, instance) in cell.instances.iter_mut() { if let ChildId::Primitive(p) = instance.child - && let Some(primitive) = primitives.get(&p) { - convert_instance(instance, primitive)?; - } + && let Some(primitive) = primitives.get(&p) + { + convert_instance(instance, primitive)?; + } } } diff --git a/libs/scir/src/validation.rs b/libs/scir/src/validation.rs index 33c4d3ffd..c87d11a8b 100644 --- a/libs/scir/src/validation.rs +++ b/libs/scir/src/validation.rs @@ -208,7 +208,11 @@ impl Display for Cause { "duplicate cell names: found two or more cells named `{}`", name ), - Self::DuplicateInstanceNames { inst_name, cell_name, .. } => write!( + Self::DuplicateInstanceNames { + inst_name, + cell_name, + .. + } => write!( f, "duplicate instance names: found two or more instances named `{}` in cell `{}`", inst_name, cell_name, @@ -220,88 +224,102 @@ impl Display for Cause { "duplicate signal names: found two or more signals named `{}` in cell `{}`", name, cell_name ), - Self::ShortedPorts { name, cell_name, .. } => - write!( - f, - "shorted ports: port `{}` in cell `{}` is connected to a signal already used by another port", - name, - cell_name - ), - - Self::MissingSignal { id, cell_name, .. } => - write!( - f, - "invalid signal ID {} in cell `{}`", - id, - cell_name - ), - - Self::MissingChild { child_id, parent_cell_name, instance_name, .. } => - write!( - f, - "missing child cell: instance `{}` in cell `{}` references cell ID `{}`, but no cell with this ID was found in the library", - instance_name, - parent_cell_name, - child_id - ), - - Self::UnconnectedPort { child_cell_name, port, parent_cell_name, instance_name, .. } => - write!( - f, - "unconnected port: instance `{}` in cell `{}` does not specify a connection for port `{}` of cell `{}`", - instance_name, - parent_cell_name, - port, - child_cell_name - ), - - Self::ExtraPort { child_cell_name, port, parent_cell_name, instance_name, .. } => - write!( - f, - "extra port: instance `{}` in cell `{}` specifies a connection for port `{}` of cell `{}`, but this cell has no such port", - instance_name, - parent_cell_name, - port, - child_cell_name - ), - - Self::IndexOutOfBounds {idx, width, cell_name, .. } => - write!( - f, - "index out of bounds: attempted to access index {} of signal with width {} in cell `{}`", - idx, - width, - cell_name - ), - - Self::MissingIndex { signal_name, cell_name, .. } => - write!( - f, - "missing index on use of bus signal `{}` in cell `{}`", - signal_name, - cell_name - ), - - Self::IndexedWire { signal_name, cell_name, .. } => - write!( - f, - "attempted to index a single-bit wire: signal `{}` in cell `{}`", - signal_name, - cell_name - ), - - Self::PortWidthMismatch { expected_width, actual_width, instance_name, port, parent_cell_name, child_cell_name, .. } => - write!( - f, - "mismatched port width: instance `{}` in cell `{}` specifies a connection to port `{}` of cell `{}` of width {}, but the expected width is {}", - instance_name, - parent_cell_name, - port, - child_cell_name, - actual_width, - expected_width - ), + Self::ShortedPorts { + name, cell_name, .. + } => write!( + f, + "shorted ports: port `{}` in cell `{}` is connected to a signal already used by another port", + name, cell_name + ), + + Self::MissingSignal { id, cell_name, .. } => { + write!(f, "invalid signal ID {} in cell `{}`", id, cell_name) + } + + Self::MissingChild { + child_id, + parent_cell_name, + instance_name, + .. + } => write!( + f, + "missing child cell: instance `{}` in cell `{}` references cell ID `{}`, but no cell with this ID was found in the library", + instance_name, parent_cell_name, child_id + ), + Self::UnconnectedPort { + child_cell_name, + port, + parent_cell_name, + instance_name, + .. + } => write!( + f, + "unconnected port: instance `{}` in cell `{}` does not specify a connection for port `{}` of cell `{}`", + instance_name, parent_cell_name, port, child_cell_name + ), + + Self::ExtraPort { + child_cell_name, + port, + parent_cell_name, + instance_name, + .. + } => write!( + f, + "extra port: instance `{}` in cell `{}` specifies a connection for port `{}` of cell `{}`, but this cell has no such port", + instance_name, parent_cell_name, port, child_cell_name + ), + + Self::IndexOutOfBounds { + idx, + width, + cell_name, + .. + } => write!( + f, + "index out of bounds: attempted to access index {} of signal with width {} in cell `{}`", + idx, width, cell_name + ), + + Self::MissingIndex { + signal_name, + cell_name, + .. + } => write!( + f, + "missing index on use of bus signal `{}` in cell `{}`", + signal_name, cell_name + ), + + Self::IndexedWire { + signal_name, + cell_name, + .. + } => write!( + f, + "attempted to index a single-bit wire: signal `{}` in cell `{}`", + signal_name, cell_name + ), + + Self::PortWidthMismatch { + expected_width, + actual_width, + instance_name, + port, + parent_cell_name, + child_cell_name, + .. + } => write!( + f, + "mismatched port width: instance `{}` in cell `{}` specifies a connection to port `{}` of cell `{}` of width {}, but the expected width is {}", + instance_name, + parent_cell_name, + port, + child_cell_name, + actual_width, + expected_width + ), } } } diff --git a/libs/spice/src/netlist.rs b/libs/spice/src/netlist.rs index ff19d95c8..6188222a6 100644 --- a/libs/spice/src/netlist.rs +++ b/libs/spice/src/netlist.rs @@ -282,11 +282,13 @@ impl NetlisterInstance<'_, S, W> { ) -> Result { let sig_info = cell.signal(slice.signal()); if let Some((signal, replace_with)) = rename_ground - && signal == &sig_info.name && slice.range().is_none() { - // Ground renaming cannot apply to buses. - // TODO assert that the ground port has width 1. - return Ok(replace_with.clone()); - } + && signal == &sig_info.name + && slice.range().is_none() + { + // Ground renaming cannot apply to buses. + // TODO assert that the ground port has width 1. + return Ok(replace_with.clone()); + } let mut buf = Vec::new(); self.schema.write_slice(&mut buf, slice, sig_info)?; Ok(ArcStr::from(std::str::from_utf8(&buf).expect( @@ -298,7 +300,10 @@ impl NetlisterInstance<'_, S, W> { impl HasSpiceLikeNetlist for Spice { fn write_prelude(&self, out: &mut W, lib: &Library) -> std::io::Result<()> { writeln!(out, "* Substrate SPICE library")?; - writeln!(out, "* This is a generated file. Be careful when editing manually: this file may be overwritten.\n")?; + writeln!( + out, + "* This is a generated file. Be careful when editing manually: this file may be overwritten.\n" + )?; for (_, p) in lib.primitives() { if let Primitive::RawInstanceWithCell { diff --git a/libs/spice/src/parser/conv.rs b/libs/spice/src/parser/conv.rs index 4776834d8..5406ede08 100644 --- a/libs/spice/src/parser/conv.rs +++ b/libs/spice/src/parser/conv.rs @@ -12,8 +12,8 @@ use arcstr::ArcStr; use lazy_static::lazy_static; use num_traits::Pow; use regex::Regex; -use rust_decimal::prelude::One; use rust_decimal::Decimal; +use rust_decimal::prelude::One; use scir::ParamValue; use thiserror::Error; @@ -34,7 +34,9 @@ pub enum ConvError { #[error("an instance of subcircuit `{0}` exists, but no definition was provided")] MissingSubckt(Substr), /// Incorrect (missing/extra) connections for an instance. - #[error("incorrect (missing/extra) connections for instance {inst} of cell `{child}` (in cell `{parent}`)")] + #[error( + "incorrect (missing/extra) connections for instance {inst} of cell `{child}` (in cell `{parent}`)" + )] IncorrectConnections { /// The name of the instance. inst: Substr, @@ -55,7 +57,9 @@ pub enum ConvError { /// A non-blackbox cell was instantiated with parameters. /// /// Substrate does not support SPICE-like parameters on non-blackbox cells. - #[error("parameters for instance {inst} of cell `{child}` (in cell `{parent}`) are not allowed because `{child}` was not blackboxed")] + #[error( + "parameters for instance {inst} of cell `{child}` (in cell `{parent}`) are not allowed because `{child}` was not blackboxed" + )] UnsupportedParams { /// The name of the instance. inst: Substr, diff --git a/libs/spice/src/parser/tests.rs b/libs/spice/src/parser/tests.rs index 21469fb3a..e06c736c3 100644 --- a/libs/spice/src/parser/tests.rs +++ b/libs/spice/src/parser/tests.rs @@ -1,7 +1,7 @@ use super::*; -use crate::netlist::NetlistOptions; use crate::Primitive; +use crate::netlist::NetlistOptions; use scir::netlist::ConvertibleNetlister; use std::path::PathBuf; diff --git a/libs/type_dispatch_macros/src/impls.rs b/libs/type_dispatch_macros/src/impls.rs index 2cfb17333..8324ea8bb 100644 --- a/libs/type_dispatch_macros/src/impls.rs +++ b/libs/type_dispatch_macros/src/impls.rs @@ -3,11 +3,11 @@ use proc_macro::TokenStream; use proc_macro2::Ident; use quote::quote; use syn::{ - braced, + GenericParam, ItemImpl, Result, Token, Type, braced, parse::{Parse, ParseStream}, parse_macro_input, punctuated::Punctuated, - token, GenericParam, ItemImpl, Result, Token, Type, + token, }; use crate::type_dispatch_ident; diff --git a/libs/type_dispatch_macros/src/lib.rs b/libs/type_dispatch_macros/src/lib.rs index 5ee661622..e67943376 100644 --- a/libs/type_dispatch_macros/src/lib.rs +++ b/libs/type_dispatch_macros/src/lib.rs @@ -4,8 +4,8 @@ use crate::types::{dispatch_const_impl, dispatch_fn_impl, dispatch_type_impl}; use proc_macro::{TokenStream, TokenTree}; +use proc_macro_crate::{FoundCrate, crate_name}; use proc_macro2::{Ident, Span, TokenStream as TokenStream2}; -use proc_macro_crate::{crate_name, FoundCrate}; use quote::quote; use crate::impls::impl_dispatch_impl; diff --git a/libs/type_dispatch_macros/src/types.rs b/libs/type_dispatch_macros/src/types.rs index 15541b1b2..5ea9b2e8e 100644 --- a/libs/type_dispatch_macros/src/types.rs +++ b/libs/type_dispatch_macros/src/types.rs @@ -4,7 +4,7 @@ use proc_macro::TokenStream; use quote::{format_ident, quote}; use syn::parse::{Parse, ParseStream}; use syn::punctuated::Punctuated; -use syn::{braced, parse_macro_input, Expr, Token, Type}; +use syn::{Expr, Token, Type, braced, parse_macro_input}; struct Arm { types: Vec, diff --git a/pdks/sky130/src/layers.rs b/pdks/sky130/src/layers.rs index 58d5166b2..79b21d55c 100644 --- a/pdks/sky130/src/layers.rs +++ b/pdks/sky130/src/layers.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; -use gdsconv::{conv::FromGds, GdsLayer}; +use gdsconv::{GdsLayer, conv::FromGds}; use lazy_static::lazy_static; #[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)] diff --git a/pdks/sky130/src/layout.rs b/pdks/sky130/src/layout.rs index c3fbdba0b..a2c4939ae 100644 --- a/pdks/sky130/src/layout.rs +++ b/pdks/sky130/src/layout.rs @@ -11,13 +11,13 @@ use substrate::types::codegen::PortGeometryBundle; use substrate::{ block::Block, layout::{ - tracks::{Tracks, UniformTracks}, CellBuilder, Layout, + tracks::{Tracks, UniformTracks}, }, - types::{layout::PortGeometry, InOut, Io, Signal}, + types::{InOut, Io, Signal, layout::PortGeometry}, }; -use crate::{layers::Sky130Layer, Sky130}; +use crate::{Sky130, layers::Sky130Layer}; /// The units used for importing/exporting GDS libraries. pub const GDS_UNITS: GdsUnits = GdsUnits::new(1e-3, 1e-9); diff --git a/pdks/sky130/src/res.rs b/pdks/sky130/src/res.rs index a357a7c54..abdfb5f60 100644 --- a/pdks/sky130/src/res.rs +++ b/pdks/sky130/src/res.rs @@ -1,8 +1,8 @@ //! Resistors. use atoll::{ - grid::{AtollLayer, LayerStack, PdkLayer}, AtollPrimitive, + grid::{AtollLayer, LayerStack, PdkLayer}, }; use geometry::{ bbox::Bbox, @@ -18,10 +18,10 @@ use substrate::{ block::Block, layout::{Container, Layout}, schematic::Schematic, - types::{layout::PortGeometry, TwoTerminalIo, TwoTerminalIoView}, + types::{TwoTerminalIo, TwoTerminalIoView, layout::PortGeometry}, }; -use crate::{layers::Sky130Layer, Sky130}; +use crate::{Sky130, layers::Sky130Layer}; const SLOTTED_LICON_W: i64 = 190; const SLOTTED_LICON_L: i64 = 2_000; @@ -236,8 +236,8 @@ mod tests { use super::*; use crate::{layout::to_gds, tests::sky130_cds_ctx}; use pegasus::{ - drc::{run_drc, DrcParams}, RuleCheck, + drc::{DrcParams, run_drc}, }; use substrate::block::Block; diff --git a/pdks/sky130/src/stdcells.rs b/pdks/sky130/src/stdcells.rs index 45503812b..9f5af0846 100644 --- a/pdks/sky130/src/stdcells.rs +++ b/pdks/sky130/src/stdcells.rs @@ -1,7 +1,7 @@ //! Standard cell definitions and utilities. -use crate::layout::GDS_UNITS; use crate::Sky130; +use crate::layout::GDS_UNITS; use arcstr::ArcStr; use gds::GdsLibrary; use gdsconv::conv::from_gds; @@ -11,8 +11,8 @@ use serde::{Deserialize, Serialize}; use spice::Spice; use std::path::PathBuf; use substrate::block::Block; -use substrate::layout::element::RawInstance; use substrate::layout::Layout; +use substrate::layout::element::RawInstance; use substrate::schematic::{CellBuilder, Schematic}; use substrate::types::{InOut, Input, Io, Output, Signal}; diff --git a/pdks/sky130/src/tests.rs b/pdks/sky130/src/tests.rs index 28176dfe8..44b756eb9 100644 --- a/pdks/sky130/src/tests.rs +++ b/pdks/sky130/src/tests.rs @@ -1,9 +1,9 @@ use crate::corner::Sky130Corner; use crate::layers::Sky130Layer; -use crate::layout::{to_gds, GDS_UNITS}; +use crate::layout::{GDS_UNITS, to_gds}; use crate::mos::{MosKind, MosLength, NmosTile, PmosTile}; use crate::stdcells::{And2, And2Io}; -use crate::{convert_spice_mos, Primitive, Sky130, Sky130OpenSchema, Sky130SrcNdaSchema}; +use crate::{Primitive, Sky130, Sky130OpenSchema, Sky130SrcNdaSchema, convert_spice_mos}; use approx::assert_abs_diff_eq; use derive_where::derive_where; use gds::GdsLibrary; diff --git a/substrate/src/cache/mod.rs b/substrate/src/cache/mod.rs index efbc43ade..33c5d8cbb 100644 --- a/substrate/src/cache/mod.rs +++ b/substrate/src/cache/mod.rs @@ -5,8 +5,8 @@ use std::{ sync::{Arc, Mutex}, }; -use cache::{mem::TypeCache, multi::MultiCache, CacheHandle, Cacheable, CacheableWithState}; -use serde::{de::DeserializeOwned, Serialize}; +use cache::{CacheHandle, Cacheable, CacheableWithState, mem::TypeCache, multi::MultiCache}; +use serde::{Serialize, de::DeserializeOwned}; #[cfg(test)] mod tests; diff --git a/substrate/src/context.rs b/substrate/src/context.rs index 1ae9b3719..1a11ac1ed 100644 --- a/substrate/src/context.rs +++ b/substrate/src/context.rs @@ -8,11 +8,11 @@ use std::sync::{Arc, RwLock}; use config::Config; use gds::GdsUnits; -use gdsconv::export::GdsExportOpts; use gdsconv::GdsLayer; +use gdsconv::export::GdsExportOpts; use indexmap::IndexMap; use substrate::schematic::{CellBuilder, ConvCacheKey, RawCellContentsBuilder}; -use tracing::{span, Level}; +use tracing::{Level, span}; use crate::block::Block; use crate::cache::Cache; @@ -25,7 +25,7 @@ use crate::layout::error::LayoutError; use crate::layout::{Cell as LayoutCell, CellHandle as LayoutCellHandle}; use crate::layout::{CellBuilder as LayoutCellBuilder, CellLayer}; use crate::layout::{Layout, LayoutContext}; -use crate::schematic::conv::{export_multi_top_scir_lib, ConvError, RawLib}; +use crate::schematic::conv::{ConvError, RawLib, export_multi_top_scir_lib}; use crate::schematic::schema::{FromSchema, Schema}; use crate::schematic::{ Cell as SchematicCell, CellCacheKey, CellHandle as SchematicCellHandle, CellId, CellMetadata, diff --git a/substrate/src/layout/element.rs b/substrate/src/layout/element.rs index 13f946252..09b8ba85e 100644 --- a/substrate/src/layout/element.rs +++ b/substrate/src/layout/element.rs @@ -23,7 +23,7 @@ use crate::{ types::NameBuf, }; -use super::{schema::Schema, Draw, DrawReceiver, Instance, Layout}; +use super::{Draw, DrawReceiver, Instance, Layout, schema::Schema}; /// A context-wide unique identifier for a cell. #[derive( diff --git a/substrate/src/layout/mod.rs b/substrate/src/layout/mod.rs index 114276c66..e0e1f24d8 100644 --- a/substrate/src/layout/mod.rs +++ b/substrate/src/layout/mod.rs @@ -5,7 +5,7 @@ use std::ops::{Deref, DerefMut}; use std::{marker::PhantomData, sync::Arc, thread}; use arcstr::ArcStr; -use cache::{error::TryInnerError, mem::TypeCache, CacheHandle}; +use cache::{CacheHandle, error::TryInnerError, mem::TypeCache}; use geometry::prelude::Rect; use geometry::transform::{TransformRef, TranslateRef}; use geometry::{ diff --git a/substrate/src/layout/tests.rs b/substrate/src/layout/tests.rs index 8893f7fbe..b630ec6f1 100644 --- a/substrate/src/layout/tests.rs +++ b/substrate/src/layout/tests.rs @@ -13,18 +13,18 @@ use layir::{Cell, LibraryBuilder, Shape}; use crate::{ block::Block, context::Context, - tests::{get_path, Buffer, BufferIo, BufferIoView, BufferN, BufferNxM, BufferNxMIo, Inverter}, + tests::{Buffer, BufferIo, BufferIoView, BufferN, BufferNxM, BufferNxMIo, Inverter, get_path}, types::{ + ArrayBundle, Signal, codegen::{PortGeometryBundle, View}, layout::{PortGeometry, PortGeometryBuilder}, - ArrayBundle, Signal, }, }; use super::{ + CellBundle, Instance, Layout, schema::Schema, tiling::{ArrayTiler, GridTile, GridTiler, Tile, TileAlignMode}, - CellBundle, Instance, Layout, }; fn gds_units() -> GdsUnits { diff --git a/substrate/src/layout/tiling.rs b/substrate/src/layout/tiling.rs index c43be8b6d..60b7320b5 100644 --- a/substrate/src/layout/tiling.rs +++ b/substrate/src/layout/tiling.rs @@ -2,7 +2,7 @@ use std::{any::Any, marker::PhantomData}; -use downcast_rs::{impl_downcast, Downcast}; +use downcast_rs::{Downcast, impl_downcast}; use geometry::{ align::AlignRectMut, prelude::{AlignMode, Bbox}, @@ -11,9 +11,9 @@ use geometry::{ transform::TranslateMut, }; use serde::{Deserialize, Serialize}; -use slotmap::{new_key_type, SlotMap}; +use slotmap::{SlotMap, new_key_type}; -use super::{schema::Schema, Draw, DrawReceiver}; +use super::{Draw, DrawReceiver, schema::Schema}; /// A tileable layout object. pub trait Tileable: Draw + AlignRectMut + Downcast {} @@ -487,14 +487,15 @@ impl GridTiler { let mut col_idx = 0; for key in row { if let Some(blockage) = blockages.get(blockage_idx) - && col_idx == blockage.start_col { - if i == blockage.end_row { - blockages.remove(blockage_idx); - } else { - col_idx = blockage.end_col; - blockage_idx += 1; - } + && col_idx == blockage.start_col + { + if i == blockage.end_row { + blockages.remove(blockage_idx); + } else { + col_idx = blockage.end_col; + blockage_idx += 1; } + } let tile = &self.tiles[*key]; if tile.rowspan > 1 { blockages.push(ColBlockage { diff --git a/substrate/src/schematic/netlist.rs b/substrate/src/schematic/netlist.rs index ff5893cdc..a71709d11 100644 --- a/substrate/src/schematic/netlist.rs +++ b/substrate/src/schematic/netlist.rs @@ -6,7 +6,7 @@ use scir::NetlistLibConversion; use crate::context::Context; -use super::{conv::RawLib, schema::Schema, Schematic}; +use super::{Schematic, conv::RawLib, schema::Schema}; /// A netlister that tracks how cells and instances are translated between SCIR and the output netlist format. pub trait ConvertibleNetlister: diff --git a/substrate/src/schematic/pex.rs b/substrate/src/schematic/pex.rs index 09e6afd91..f14f25fae 100644 --- a/substrate/src/schematic/pex.rs +++ b/substrate/src/schematic/pex.rs @@ -6,16 +6,16 @@ use scir::{Library, NamedSliceOne, NetlistLibConversion, SliceOnePath}; use crate::{ simulation::{ - data::{Save, SaveKey, Saved}, Analysis, Simulator, + data::{Save, SaveKey, Saved}, }, types::schematic::{NestedNode, RawNestedNode}, }; use super::{ + Cell, ContextView, HasContextView, HasNestedView, InstancePath, NestedView, Schematic, conv::{ConvertedNodePath, RawLib}, schema::Schema, - Cell, ContextView, HasContextView, HasNestedView, InstancePath, NestedView, Schematic, }; /// Captures information for mapping nodes/elements between schematic and extracted netlists. diff --git a/substrate/src/schematic/tests.rs b/substrate/src/schematic/tests.rs index b21ada3c5..e0e448d23 100644 --- a/substrate/src/schematic/tests.rs +++ b/substrate/src/schematic/tests.rs @@ -16,7 +16,7 @@ use crate::types::schematic::{DataView, IoNodeBundle, NestedTerminal, Node, Node use crate::types::{Array, Flipped, HasBundleKind, Input, PowerIo}; use crate::{ block::Block, - schematic::{conv::RawLib, NestedData, PrimitiveBinding, Schematic}, + schematic::{NestedData, PrimitiveBinding, Schematic, conv::RawLib}, types::{HasNameTree, InOut, NameTree, Output, Signal}, }; diff --git a/substrate/src/simulation/data.rs b/substrate/src/simulation/data.rs index 3ba4aec98..93d0ee28c 100644 --- a/substrate/src/simulation/data.rs +++ b/substrate/src/simulation/data.rs @@ -8,8 +8,8 @@ use crate::{ schematic::{HasNestedView, NestedInstance, NestedView, Schematic}, simulation::{Analysis, SimulationContext, Simulator}, types::{ - schematic::{IoTerminalBundle, NestedNode}, ArrayBundle, HasBundleKind, + schematic::{IoTerminalBundle, NestedNode}, }, }; diff --git a/substrate/src/simulation/waveform.rs b/substrate/src/simulation/waveform.rs index 20f67a5f6..0e15b87a2 100644 --- a/substrate/src/simulation/waveform.rs +++ b/substrate/src/simulation/waveform.rs @@ -890,11 +890,7 @@ where /// If `bit` is `false`, this is equivalent to calling [`DigitalWaveformBuilder::add_lo`]. #[inline] pub fn add(&mut self, bit: bool) -> &mut Self { - if bit { - self.add_hi() - } else { - self.add_lo() - } + if bit { self.add_hi() } else { self.add_lo() } } /// Consumes the builder, producing a [`Waveform`]. diff --git a/substrate/src/types/codegen.rs b/substrate/src/types/codegen.rs index 0b5988855..67ef81d49 100644 --- a/substrate/src/types/codegen.rs +++ b/substrate/src/types/codegen.rs @@ -4,13 +4,13 @@ use std::marker::PhantomData; use crate::{ schematic::{ContextView, HasContextView, HasNestedView, NestedView}, - simulation::{data::Save, Analysis, Simulator}, + simulation::{Analysis, Simulator, data::Save}, }; use super::{ + Array, ArrayBundle, HasBundleKind, Signal, layout::{LayoutBundle, PortGeometry}, schematic::{HasNodeBundle, HasTerminalBundle, SchematicBundleKind}, - Array, ArrayBundle, HasBundleKind, Signal, }; /// A type with an associated `V` view. @@ -94,12 +94,12 @@ pub trait HasSchematicBundleKindViews: } impl< - T: HasBundleKind - + HasView> - + HasView> - + HasView>> - + HasView>>, - > HasSchematicBundleKindViews for T + T: HasBundleKind + + HasView> + + HasView> + + HasView>> + + HasView>>, +> HasSchematicBundleKindViews for T { } diff --git a/substrate/src/types/impls.rs b/substrate/src/types/impls.rs index 02b137da9..4b757a563 100644 --- a/substrate/src/types/impls.rs +++ b/substrate/src/types/impls.rs @@ -360,9 +360,9 @@ impl::BundleKind, S>> } impl< - T: HasBundleKind - + HasNestedView::BundleKind>>, - > HasNestedView for ArrayBundle + T: HasBundleKind + + HasNestedView::BundleKind>>, +> HasNestedView for ArrayBundle { type NestedView = ArrayBundle>; fn nested_view(&self, parent: &InstancePath) -> NestedView { diff --git a/substrate/src/types/mod.rs b/substrate/src/types/mod.rs index 5d9465fde..df6e0e7ac 100644 --- a/substrate/src/types/mod.rs +++ b/substrate/src/types/mod.rs @@ -58,7 +58,13 @@ pub trait Flatten: FlatLen { let len = self.len(); let mut vec = Vec::with_capacity(len); self.flatten(&mut vec); - assert_eq!(vec.len(), len, "Flatten::flatten_vec produced a Vec with an incorrect length: expected {} from FlatLen::len, got {}", len, vec.len()); + assert_eq!( + vec.len(), + len, + "Flatten::flatten_vec produced a Vec with an incorrect length: expected {} from FlatLen::len, got {}", + len, + vec.len() + ); vec } } @@ -106,9 +112,8 @@ pub trait BundleKind: FlatLen + HasNameTree + HasBundleKind + Debug + Clone + Eq + Send + Sync { } -impl< - T: FlatLen + HasNameTree + HasBundleKind + Debug + Clone + Eq + Send + Sync, - > BundleKind for T +impl + Debug + Clone + Eq + Send + Sync> + BundleKind for T { } diff --git a/tools/magic/src/drc.rs b/tools/magic/src/drc.rs index ba24ea202..1611535f0 100644 --- a/tools/magic/src/drc.rs +++ b/tools/magic/src/drc.rs @@ -1,7 +1,7 @@ //! Run design rule checking (DRC) using Magic. -use crate::utils::{execute_run_script, OutputFiles}; -use crate::{error::Error, TEMPLATES}; +use crate::utils::{OutputFiles, execute_run_script}; +use crate::{TEMPLATES, error::Error}; use anyhow::anyhow; use itertools::Itertools; use serde::{Deserialize, Serialize}; diff --git a/tools/magic/src/extract.rs b/tools/magic/src/extract.rs index 28d4d060d..de81d71bc 100644 --- a/tools/magic/src/extract.rs +++ b/tools/magic/src/extract.rs @@ -1,5 +1,5 @@ use crate::utils::execute_run_script; -use crate::{error::Error, TEMPLATES}; +use crate::{TEMPLATES, error::Error}; use anyhow::anyhow; use serde::Serialize; use std::fs; diff --git a/tools/magic/src/pex.rs b/tools/magic/src/pex.rs index 666b98bbb..1046c2f9d 100644 --- a/tools/magic/src/pex.rs +++ b/tools/magic/src/pex.rs @@ -1,5 +1,5 @@ use crate::utils::execute_run_script; -use crate::{error::Error, TEMPLATES}; +use crate::{TEMPLATES, error::Error}; use anyhow::anyhow; use serde::Serialize; use std::fs; diff --git a/tools/magic_netgen/src/lib.rs b/tools/magic_netgen/src/lib.rs index 044b46b85..08150fb19 100644 --- a/tools/magic_netgen/src/lib.rs +++ b/tools/magic_netgen/src/lib.rs @@ -1,11 +1,11 @@ -use magic::extract::{run_extract, ExtractParams}; -use magic::pex::{run_pex, PexParams}; +use magic::extract::{ExtractParams, run_extract}; +use magic::pex::{PexParams, run_pex}; use netgen::compare::{CompareOutput, CompareParams}; -use scir::netlist::ConvertibleNetlister; use scir::NetlistLibConversion; +use scir::netlist::ConvertibleNetlister; use scir::{NamedSliceOne, SliceOnePath}; -use spice::netlist::NetlistOptions; use spice::Spice; +use spice::netlist::NetlistOptions; use std::collections::HashMap; use std::path::PathBuf; use std::sync::Arc; diff --git a/tools/netgen/src/compare.rs b/tools/netgen/src/compare.rs index 7aa3e9fbf..160e63310 100644 --- a/tools/netgen/src/compare.rs +++ b/tools/netgen/src/compare.rs @@ -1,5 +1,5 @@ use crate::utils::execute_run_script; -use crate::{error::Error, TEMPLATES}; +use crate::{TEMPLATES, error::Error}; use arcstr::ArcStr; use serde::Serialize; use std::collections::HashMap; diff --git a/tools/ngspice/src/lib.rs b/tools/ngspice/src/lib.rs index ce9dbba61..b5287599d 100644 --- a/tools/ngspice/src/lib.rs +++ b/tools/ngspice/src/lib.rs @@ -12,22 +12,22 @@ use crate::blocks::Vsource; use crate::tran::Tran; use arcstr::ArcStr; use blocks::Isource; -use cache::error::TryInnerError; use cache::CacheableWithState; +use cache::error::TryInnerError; use error::*; use nutlex::parser::Data; use scir::schema::{FromSchema, NoSchema, NoSchemaError}; use scir::{ChildId, Library, NetlistLibConversion, SignalInfo, SignalPathTail, SliceOnePath}; use serde::{Deserialize, Serialize}; +use spice::Spice; use spice::netlist::{ HasSpiceLikeNetlist, Include, NetlistKind, NetlistOptions, NetlisterInstance, RenameGround, }; -use spice::Spice; use substrate::context::Installation; use substrate::execute::{ExecOpts, Executor, LogOutput}; use substrate::schematic::schema::Schema; use substrate::simulation::{SimulationContext, Simulator}; -use templates::{write_run_script, RunScriptContext}; +use templates::{RunScriptContext, write_run_script}; pub mod blocks; pub mod error; @@ -701,7 +701,10 @@ impl Tran { impl HasSpiceLikeNetlist for Ngspice { fn write_prelude(&self, out: &mut W, _lib: &Library) -> std::io::Result<()> { writeln!(out, "* Substrate SPICE library")?; - writeln!(out, "* This is a generated file. Be careful when editing manually: this file may be overwritten.\n")?; + writeln!( + out, + "* This is a generated file. Be careful when editing manually: this file may be overwritten.\n" + )?; Ok(()) } diff --git a/tools/ngspice/src/tran.rs b/tools/ngspice/src/tran.rs index bda344573..911746cb5 100644 --- a/tools/ngspice/src/tran.rs +++ b/tools/ngspice/src/tran.rs @@ -213,13 +213,13 @@ impl Save for NestedTerminal { t: output.time.clone(), x: output .raw_values - .get(output.saved_values.get(&key.0 .0).unwrap()) + .get(output.saved_values.get(&key.0.0).unwrap()) .unwrap() .clone(), }; let currents: Vec>> = key .1 - .0 + .0 .iter() .map(|key| { output diff --git a/tools/pegasus/src/drc.rs b/tools/pegasus/src/drc.rs index 51a89dcb0..c8d683b35 100644 --- a/tools/pegasus/src/drc.rs +++ b/tools/pegasus/src/drc.rs @@ -1,5 +1,5 @@ use crate::utils::execute_run_script; -use crate::{error::Error, RuleCheck, TEMPLATES}; +use crate::{RuleCheck, TEMPLATES, error::Error}; use regex::Regex; use serde::Serialize; use std::fs; @@ -163,9 +163,9 @@ pub fn run_drc(params: &DrcParams) -> Result { #[cfg(test)] mod tests { - use crate::drc::{parse_pegasus_drc_results, run_drc, write_drc_files, DrcParams}; - use crate::tests::{EXAMPLES_PATH, SKY130_DRC, SKY130_DRC_RULES_PATH, TEST_BUILD_PATH}; use crate::RuleCheck; + use crate::drc::{DrcParams, parse_pegasus_drc_results, run_drc, write_drc_files}; + use crate::tests::{EXAMPLES_PATH, SKY130_DRC, SKY130_DRC_RULES_PATH, TEST_BUILD_PATH}; use std::collections::HashMap; use std::path::PathBuf; @@ -195,12 +195,9 @@ mod tests { for rule_check in data.rule_checks { if let Some(expected_num_results) = test_rules.get(&rule_check.name) { assert_eq!( - *expected_num_results, - rule_check.num_results, + *expected_num_results, rule_check.num_results, "Incorrectly parsed DRC report, expected {} results for rule check {} but found {}", - expected_num_results, - &rule_check.name, - rule_check.num_results + expected_num_results, &rule_check.name, rule_check.num_results ); } } diff --git a/tools/pegasus/src/lvs.rs b/tools/pegasus/src/lvs.rs index f335c417d..1db572c7e 100644 --- a/tools/pegasus/src/lvs.rs +++ b/tools/pegasus/src/lvs.rs @@ -1,5 +1,5 @@ use crate::utils::{aggregate_sources, execute_run_script}; -use crate::{error::Error, RuleCheck, TEMPLATES}; +use crate::{RuleCheck, TEMPLATES, error::Error}; use regex::Regex; use serde::Serialize; use std::fs; @@ -208,7 +208,7 @@ pub fn run_lvs(params: &LvsParams) -> Result { #[cfg(test)] mod tests { use crate::lvs::{ - parse_pegasus_lvs_results, run_lvs, write_lvs_run_file, LvsParams, LvsStatus, + LvsParams, LvsStatus, parse_pegasus_lvs_results, run_lvs, write_lvs_run_file, }; use crate::tests::{ COLBUF_LAYOUT_PATH, EXAMPLES_PATH, SKY130_LVS, SKY130_LVS_RULES_PATH, TEST_BUILD_PATH, diff --git a/tools/pegasus/src/utils.rs b/tools/pegasus/src/utils.rs index 6e7995ec8..4eb86791c 100644 --- a/tools/pegasus/src/utils.rs +++ b/tools/pegasus/src/utils.rs @@ -5,7 +5,7 @@ use std::process::{Command, Stdio}; use serde::Serialize; -use crate::{error::Error, TEMPLATES}; +use crate::{TEMPLATES, error::Error}; #[derive(Serialize)] struct SourceTemplateContext<'a> { diff --git a/tools/quantus/src/pex.rs b/tools/quantus/src/pex.rs index 799c8d669..c7f2e3d00 100644 --- a/tools/quantus/src/pex.rs +++ b/tools/quantus/src/pex.rs @@ -1,10 +1,10 @@ use crate::utils::execute_run_script; -use crate::{error::Error, TEMPLATES}; -use pegasus::lvs::{run_lvs, LvsParams, LvsStatus}; +use crate::{TEMPLATES, error::Error}; +use pegasus::lvs::{LvsParams, LvsStatus, run_lvs}; use scir::netlist::ConvertibleNetlister; use serde::Serialize; -use spice::netlist::NetlistOptions; use spice::Spice; +use spice::netlist::NetlistOptions; use std::fs; use std::path::{Path, PathBuf}; use std::sync::Arc; @@ -243,9 +243,9 @@ where #[cfg(test)] mod tests { - use pegasus::lvs::{run_lvs, LvsParams, LvsStatus}; + use pegasus::lvs::{LvsParams, LvsStatus, run_lvs}; - use crate::pex::{run_pex, write_pex_run_file, PexParams}; + use crate::pex::{PexParams, run_pex, write_pex_run_file}; use crate::tests::{ COLBUF_LAYOUT_PATH, EXAMPLES_PATH, SKY130_LVS, SKY130_LVS_RULES_PATH, SKY130_TECHNOLOGY_DIR, TEST_BUILD_PATH, diff --git a/tools/quantus/src/utils.rs b/tools/quantus/src/utils.rs index 6e7995ec8..4eb86791c 100644 --- a/tools/quantus/src/utils.rs +++ b/tools/quantus/src/utils.rs @@ -5,7 +5,7 @@ use std::process::{Command, Stdio}; use serde::Serialize; -use crate::{error::Error, TEMPLATES}; +use crate::{TEMPLATES, error::Error}; #[derive(Serialize)] struct SourceTemplateContext<'a> { diff --git a/tools/spectre/src/analysis/ac.rs b/tools/spectre/src/analysis/ac.rs index 6ad52e3fc..1d26e478e 100644 --- a/tools/spectre/src/analysis/ac.rs +++ b/tools/spectre/src/analysis/ac.rs @@ -11,8 +11,8 @@ use std::sync::Arc; use substrate::{ schematic::conv::ConvertedNodePath, simulation::{ - data::{Save, SaveFreq, SaveOutput}, Analysis, SimulationContext, Simulator, SupportedBy, + data::{Save, SaveFreq, SaveOutput}, }, types::schematic::{NestedNode, NestedTerminal, RawNestedNode}, }; @@ -211,12 +211,12 @@ impl Save for NestedTerminal { ) -> >::Saved { let v = output .raw_values - .get(output.saved_values.get(&key.0 .0).unwrap()) + .get(output.saved_values.get(&key.0.0).unwrap()) .unwrap() .clone(); let currents: Vec>> = key .1 - .0 + .0 .iter() .map(|key| { output diff --git a/tools/spectre/src/analysis/dc.rs b/tools/spectre/src/analysis/dc.rs index cda15a4ff..41e6a6e23 100644 --- a/tools/spectre/src/analysis/dc.rs +++ b/tools/spectre/src/analysis/dc.rs @@ -8,8 +8,8 @@ use std::collections::HashMap; use substrate::{ schematic::conv::ConvertedNodePath, simulation::{ - data::{Save, SaveOutput}, Analysis, SimulationContext, Simulator, SupportedBy, + data::{Save, SaveOutput}, }, types::schematic::{NestedNode, NestedTerminal, RawNestedNode}, }; @@ -174,11 +174,11 @@ impl Save for NestedTerminal { ) -> >::Saved { let v = *output .raw_values - .get(output.saved_values.get(&key.0 .0).unwrap()) + .get(output.saved_values.get(&key.0.0).unwrap()) .unwrap(); let i = key .1 - .0 + .0 .iter() .map(|key| { output diff --git a/tools/spectre/src/analysis/tran.rs b/tools/spectre/src/analysis/tran.rs index e16a480fe..6d2c2c7ff 100644 --- a/tools/spectre/src/analysis/tran.rs +++ b/tools/spectre/src/analysis/tran.rs @@ -239,13 +239,13 @@ impl Save for NestedTerminal { t: output.time.clone(), x: output .raw_values - .get(output.saved_values.get(&key.0 .0).unwrap()) + .get(output.saved_values.get(&key.0.0).unwrap()) .unwrap() .clone(), }; let currents: Vec>> = key .1 - .0 + .0 .iter() .map(|key| { output diff --git a/tools/spectre/src/lib.rs b/tools/spectre/src/lib.rs index 168914286..5b26924aa 100644 --- a/tools/spectre/src/lib.rs +++ b/tools/spectre/src/lib.rs @@ -17,10 +17,10 @@ use crate::analysis::montecarlo::MonteCarlo; use analysis::dc::DcOp; use analysis::tran; use analysis::tran::Tran; -use analysis::{ac, dc, Sweep}; +use analysis::{Sweep, ac, dc}; use arcstr::ArcStr; -use cache::error::TryInnerError; use cache::CacheableWithState; +use cache::error::TryInnerError; use error::*; use itertools::Itertools; use lazy_static::lazy_static; @@ -45,10 +45,10 @@ use substrate::execute::{ExecOpts, Executor, LogOutput}; use substrate::schematic::conv::ConvertedNodePath; use substrate::schematic::schema::Schema; use substrate::simulation::options::ic::InitialCondition; -use substrate::simulation::options::{ic, SimOption, Temperature}; +use substrate::simulation::options::{SimOption, Temperature, ic}; use substrate::simulation::{SimulationContext, Simulator, SupportedBy}; use substrate::types::schematic::NodePath; -use templates::{write_run_script, RunScriptContext}; +use templates::{RunScriptContext, write_run_script}; use type_dispatch::impl_dispatch; pub mod analysis; diff --git a/tools/spectre/src/tests.rs b/tools/spectre/src/tests.rs index 2884caa45..65f5ef533 100644 --- a/tools/spectre/src/tests.rs +++ b/tools/spectre/src/tests.rs @@ -24,18 +24,18 @@ use substrate::{ schematic::{CellBuilder, NestedData, PrimitiveBinding, Schematic}, simulation::SimController, types::{ - schematic::{IoNodeBundle, Node}, InOut, Io, Signal, TestbenchIo, TwoTerminalIo, + schematic::{IoNodeBundle, Node}, }, }; +use crate::analysis::Sweep; use crate::analysis::ac::Ac; use crate::analysis::dc::DcOp; use crate::analysis::tran::Tran; -use crate::analysis::Sweep; use crate::{ - blocks::{AcSource, Capacitor, Isource, RawInstance, Resistor, Vsource}, ErrPreset, Options, Primitive, Spectre, + blocks::{AcSource, Capacitor, Isource, RawInstance, Resistor, Vsource}, }; const BUILD_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/build"); @@ -256,10 +256,12 @@ fn spectre_can_save_paths_with_flattened_instances() { ) .expect("failed to run simulation"); - assert!(output - .i - .values() - .all(|val| relative_eq!(val.x(), 1.8 * (1. / 100. + 1. / 200. + 1. / 300.)))); + assert!( + output + .i + .values() + .all(|val| relative_eq!(val.x(), 1.8 * (1. / 100. + 1. / 200. + 1. / 300.))) + ); } /// An RC testbench. From 4cf81db4bedd4a1c6d79f29edab35f41fb9b2e6c Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 21:01:16 -0800 Subject: [PATCH 16/28] install protoc --- .github/workflows/check-repo.yml | 6 ++++++ .github/workflows/check-workspace.yml | 7 +++++-- .github/workflows/deploy-api-docs.yml | 4 ++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-repo.yml b/.github/workflows/check-repo.yml index 87bdb7d8e..dcfb2b63f 100644 --- a/.github/workflows/check-repo.yml +++ b/.github/workflows/check-repo.yml @@ -28,9 +28,15 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Install Protoc + uses: arduino/setup-protoc@v2 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@cargo-hack - uses: Swatinem/rust-cache@v2 + with: + cache_on_failure: true - name: Check docs run: | cargo hack --all rustdoc --all-features diff --git a/.github/workflows/check-workspace.yml b/.github/workflows/check-workspace.yml index 34a1be722..76b80e438 100644 --- a/.github/workflows/check-workspace.yml +++ b/.github/workflows/check-workspace.yml @@ -19,14 +19,17 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Install Protoc + uses: arduino/setup-protoc@v2 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@cargo-hack - uses: Swatinem/rust-cache@v2 with: - key: ${{ steps.toolchain.outputs.cachekey }} workspaces: | ${{ inputs.workspace_path }} - cache_on_failure: "true" + cache_on_failure: true - name: Check formatting run: | cargo fmt --check diff --git a/.github/workflows/deploy-api-docs.yml b/.github/workflows/deploy-api-docs.yml index 21d8ce2db..5e5b8122e 100644 --- a/.github/workflows/deploy-api-docs.yml +++ b/.github/workflows/deploy-api-docs.yml @@ -20,6 +20,10 @@ jobs: environment: docs steps: - uses: actions/checkout@v4 + - name: Install Protoc + uses: arduino/setup-protoc@v2 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Install Rust uses: dtolnay/rust-toolchain@stable id: toolchain From a4372bdc8e168eaa6a5da3ba847ca2287904210d Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 21:03:16 -0800 Subject: [PATCH 17/28] clean up yaml --- .github/workflows/ci-main.yml | 2 +- .github/workflows/deploy-api-docs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 01084871c..eae8fc6fe 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -78,7 +78,7 @@ jobs: workspaces: | ./substrate ./cargo-workspaces/cargo-workspaces - cache_on_failure: "true" + cache_on_failure: true - name: Build `cargo-workspaces` working-directory: cargo-workspaces/cargo-workspaces run: cargo build diff --git a/.github/workflows/deploy-api-docs.yml b/.github/workflows/deploy-api-docs.yml index 5e5b8122e..9ebb6688e 100644 --- a/.github/workflows/deploy-api-docs.yml +++ b/.github/workflows/deploy-api-docs.yml @@ -34,7 +34,7 @@ jobs: key: ${{ steps.toolchain.outputs.cachekey }} workspaces: | ${{ inputs.workspace_path }} - cache_on_failure: "true" + cache_on_failure: true - uses: superfly/flyctl-actions/setup-flyctl@master with: version: 0.3.66 From e949b33b97fa924aea0dd48c5b2bbef7cd1a11b5 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 21:20:17 -0800 Subject: [PATCH 18/28] avoid compile time environment variables where appropriate --- examples/latest/sky130_inverter/src/lib.rs | 54 +++++++++++++------ examples/latest/sky130_inverter/src/tb/cds.rs | 13 +++-- .../latest/sky130_inverter/src/tb/open.rs | 8 ++- tools/magic/src/extract.rs | 4 +- tools/magic/src/lib.rs | 10 +++- tools/magic/src/pex.rs | 4 +- 6 files changed, 59 insertions(+), 34 deletions(-) diff --git a/examples/latest/sky130_inverter/src/lib.rs b/examples/latest/sky130_inverter/src/lib.rs index e1c897dd3..330bbaeed 100644 --- a/examples/latest/sky130_inverter/src/lib.rs +++ b/examples/latest/sky130_inverter/src/lib.rs @@ -1,3 +1,5 @@ +use std::path::PathBuf; + // begin-code-snippet imports use sky130::Sky130; use sky130::mos::{Nfet01v8, Pfet01v8}; @@ -61,23 +63,42 @@ impl Schematic for Inverter { // end-code-snippet inverter-schematic // begin-code-snippet open-constants -pub const SKY130_MAGIC_TECH_FILE: &str = - concat!(env!("OPEN_PDKS_ROOT"), "/sky130/magic/sky130.tech"); -pub const SKY130_NETGEN_SETUP_FILE: &str = - concat!(env!("OPEN_PDKS_ROOT"), "/sky130/netgen/sky130_setup.tcl"); +pub fn open_pdks_root() -> PathBuf { + PathBuf::from( + std::env::var("OPEN_PDKS_ROOT") + .expect("OPEN_PDKS_ROOT environment variable must be defined"), + ) +} +pub fn sky130_magic_tech_file() -> PathBuf { + open_pdks_root().join("sky130/magic/sky130.tech") +} +pub fn sky130_netgen_setup_file() -> PathBuf { + open_pdks_root().join("sky130/netgen/sky130_setup.tcl") +} // end-code-snippet open-constants // begin-code-snippet cds-constants -pub const SKY130_DRC: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_DRC"); -pub const SKY130_DRC_RULES_PATH: &str = concat!( - env!("SKY130_CDS_PDK_ROOT"), - "/Sky130_DRC/sky130_rev_0.0_1.0.drc.pvl", -); -pub const SKY130_LVS: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS"); -pub const SKY130_LVS_RULES_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS/sky130.lvs.pvl",); -pub const SKY130_TECHNOLOGY_DIR: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/quantus/extraction/typical",); +pub fn sky130_cds_pdk_root() -> PathBuf { + PathBuf::from( + std::env::var("SKY130_CDS_PDK_ROOT") + .expect("SKY130_CDS_PDK_ROOT environment variable must be defined"), + ) +} +pub fn sky130_drc() -> PathBuf { + sky130_cds_pdk_root().join("Sky130_DRC") +} +pub fn sky130_drc_rules_path() -> PathBuf { + sky130_drc().join("sky130_rev_0.0_1.0.drc.pvl") +} +pub fn sky130_lvs() -> PathBuf { + sky130_cds_pdk_root().join("Sky130_LVS") +} +pub fn sky130_lvs_rules_path() -> PathBuf { + sky130_lvs().join("sky130.lvs.pvl") +} +pub fn sky130_technology_dir() -> PathBuf { + sky130_cds_pdk_root().join("quantus/extraction/typical") +} // end-code-snippet cds-constants // begin-code-snippet sky130-open-ctx @@ -92,7 +113,7 @@ pub const SKY130_TECHNOLOGY_DIR: &str = /// or if the value of that variable is not a valid UTF-8 string. pub fn sky130_open_ctx() -> Context { let pdk_root = std::env::var("SKY130_OPEN_PDK_ROOT") - .expect("the SKY130_OPEN_PDK_ROOT environment variable must be set"); + .expect("SKY130_OPEN_PDK_ROOT environment variable must be defined"); Context::builder() .install(ngspice::Ngspice::default()) .install(Sky130::open(pdk_root)) @@ -111,8 +132,7 @@ pub fn sky130_open_ctx() -> Context { /// Panics if the `SKY130_CDS_PDK_ROOT` environment variable is not set, /// or if the value of that variable is not a valid UTF-8 string. pub fn sky130_cds_ctx() -> Context { - let pdk_root = std::env::var("SKY130_CDS_PDK_ROOT") - .expect("the SKY130_CDS_PDK_ROOT environment variable must be set"); + let pdk_root = sky130_cds_pdk_root(); Context::builder() .install(spectre::Spectre::default()) .install(Sky130::cds_only(pdk_root)) diff --git a/examples/latest/sky130_inverter/src/tb/cds.rs b/examples/latest/sky130_inverter/src/tb/cds.rs index 386a2263b..eab38199f 100644 --- a/examples/latest/sky130_inverter/src/tb/cds.rs +++ b/examples/latest/sky130_inverter/src/tb/cds.rs @@ -1,9 +1,9 @@ // begin-code-snippet imports use crate::Inverter; use crate::InverterIoKind; -use crate::SKY130_LVS; -use crate::SKY130_LVS_RULES_PATH; -use crate::SKY130_TECHNOLOGY_DIR; +use crate::sky130_lvs; +use crate::sky130_lvs_rules_path; +use crate::sky130_technology_dir; use quantus::pex::Pex; use rust_decimal::prelude::ToPrimitive; @@ -16,7 +16,6 @@ use spectre::analysis::tran::Tran; use spectre::blocks::{Pulse, Vsource}; use spice::Spice; use std::path::Path; -use std::path::PathBuf; use std::sync::Arc; use substrate::block::Block; use substrate::context::Context; @@ -295,9 +294,9 @@ impl InverterDesign { gds_path: work_dir.join("layout.gds"), layout_cell_name: dut.name(), work_dir, - lvs_rules_dir: PathBuf::from(SKY130_LVS), - lvs_rules_path: PathBuf::from(SKY130_LVS_RULES_PATH), - technology_dir: PathBuf::from(SKY130_TECHNOLOGY_DIR), + lvs_rules_dir: sky130_lvs(), + lvs_rules_path: sky130_lvs_rules_path(), + technology_dir: sky130_technology_dir(), }) } else { InverterDut::Schematic(dut) diff --git a/examples/latest/sky130_inverter/src/tb/open.rs b/examples/latest/sky130_inverter/src/tb/open.rs index d69d89450..cca52f279 100644 --- a/examples/latest/sky130_inverter/src/tb/open.rs +++ b/examples/latest/sky130_inverter/src/tb/open.rs @@ -1,8 +1,7 @@ // begin-code-snippet imports use crate::Inverter; use crate::InverterIoKind; -use crate::SKY130_MAGIC_TECH_FILE; -use crate::SKY130_NETGEN_SETUP_FILE; +use crate::{sky130_magic_tech_file, sky130_netgen_setup_file}; use magic_netgen::Pex; use ngspice::Ngspice; @@ -14,7 +13,6 @@ use sky130::corner::Sky130Corner; use sky130::layout::to_gds; use spice::Spice; use std::path::Path; -use std::path::PathBuf; use std::sync::Arc; use substrate::block::Block; use substrate::context::Context; @@ -293,8 +291,8 @@ impl InverterDesign { gds_path: work_dir.join("layout.gds"), layout_cell_name: dut.name(), work_dir, - magic_tech_file_path: PathBuf::from(SKY130_MAGIC_TECH_FILE), - netgen_setup_file_path: PathBuf::from(SKY130_NETGEN_SETUP_FILE), + magic_tech_file_path: sky130_magic_tech_file(), + netgen_setup_file_path: sky130_netgen_setup_file(), }) } else { InverterDut::Schematic(dut) diff --git a/tools/magic/src/extract.rs b/tools/magic/src/extract.rs index de81d71bc..ce75d4cc2 100644 --- a/tools/magic/src/extract.rs +++ b/tools/magic/src/extract.rs @@ -92,7 +92,7 @@ pub fn run_extract(params: &ExtractParams) -> Result<(), Error> { #[cfg(test)] mod tests { use crate::extract::*; - use crate::tests::{COLBUF_LAYOUT_PATH, SKY130_TECH_FILE, TEST_BUILD_PATH}; + use crate::tests::{COLBUF_LAYOUT_PATH, TEST_BUILD_PATH, sky130_tech_file}; use std::path::PathBuf; #[test] @@ -107,7 +107,7 @@ mod tests { work_dir: &work_dir, gds_path: &gds_path, cell_name: "test_col_inv_array", - tech_file_path: &PathBuf::from(SKY130_TECH_FILE), + tech_file_path: &sky130_tech_file(), netlist_path: &netlist_path, })?; diff --git a/tools/magic/src/lib.rs b/tools/magic/src/lib.rs index f3cae4bf5..0528a6b2e 100644 --- a/tools/magic/src/lib.rs +++ b/tools/magic/src/lib.rs @@ -24,6 +24,8 @@ lazy_static! { #[cfg(test)] mod tests { + use std::path::PathBuf; + pub const TEST_BUILD_PATH: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/build"); pub const COLBUF_LAYOUT_PATH: &str = concat!( env!("CARGO_MANIFEST_DIR"), @@ -33,5 +35,11 @@ mod tests { env!("CARGO_MANIFEST_DIR"), "/examples/gds/inverter_licon8.gds" ); - pub const SKY130_TECH_FILE: &str = concat!(env!("OPEN_PDKS_ROOT"), "/sky130/magic/sky130.tech"); + pub fn sky130_tech_file() -> PathBuf { + PathBuf::from( + std::env::var("OPEN_PDKS_ROOT") + .expect("OPEN_PDKS_ROOT environment variable must be defined"), + ) + .join("sky130/magic/sky130.tech") + } } diff --git a/tools/magic/src/pex.rs b/tools/magic/src/pex.rs index 1046c2f9d..7e84a0ea1 100644 --- a/tools/magic/src/pex.rs +++ b/tools/magic/src/pex.rs @@ -90,7 +90,7 @@ pub fn run_pex(params: &PexParams) -> Result<(), Error> { #[cfg(test)] mod tests { use crate::pex::*; - use crate::tests::{COLBUF_LAYOUT_PATH, SKY130_TECH_FILE, TEST_BUILD_PATH}; + use crate::tests::{COLBUF_LAYOUT_PATH, TEST_BUILD_PATH, sky130_tech_file}; use std::path::PathBuf; #[test] @@ -105,7 +105,7 @@ mod tests { work_dir: &work_dir, gds_path: &gds_path, cell_name: "test_col_buffer_array", - tech_file_path: &PathBuf::from(SKY130_TECH_FILE), + tech_file_path: &sky130_tech_file(), pex_netlist_path: &pex_netlist_path, })?; From eca6d1c71032e7c1ba24f387b2a2c02de47abcdc Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Tue, 27 Jan 2026 21:21:53 -0800 Subject: [PATCH 19/28] remove unecessary installation steps --- .github/workflows/check-repo.yml | 1 - .github/workflows/check-workspace.yml | 1 - .github/workflows/ci-main.yml | 4 ---- .github/workflows/deploy-api-docs.yml | 5 ----- 4 files changed, 11 deletions(-) diff --git a/.github/workflows/check-repo.yml b/.github/workflows/check-repo.yml index dcfb2b63f..505b6b2b1 100644 --- a/.github/workflows/check-repo.yml +++ b/.github/workflows/check-repo.yml @@ -32,7 +32,6 @@ jobs: uses: arduino/setup-protoc@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@cargo-hack - uses: Swatinem/rust-cache@v2 with: diff --git a/.github/workflows/check-workspace.yml b/.github/workflows/check-workspace.yml index 76b80e438..09153027e 100644 --- a/.github/workflows/check-workspace.yml +++ b/.github/workflows/check-workspace.yml @@ -23,7 +23,6 @@ jobs: uses: arduino/setup-protoc@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@cargo-hack - uses: Swatinem/rust-cache@v2 with: diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index eae8fc6fe..ce1edb255 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -61,10 +61,6 @@ jobs: with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Install Rust - uses: dtolnay/rust-toolchain@stable - id: toolchain - with: - toolchain: stable - name: Clone `cargo-workspaces` uses: actions/checkout@v4 with: diff --git a/.github/workflows/deploy-api-docs.yml b/.github/workflows/deploy-api-docs.yml index 9ebb6688e..ba3fcadd3 100644 --- a/.github/workflows/deploy-api-docs.yml +++ b/.github/workflows/deploy-api-docs.yml @@ -24,11 +24,6 @@ jobs: uses: arduino/setup-protoc@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - id: toolchain - with: - toolchain: stable - uses: Swatinem/rust-cache@v2 with: key: ${{ steps.toolchain.outputs.cachekey }} From 180b28ade3bab514192b536ff0b3efdc9dc3822f Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Wed, 28 Jan 2026 08:04:35 -0800 Subject: [PATCH 20/28] consolidate path declarations and use runtime environment variables --- Cargo.lock | 3 + .../getting-started/inverter/assets/index.md | 4 - examples/latest/colbuf/Cargo.toml | 1 + examples/latest/colbuf/src/lib.rs | 34 +++---- examples/latest/sky130_inverter/src/lib.rs | 47 +--------- examples/latest/sky130_inverter/src/tb/cds.rs | 6 +- .../latest/sky130_inverter/src/tb/open.rs | 3 +- examples/latest/strongarm/src/tech/sky130.rs | 38 ++++---- examples/release/colbuf/src/lib.rs | 89 ++++++++++++++----- examples/release/sky130_inverter/src/lib.rs | 49 +++++++--- .../release/sky130_inverter/src/tb/cds.rs | 13 ++- .../release/sky130_inverter/src/tb/open.rs | 7 +- pdks/sky130/src/lib.rs | 70 +++++++++++---- tools/netgen/src/compare.rs | 6 +- tools/netgen/src/lib.rs | 11 ++- tools/pegasus/Cargo.toml | 3 + tools/pegasus/src/drc.rs | 24 ++--- tools/pegasus/src/lib.rs | 8 -- tools/quantus/Cargo.toml | 1 + tools/quantus/src/lib.rs | 7 -- tools/quantus/src/pex.rs | 14 ++- 21 files changed, 238 insertions(+), 200 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ca43cb2f2..d64dc7b66 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -547,6 +547,7 @@ dependencies = [ "quantus", "rust_decimal", "rust_decimal_macros", + "sky130", "spectre", "spice", "substrate", @@ -2053,6 +2054,7 @@ dependencies = [ "lazy_static", "regex", "serde", + "sky130", "tera", ] @@ -2429,6 +2431,7 @@ dependencies = [ "rust_decimal", "scir", "serde", + "sky130", "spice", "substrate", "tera", diff --git a/docs/docusaurus/docs/getting-started/inverter/assets/index.md b/docs/docusaurus/docs/getting-started/inverter/assets/index.md index dd2118eab..d2bec48f2 100644 --- a/docs/docusaurus/docs/getting-started/inverter/assets/index.md +++ b/docs/docusaurus/docs/getting-started/inverter/assets/index.md @@ -54,10 +54,6 @@ Replace the content of `src/lib.rs` with the following: {inverterMod} -Also, add the following constants: - -{inverterMod} - ### EDA Tools { props.open ? : } diff --git a/examples/latest/colbuf/Cargo.toml b/examples/latest/colbuf/Cargo.toml index 56c1cb198..03534b6a3 100644 --- a/examples/latest/colbuf/Cargo.toml +++ b/examples/latest/colbuf/Cargo.toml @@ -15,4 +15,5 @@ rust_decimal = "1.37.1" rust_decimal_macros = "1.37.1" [dev-dependencies] +sky130 = { version = "0.10.2", registry = "substrate", path = "../../../pdks/sky130" } approx = "0.5" diff --git a/examples/latest/colbuf/src/lib.rs b/examples/latest/colbuf/src/lib.rs index d63b3ea40..8514a5965 100644 --- a/examples/latest/colbuf/src/lib.rs +++ b/examples/latest/colbuf/src/lib.rs @@ -263,6 +263,10 @@ mod tests { use std::{path::PathBuf, sync::Arc}; use approx::assert_relative_eq; + use sky130::{ + sky130_cds_tt_model_path, sky130_magic_tech_file, sky130_netgen_setup_file, + sky130_ngspice_model_path, + }; use spectre::{ErrPreset, Options, analysis::tran::Tran}; use substrate::{ context::Context, @@ -271,30 +275,14 @@ mod tests { use super::*; pub const TEST_BUILD_PATH: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/build"); - // TODO move these to sky130 crate - pub const SKY130_LVS: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS"); - pub const SKY130_LVS_RULES_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS/sky130.lvs.pvl"); - pub const SKY130_TECHNOLOGY_DIR: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/quantus/extraction/typical"); - pub const SKY130_CDS_TT_MODEL_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/models/corners/tt.spice"); pub const COLBUF_LAYOUT_PATH: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/test_col_buffer_array.gds"); - pub const SKY130_MAGIC_TECH_FILE: &str = - concat!(env!("OPEN_PDKS_ROOT"), "/sky130/magic/sky130.tech"); - pub const SKY130_NETGEN_SETUP_FILE: &str = - concat!(env!("OPEN_PDKS_ROOT"), "/sky130/netgen/sky130_setup.tcl"); - pub const SKY130_NGSPICE_MODEL_PATH: &str = concat!( - env!("SKY130_OPEN_PDK_ROOT"), - "/libraries/sky130_fd_pr/latest/models/sky130.lib.spice" - ); #[test] fn test_sim_cadence_pex() { fn run(sim: SimController) -> f64 { let mut opts = Options::default(); - opts.include(PathBuf::from(SKY130_CDS_TT_MODEL_PATH)); + opts.include(sky130_cds_tt_model_path()); let out = sim .simulate( opts, @@ -324,9 +312,9 @@ mod tests { gds_path: layout_path, layout_cell_name: "test_col_buffer_array".into(), work_dir, - lvs_rules_path: PathBuf::from(SKY130_LVS_RULES_PATH), - lvs_rules_dir: PathBuf::from(SKY130_LVS), - technology_dir: PathBuf::from(SKY130_TECHNOLOGY_DIR), + lvs_rules_path: sky130_lvs_rules_path(), + lvs_rules_dir: sky130_lvs(), + technology_dir: sky130_technology_dir(), }, }, &sim_dir, @@ -340,7 +328,7 @@ mod tests { fn test_sim_open_pex() { fn run(sim: SimController) -> f64 { let mut opts = ngspice::Options::default(); - opts.include_section(PathBuf::from(SKY130_NGSPICE_MODEL_PATH), "tt"); + opts.include_section(sky130_ngspice_model_path(), "tt"); let out = sim .simulate( opts, @@ -370,8 +358,8 @@ mod tests { gds_path: layout_path, layout_cell_name: "test_col_buffer_array".into(), work_dir, - magic_tech_file_path: PathBuf::from(SKY130_MAGIC_TECH_FILE), - netgen_setup_file_path: PathBuf::from(SKY130_NETGEN_SETUP_FILE), + magic_tech_file_path: sky130_magic_tech_file(), + netgen_setup_file_path: sky130_netgen_setup_file(), }, }, &sim_dir, diff --git a/examples/latest/sky130_inverter/src/lib.rs b/examples/latest/sky130_inverter/src/lib.rs index 330bbaeed..38868de3f 100644 --- a/examples/latest/sky130_inverter/src/lib.rs +++ b/examples/latest/sky130_inverter/src/lib.rs @@ -1,8 +1,6 @@ -use std::path::PathBuf; - // begin-code-snippet imports -use sky130::Sky130; use sky130::mos::{Nfet01v8, Pfet01v8}; +use sky130::{Sky130, sky130_cds_pdk_root, sky130_open_pdk_root}; use substrate::block::Block; use substrate::context::Context; use substrate::error::Result; @@ -62,45 +60,6 @@ impl Schematic for Inverter { } // end-code-snippet inverter-schematic -// begin-code-snippet open-constants -pub fn open_pdks_root() -> PathBuf { - PathBuf::from( - std::env::var("OPEN_PDKS_ROOT") - .expect("OPEN_PDKS_ROOT environment variable must be defined"), - ) -} -pub fn sky130_magic_tech_file() -> PathBuf { - open_pdks_root().join("sky130/magic/sky130.tech") -} -pub fn sky130_netgen_setup_file() -> PathBuf { - open_pdks_root().join("sky130/netgen/sky130_setup.tcl") -} -// end-code-snippet open-constants - -// begin-code-snippet cds-constants -pub fn sky130_cds_pdk_root() -> PathBuf { - PathBuf::from( - std::env::var("SKY130_CDS_PDK_ROOT") - .expect("SKY130_CDS_PDK_ROOT environment variable must be defined"), - ) -} -pub fn sky130_drc() -> PathBuf { - sky130_cds_pdk_root().join("Sky130_DRC") -} -pub fn sky130_drc_rules_path() -> PathBuf { - sky130_drc().join("sky130_rev_0.0_1.0.drc.pvl") -} -pub fn sky130_lvs() -> PathBuf { - sky130_cds_pdk_root().join("Sky130_LVS") -} -pub fn sky130_lvs_rules_path() -> PathBuf { - sky130_lvs().join("sky130.lvs.pvl") -} -pub fn sky130_technology_dir() -> PathBuf { - sky130_cds_pdk_root().join("quantus/extraction/typical") -} -// end-code-snippet cds-constants - // begin-code-snippet sky130-open-ctx /// Create a new Substrate context for the SKY130 open PDK. /// @@ -112,11 +71,9 @@ pub fn sky130_technology_dir() -> PathBuf { /// Panics if the `SKY130_OPEN_PDK_ROOT` environment variable is not set, /// or if the value of that variable is not a valid UTF-8 string. pub fn sky130_open_ctx() -> Context { - let pdk_root = std::env::var("SKY130_OPEN_PDK_ROOT") - .expect("SKY130_OPEN_PDK_ROOT environment variable must be defined"); Context::builder() .install(ngspice::Ngspice::default()) - .install(Sky130::open(pdk_root)) + .install(Sky130::open(sky130_open_pdk_root())) .build() } // end-code-snippet sky130-open-ctx diff --git a/examples/latest/sky130_inverter/src/tb/cds.rs b/examples/latest/sky130_inverter/src/tb/cds.rs index eab38199f..c37230627 100644 --- a/examples/latest/sky130_inverter/src/tb/cds.rs +++ b/examples/latest/sky130_inverter/src/tb/cds.rs @@ -1,9 +1,6 @@ // begin-code-snippet imports use crate::Inverter; use crate::InverterIoKind; -use crate::sky130_lvs; -use crate::sky130_lvs_rules_path; -use crate::sky130_technology_dir; use quantus::pex::Pex; use rust_decimal::prelude::ToPrimitive; @@ -11,6 +8,9 @@ use rust_decimal_macros::dec; use sky130::Sky130CdsSchema; use sky130::corner::Sky130Corner; use sky130::layout::to_gds; +use sky130::sky130_lvs; +use sky130::sky130_lvs_rules_path; +use sky130::sky130_technology_dir; use spectre::Spectre; use spectre::analysis::tran::Tran; use spectre::blocks::{Pulse, Vsource}; diff --git a/examples/latest/sky130_inverter/src/tb/open.rs b/examples/latest/sky130_inverter/src/tb/open.rs index cca52f279..673f72281 100644 --- a/examples/latest/sky130_inverter/src/tb/open.rs +++ b/examples/latest/sky130_inverter/src/tb/open.rs @@ -1,7 +1,6 @@ // begin-code-snippet imports use crate::Inverter; use crate::InverterIoKind; -use crate::{sky130_magic_tech_file, sky130_netgen_setup_file}; use magic_netgen::Pex; use ngspice::Ngspice; @@ -11,6 +10,8 @@ use rust_decimal_macros::dec; use sky130::Sky130OpenSchema; use sky130::corner::Sky130Corner; use sky130::layout::to_gds; +use sky130::sky130_magic_tech_file; +use sky130::sky130_netgen_setup_file; use spice::Spice; use std::path::Path; use std::sync::Arc; diff --git a/examples/latest/strongarm/src/tech/sky130.rs b/examples/latest/strongarm/src/tech/sky130.rs index 8719140f2..4d234ced5 100644 --- a/examples/latest/strongarm/src/tech/sky130.rs +++ b/examples/latest/strongarm/src/tech/sky130.rs @@ -292,6 +292,10 @@ mod tests { use scir::netlist::ConvertibleNetlister; use sky130::corner::Sky130Corner; use sky130::{Sky130, Sky130CdsSchema, layout::to_gds}; + use sky130::{ + sky130_cds_pdk_root, sky130_drc_rules_path, sky130_lvs, sky130_lvs_rules_path, + sky130_technology_dir, + }; use spice::{Spice, netlist::NetlistOptions}; use std::path::{Path, PathBuf}; use std::sync::Arc; @@ -301,17 +305,6 @@ mod tests { use substrate::simulation::waveform::TimeWaveform; use substrate::{block::Block, schematic::ConvertSchema}; - pub const SKY130_DRC: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_DRC"); - pub const SKY130_DRC_RULES_PATH: &str = concat!( - env!("SKY130_CDS_PDK_ROOT"), - "/Sky130_DRC/sky130_rev_0.0_1.0.drc.pvl", - ); - pub const SKY130_LVS: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS"); - pub const SKY130_LVS_RULES_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS/sky130.lvs.pvl",); - pub const SKY130_TECHNOLOGY_DIR: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/quantus/extraction/typical",); - pub const STRONGARM_PARAMS: StrongArmParams = StrongArmParams { nmos_kind: MosKind::Nom, pmos_kind: MosKind::Nom, @@ -454,8 +447,7 @@ mod tests { }; pub fn sky130_cds_ctx() -> Context { - let pdk_root = std::env::var("SKY130_CDS_PDK_ROOT") - .expect("the SKY130_CDS_PDK_ROOT environment variable must be set"); + let pdk_root = sky130_cds_pdk_root(); Context::builder() .install(spectre::Spectre::default()) .install(Sky130::cds_only(pdk_root)) @@ -514,9 +506,9 @@ mod tests { gds_path: work_dir.join("layout.gds"), layout_cell_name: dut.name(), work_dir: work_dir.clone(), - lvs_rules_dir: PathBuf::from(SKY130_LVS), - lvs_rules_path: PathBuf::from(SKY130_LVS_RULES_PATH), - technology_dir: PathBuf::from(SKY130_TECHNOLOGY_DIR), + lvs_rules_dir: sky130_lvs(), + lvs_rules_path: sky130_lvs_rules_path(), + technology_dir: sky130_technology_dir(), }, vinp, vinn, @@ -587,9 +579,9 @@ mod tests { gds_path: work_dir.join("layout.gds"), layout_cell_name: dut.name(), work_dir: work_dir.join("pex"), - lvs_rules_dir: PathBuf::from(SKY130_LVS), - lvs_rules_path: PathBuf::from(SKY130_LVS_RULES_PATH), - technology_dir: PathBuf::from(SKY130_TECHNOLOGY_DIR), + lvs_rules_dir: sky130_lvs(), + lvs_rules_path: sky130_lvs_rules_path(), + technology_dir: sky130_technology_dir(), }, vinp, vinn, @@ -784,8 +776,8 @@ mod tests { work_dir: &drc_dir, layout_path: &gds_path, cell_name: &block.name(), - rules_dir: &PathBuf::from(SKY130_DRC), - rules_path: &PathBuf::from(SKY130_DRC_RULES_PATH), + rules_dir: &sky130_drc(), + rules_path: &sky130_drc_rules_path(), }) .expect("failed to run drc"); @@ -806,8 +798,8 @@ mod tests { layout_cell_name: &block.name(), source_paths: &[netlist_path], source_cell_name: &block.name(), - rules_dir: &PathBuf::from(SKY130_LVS), - rules_path: &PathBuf::from(SKY130_LVS_RULES_PATH), + rules_dir: &sky130_lvs(), + rules_path: &sky130_lvs_rules_path(), }) .expect("failed to run lvs"); diff --git a/examples/release/colbuf/src/lib.rs b/examples/release/colbuf/src/lib.rs index 02f970a85..7fe10a08e 100644 --- a/examples/release/colbuf/src/lib.rs +++ b/examples/release/colbuf/src/lib.rs @@ -271,30 +271,73 @@ mod tests { use super::*; pub const TEST_BUILD_PATH: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/build"); - // TODO move these to sky130 crate - pub const SKY130_LVS: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS"); - pub const SKY130_LVS_RULES_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS/sky130.lvs.pvl"); - pub const SKY130_TECHNOLOGY_DIR: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/quantus/extraction/typical"); - pub const SKY130_CDS_TT_MODEL_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/models/corners/tt.spice"); pub const COLBUF_LAYOUT_PATH: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/test_col_buffer_array.gds"); - pub const SKY130_MAGIC_TECH_FILE: &str = - concat!(env!("OPEN_PDKS_ROOT"), "/sky130/magic/sky130.tech"); - pub const SKY130_NETGEN_SETUP_FILE: &str = - concat!(env!("OPEN_PDKS_ROOT"), "/sky130/netgen/sky130_setup.tcl"); - pub const SKY130_NGSPICE_MODEL_PATH: &str = concat!( - env!("SKY130_OPEN_PDK_ROOT"), - "/libraries/sky130_fd_pr/latest/models/sky130.lib.spice" - ); + + /// Root of the open-source Sky130 PDK. + pub fn sky130_open_pdk_root() -> PathBuf { + PathBuf::from( + std::env::var("SKY130_OPEN_PDK_ROOT") + .expect("SKY130_OPEN_PDK_ROOT environment variable must be defined"), + ) + } + /// Root of the Open-PDKs repo. + pub fn open_pdks_root() -> PathBuf { + PathBuf::from( + std::env::var("OPEN_PDKS_ROOT") + .expect("OPEN_PDKS_ROOT environment variable must be defined"), + ) + } + /// SKY130 magic techfile. + pub fn sky130_magic_tech_file() -> PathBuf { + open_pdks_root().join("sky130/magic/sky130.tech") + } + /// SKY130 netgen setup file. + pub fn sky130_netgen_setup_file() -> PathBuf { + open_pdks_root().join("sky130/netgen/sky130_setup.tcl") + } + /// SKY130 ngspice models. + pub fn sky130_ngspice_model_path() -> PathBuf { + sky130_open_pdk_root().join("libraries/sky130_fd_pr/latest/models/sky130.lib.spice") + } + + /// Root of Cadence SKY130 PDK. + pub fn sky130_cds_pdk_root() -> PathBuf { + PathBuf::from( + std::env::var("SKY130_CDS_PDK_ROOT") + .expect("SKY130_CDS_PDK_ROOT environment variable must be defined"), + ) + } + /// SKY130 Pegasus DRC directory. + pub fn sky130_drc() -> PathBuf { + sky130_cds_pdk_root().join("Sky130_DRC") + } + /// SKY130 Pegasus DRC rules. + pub fn sky130_drc_rules_path() -> PathBuf { + sky130_drc().join("sky130_rev_0.0_1.0.drc.pvl") + } + /// SKY130 Pegasus LVS directory. + pub fn sky130_lvs() -> PathBuf { + sky130_cds_pdk_root().join("Sky130_LVS") + } + /// SKY130 Pegasus LVS rules. + pub fn sky130_lvs_rules_path() -> PathBuf { + sky130_lvs().join("sky130.lvs.pvl") + } + /// SKY130 Quantus technology files. + pub fn sky130_technology_dir() -> PathBuf { + sky130_cds_pdk_root().join("quantus/extraction/typical") + } + /// SKY130 TT model path. + pub fn sky130_cds_tt_model_path() -> PathBuf { + sky130_cds_pdk_root().join("models/corners/tt.spice") + } #[test] fn test_sim_cadence_pex() { fn run(sim: SimController) -> f64 { let mut opts = Options::default(); - opts.include(PathBuf::from(SKY130_CDS_TT_MODEL_PATH)); + opts.include(sky130_cds_tt_model_path()); let out = sim .simulate( opts, @@ -324,9 +367,9 @@ mod tests { gds_path: layout_path, layout_cell_name: "test_col_buffer_array".into(), work_dir, - lvs_rules_path: PathBuf::from(SKY130_LVS_RULES_PATH), - lvs_rules_dir: PathBuf::from(SKY130_LVS), - technology_dir: PathBuf::from(SKY130_TECHNOLOGY_DIR), + lvs_rules_path: sky130_lvs_rules_path(), + lvs_rules_dir: sky130_lvs(), + technology_dir: sky130_technology_dir(), }, }, &sim_dir, @@ -340,7 +383,7 @@ mod tests { fn test_sim_open_pex() { fn run(sim: SimController) -> f64 { let mut opts = ngspice::Options::default(); - opts.include_section(PathBuf::from(SKY130_NGSPICE_MODEL_PATH), "tt"); + opts.include_section(sky130_ngspice_model_path(), "tt"); let out = sim .simulate( opts, @@ -370,8 +413,8 @@ mod tests { gds_path: layout_path, layout_cell_name: "test_col_buffer_array".into(), work_dir, - magic_tech_file_path: PathBuf::from(SKY130_MAGIC_TECH_FILE), - netgen_setup_file_path: PathBuf::from(SKY130_NETGEN_SETUP_FILE), + magic_tech_file_path: sky130_magic_tech_file(), + netgen_setup_file_path: sky130_netgen_setup_file(), }, }, &sim_dir, diff --git a/examples/release/sky130_inverter/src/lib.rs b/examples/release/sky130_inverter/src/lib.rs index 039cdf8dc..4350e8849 100644 --- a/examples/release/sky130_inverter/src/lib.rs +++ b/examples/release/sky130_inverter/src/lib.rs @@ -1,3 +1,5 @@ +use std::path::PathBuf; + // begin-code-snippet imports use sky130::mos::{Nfet01v8, Pfet01v8}; use sky130::Sky130; @@ -60,23 +62,42 @@ impl Schematic for Inverter { // end-code-snippet inverter-schematic // begin-code-snippet open-constants -pub const SKY130_MAGIC_TECH_FILE: &str = - concat!(env!("OPEN_PDKS_ROOT"), "/sky130/magic/sky130.tech"); -pub const SKY130_NETGEN_SETUP_FILE: &str = - concat!(env!("OPEN_PDKS_ROOT"), "/sky130/netgen/sky130_setup.tcl"); +pub fn open_pdks_root() -> PathBuf { + PathBuf::from( + std::env::var("OPEN_PDKS_ROOT") + .expect("OPEN_PDKS_ROOT environment variable must be defined"), + ) +} +pub fn sky130_magic_tech_file() -> PathBuf { + open_pdks_root().join("sky130/magic/sky130.tech") +} +pub fn sky130_netgen_setup_file() -> PathBuf { + open_pdks_root().join("sky130/netgen/sky130_setup.tcl") +} // end-code-snippet open-constants // begin-code-snippet cds-constants -pub const SKY130_DRC: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_DRC"); -pub const SKY130_DRC_RULES_PATH: &str = concat!( - env!("SKY130_CDS_PDK_ROOT"), - "/Sky130_DRC/sky130_rev_0.0_1.0.drc.pvl", -); -pub const SKY130_LVS: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS"); -pub const SKY130_LVS_RULES_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS/sky130.lvs.pvl",); -pub const SKY130_TECHNOLOGY_DIR: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/quantus/extraction/typical",); +pub fn sky130_cds_pdk_root() -> PathBuf { + PathBuf::from( + std::env::var("SKY130_CDS_PDK_ROOT") + .expect("SKY130_CDS_PDK_ROOT environment variable must be defined"), + ) +} +pub fn sky130_drc() -> PathBuf { + sky130_cds_pdk_root().join("Sky130_DRC") +} +pub fn sky130_drc_rules_path() -> PathBuf { + sky130_drc().join("sky130_rev_0.0_1.0.drc.pvl") +} +pub fn sky130_lvs() -> PathBuf { + sky130_cds_pdk_root().join("Sky130_LVS") +} +pub fn sky130_lvs_rules_path() -> PathBuf { + sky130_lvs().join("sky130.lvs.pvl") +} +pub fn sky130_technology_dir() -> PathBuf { + sky130_cds_pdk_root().join("quantus/extraction/typical") +} // end-code-snippet cds-constants // begin-code-snippet sky130-open-ctx diff --git a/examples/release/sky130_inverter/src/tb/cds.rs b/examples/release/sky130_inverter/src/tb/cds.rs index ff57ed3de..feb6c15ef 100644 --- a/examples/release/sky130_inverter/src/tb/cds.rs +++ b/examples/release/sky130_inverter/src/tb/cds.rs @@ -1,9 +1,9 @@ // begin-code-snippet imports +use crate::sky130_lvs; +use crate::sky130_lvs_rules_path; +use crate::sky130_technology_dir; use crate::Inverter; use crate::InverterIoKind; -use crate::SKY130_LVS; -use crate::SKY130_LVS_RULES_PATH; -use crate::SKY130_TECHNOLOGY_DIR; use quantus::pex::Pex; use rust_decimal::prelude::ToPrimitive; @@ -16,7 +16,6 @@ use spectre::blocks::{Pulse, Vsource}; use spectre::Spectre; use spice::Spice; use std::path::Path; -use std::path::PathBuf; use std::sync::Arc; use substrate::block::Block; use substrate::context::Context; @@ -295,9 +294,9 @@ impl InverterDesign { gds_path: work_dir.join("layout.gds"), layout_cell_name: dut.name(), work_dir, - lvs_rules_dir: PathBuf::from(SKY130_LVS), - lvs_rules_path: PathBuf::from(SKY130_LVS_RULES_PATH), - technology_dir: PathBuf::from(SKY130_TECHNOLOGY_DIR), + lvs_rules_dir: sky130_lvs(), + lvs_rules_path: sky130_lvs_rules_path(), + technology_dir: sky130_technology_dir(), }) } else { InverterDut::Schematic(dut) diff --git a/examples/release/sky130_inverter/src/tb/open.rs b/examples/release/sky130_inverter/src/tb/open.rs index 229b9d3cb..f306e3cea 100644 --- a/examples/release/sky130_inverter/src/tb/open.rs +++ b/examples/release/sky130_inverter/src/tb/open.rs @@ -1,8 +1,7 @@ // begin-code-snippet imports use crate::Inverter; use crate::InverterIoKind; -use crate::SKY130_MAGIC_TECH_FILE; -use crate::SKY130_NETGEN_SETUP_FILE; +use crate::{sky130_magic_tech_file, sky130_netgen_setup_file}; use magic_netgen::Pex; use ngspice::blocks::{Pulse, Vsource}; @@ -293,8 +292,8 @@ impl InverterDesign { gds_path: work_dir.join("layout.gds"), layout_cell_name: dut.name(), work_dir, - magic_tech_file_path: PathBuf::from(SKY130_MAGIC_TECH_FILE), - netgen_setup_file_path: PathBuf::from(SKY130_NETGEN_SETUP_FILE), + magic_tech_file_path: sky130_magic_tech_file(), + netgen_setup_file_path: sky130_netgen_setup_file(), }) } else { InverterDut::Schematic(dut) diff --git a/pdks/sky130/src/lib.rs b/pdks/sky130/src/lib.rs index d4cc06722..6a9dab01d 100644 --- a/pdks/sky130/src/lib.rs +++ b/pdks/sky130/src/lib.rs @@ -36,24 +36,64 @@ pub mod stdcells; #[cfg(test)] mod tests; +/// Root of the open-source Sky130 PDK. +pub fn sky130_open_pdk_root() -> PathBuf { + PathBuf::from( + std::env::var("SKY130_OPEN_PDK_ROOT") + .expect("SKY130_OPEN_PDK_ROOT environment variable must be defined"), + ) +} +/// Root of the Open-PDKs repo. +pub fn open_pdks_root() -> PathBuf { + PathBuf::from( + std::env::var("OPEN_PDKS_ROOT") + .expect("OPEN_PDKS_ROOT environment variable must be defined"), + ) +} +/// SKY130 magic techfile. +pub fn sky130_magic_tech_file() -> PathBuf { + open_pdks_root().join("sky130/magic/sky130.tech") +} +/// SKY130 netgen setup file. +pub fn sky130_netgen_setup_file() -> PathBuf { + open_pdks_root().join("sky130/netgen/sky130_setup.tcl") +} +/// SKY130 ngspice models. +pub fn sky130_ngspice_model_path() -> PathBuf { + sky130_open_pdk_root().join("libraries/sky130_fd_pr/latest/models/sky130.lib.spice") +} + +/// Root of Cadence SKY130 PDK. +pub fn sky130_cds_pdk_root() -> PathBuf { + PathBuf::from( + std::env::var("SKY130_CDS_PDK_ROOT") + .expect("SKY130_CDS_PDK_ROOT environment variable must be defined"), + ) +} +/// SKY130 Pegasus DRC directory. +pub fn sky130_drc() -> PathBuf { + sky130_cds_pdk_root().join("Sky130_DRC") +} +/// SKY130 Pegasus DRC rules. +pub fn sky130_drc_rules_path() -> PathBuf { + sky130_drc().join("sky130_rev_0.0_1.0.drc.pvl") +} /// SKY130 Pegasus LVS directory. -pub const SKY130_LVS: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS"); +pub fn sky130_lvs() -> PathBuf { + sky130_cds_pdk_root().join("Sky130_LVS") +} /// SKY130 Pegasus LVS rules. -pub const SKY130_LVS_RULES_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS/sky130.lvs.pvl"); -/// SKY130 Quantus technology files. -pub const SKY130_TECHNOLOGY_DIR: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/quantus/extraction/typical"); +pub fn sky130_lvs_rules_path() -> PathBuf { + sky130_lvs().join("sky130.lvs.pvl") +} /// SKY130 Quantus technology files. -pub const SKY130_CDS_TT_MODEL_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/models/corners/tt.spice"); -/// SKY130 Pegasus DRC directory. -pub const SKY130_DRC: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_DRC"); -/// SKY130 Pegasus DRC rules. -pub const SKY130_DRC_RULES_PATH: &str = concat!( - env!("SKY130_CDS_PDK_ROOT"), - "/Sky130_DRC/sky130_rev_0.0_1.0.drc.pvl", -); +pub fn sky130_technology_dir() -> PathBuf { + sky130_cds_pdk_root().join("quantus/extraction/typical") +} +/// SKY130 TT model path. +pub fn sky130_cds_tt_model_path() -> PathBuf { + sky130_cds_pdk_root().join("models/corners/tt.spice") +} /// A primitive of the Sky 130 PDK. #[derive(Debug, Clone)] diff --git a/tools/netgen/src/compare.rs b/tools/netgen/src/compare.rs index 160e63310..7df03fb53 100644 --- a/tools/netgen/src/compare.rs +++ b/tools/netgen/src/compare.rs @@ -155,7 +155,7 @@ fn process_netgen_node_name(node: &str) -> ArcStr { #[cfg(test)] mod tests { use crate::compare::*; - use crate::tests::{EXAMPLES_PATH, SKY130_SETUP_FILE, TEST_BUILD_PATH}; + use crate::tests::{EXAMPLES_PATH, TEST_BUILD_PATH, sky130_setup_file}; use std::path::PathBuf; #[test] @@ -163,7 +163,7 @@ mod tests { let netlist1_path = PathBuf::from(EXAMPLES_PATH).join("col_inv_array.spice"); let netlist2_path = PathBuf::from(EXAMPLES_PATH).join("col_inv_array.layout.spice"); let work_dir = PathBuf::from(TEST_BUILD_PATH).join("test_compare_with_node_matching"); - let setup_file_path = PathBuf::from(SKY130_SETUP_FILE); + let setup_file_path = sky130_setup_file(); let nodes = [ "din_1", "din_b_2", "din_24", "din_21", "din_b_21", "vdd", "vss", ]; @@ -190,7 +190,7 @@ mod tests { let netlist1_path = PathBuf::from(EXAMPLES_PATH).join("col_inv_array.spice"); let netlist2_path = PathBuf::from(EXAMPLES_PATH).join("col_inv_array.bad.spice"); let work_dir = PathBuf::from(TEST_BUILD_PATH).join("test_compare_mismatched"); - let setup_file_path = PathBuf::from(SKY130_SETUP_FILE); + let setup_file_path = sky130_setup_file(); let params = CompareParams { netlist1_path: &netlist1_path, diff --git a/tools/netgen/src/lib.rs b/tools/netgen/src/lib.rs index 5ed3b7dc6..220ae2979 100644 --- a/tools/netgen/src/lib.rs +++ b/tools/netgen/src/lib.rs @@ -22,8 +22,15 @@ lazy_static! { #[cfg(test)] mod tests { + use std::path::PathBuf; + pub const TEST_BUILD_PATH: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/build"); pub const EXAMPLES_PATH: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/examples"); - pub const SKY130_SETUP_FILE: &str = - concat!(env!("OPEN_PDKS_ROOT"), "/sky130/netgen/sky130_setup.tcl"); + pub fn sky130_setup_file() -> PathBuf { + PathBuf::from( + std::env::var("OPEN_PDKS_ROOT") + .expect("OPEN_PDKS_ROOT environment variable must be defined"), + ) + .join("sky130/netgen/sky130_setup.tcl") + } } diff --git a/tools/pegasus/Cargo.toml b/tools/pegasus/Cargo.toml index 211934ac1..e307aee92 100644 --- a/tools/pegasus/Cargo.toml +++ b/tools/pegasus/Cargo.toml @@ -9,3 +9,6 @@ lazy_static = "1" serde = { version = "1", features = ["derive"] } anyhow = "1" regex = "1" + +[dev-dependencies] +sky130 = { version = "0.10.2", registry = "substrate", path = "../../pdks/sky130" } diff --git a/tools/pegasus/src/drc.rs b/tools/pegasus/src/drc.rs index c8d683b35..3169b1c9b 100644 --- a/tools/pegasus/src/drc.rs +++ b/tools/pegasus/src/drc.rs @@ -1,5 +1,6 @@ +use crate::TEMPLATES; use crate::utils::execute_run_script; -use crate::{RuleCheck, TEMPLATES, error::Error}; +use crate::{RuleCheck, error::Error}; use regex::Regex; use serde::Serialize; use std::fs; @@ -163,12 +164,15 @@ pub fn run_drc(params: &DrcParams) -> Result { #[cfg(test)] mod tests { - use crate::RuleCheck; - use crate::drc::{DrcParams, parse_pegasus_drc_results, run_drc, write_drc_files}; - use crate::tests::{EXAMPLES_PATH, SKY130_DRC, SKY130_DRC_RULES_PATH, TEST_BUILD_PATH}; + use crate::drc::{DrcParams, parse_pegasus_drc_results, write_drc_files}; + use crate::tests::TEST_BUILD_PATH; + use crate::{RuleCheck, tests::EXAMPLES_PATH}; + use std::collections::HashMap; use std::path::PathBuf; + use sky130::{sky130_drc, sky130_drc_rules_path}; + #[test] fn test_write_drc_run_file() -> anyhow::Result<()> { let layout_path = PathBuf::from(EXAMPLES_PATH).join("gds/test_sky130_and3.gds"); @@ -178,8 +182,8 @@ mod tests { work_dir: &work_dir, layout_path: &layout_path, cell_name: "sky130_and3", - rules_dir: &PathBuf::from(SKY130_DRC), - rules_path: &PathBuf::from(SKY130_DRC_RULES_PATH), + rules_dir: &sky130_drc(), + rules_path: &sky130_drc_rules_path(), })?; Ok(()) } @@ -218,8 +222,8 @@ mod tests { work_dir: &work_dir, layout_path: &layout_path, cell_name: "col_peripherals", - rules_dir: &PathBuf::from(SKY130_DRC), - rules_path: &PathBuf::from(SKY130_DRC_RULES_PATH), + rules_dir: &sky130_drc(), + rules_path: &sky130_drc_rules_path(), })?; assert_eq!( @@ -243,8 +247,8 @@ mod tests { work_dir: &work_dir, layout_path: &layout_path, cell_name: "sky130_fd_bd_sram__sram_sp_cell", - rules_dir: &PathBuf::from(SKY130_DRC), - rules_path: &PathBuf::from(SKY130_DRC_RULES_PATH), + rules_dir: &sky130_drc(), + rules_path: &sky130_drc_rules_path(), })? .rule_checks .into_iter() diff --git a/tools/pegasus/src/lib.rs b/tools/pegasus/src/lib.rs index 71ec7a703..40d73b026 100644 --- a/tools/pegasus/src/lib.rs +++ b/tools/pegasus/src/lib.rs @@ -35,12 +35,4 @@ mod tests { env!("CARGO_MANIFEST_DIR"), "/../../examples/latest/colbuf/test_col_buffer_array.gds" ); - pub const SKY130_DRC: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_DRC"); - pub const SKY130_DRC_RULES_PATH: &str = concat!( - env!("SKY130_CDS_PDK_ROOT"), - "/Sky130_DRC/sky130_rev_0.0_1.0.drc.pvl", - ); - pub const SKY130_LVS: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS"); - pub const SKY130_LVS_RULES_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS/sky130.lvs.pvl",); } diff --git a/tools/quantus/Cargo.toml b/tools/quantus/Cargo.toml index f68a3d1c0..377b3beb5 100644 --- a/tools/quantus/Cargo.toml +++ b/tools/quantus/Cargo.toml @@ -16,4 +16,5 @@ spice = { version = "0.9.2", registry = "substrate", path = "../../libs/spice" } pegasus = { version = "0.2.1", registry = "substrate", path = "../pegasus" } [dev-dependencies] +sky130 = { version = "0.10.2", registry = "substrate", path = "../../pdks/sky130" } rust_decimal = "1" diff --git a/tools/quantus/src/lib.rs b/tools/quantus/src/lib.rs index 47206c996..04d7d1a6e 100644 --- a/tools/quantus/src/lib.rs +++ b/tools/quantus/src/lib.rs @@ -34,11 +34,4 @@ pub mod tests { env!("CARGO_MANIFEST_DIR"), "/../../examples/latest/colbuf/test_col_buffer_array.gds" ); - pub const SKY130_LVS: &str = concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS"); - pub const SKY130_LVS_RULES_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/Sky130_LVS/sky130.lvs.pvl",); - pub const SKY130_TECHNOLOGY_DIR: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/quantus/extraction/typical",); - pub const SKY130_TT_MODEL_PATH: &str = - concat!(env!("SKY130_CDS_PDK_ROOT"), "/models/corners/tt.spice",); } diff --git a/tools/quantus/src/pex.rs b/tools/quantus/src/pex.rs index c7f2e3d00..386cf460b 100644 --- a/tools/quantus/src/pex.rs +++ b/tools/quantus/src/pex.rs @@ -244,12 +244,10 @@ where #[cfg(test)] mod tests { use pegasus::lvs::{LvsParams, LvsStatus, run_lvs}; + use sky130::{sky130_lvs, sky130_lvs_rules_path, sky130_technology_dir}; use crate::pex::{PexParams, run_pex, write_pex_run_file}; - use crate::tests::{ - COLBUF_LAYOUT_PATH, EXAMPLES_PATH, SKY130_LVS, SKY130_LVS_RULES_PATH, - SKY130_TECHNOLOGY_DIR, TEST_BUILD_PATH, - }; + use crate::tests::{COLBUF_LAYOUT_PATH, EXAMPLES_PATH, TEST_BUILD_PATH}; use std::path::{Path, PathBuf}; #[test] @@ -263,7 +261,7 @@ mod tests { work_dir: &pex_work_dir, lvs_work_dir: &lvs_work_dir, lvs_run_name: "test_col_inv_array", - technology_dir: Path::new(SKY130_TECHNOLOGY_DIR), + technology_dir: &sky130_technology_dir(), pex_netlist_path: &pex_path, })?; Ok(()) @@ -286,8 +284,8 @@ mod tests { layout_cell_name: "test_col_inv_array", source_paths: &[source_path], source_cell_name: "col_inv_array", - rules_dir: &PathBuf::from(SKY130_LVS), - rules_path: &PathBuf::from(SKY130_LVS_RULES_PATH), + rules_dir: &sky130_lvs(), + rules_path: &sky130_lvs_rules_path(), })? .status, LvsStatus::Correct @@ -299,7 +297,7 @@ mod tests { work_dir: &pex_dir, lvs_work_dir: &lvs_dir, lvs_run_name: "test_col_inv_array", - technology_dir: Path::new(SKY130_TECHNOLOGY_DIR), + technology_dir: &sky130_technology_dir(), pex_netlist_path: &pex_path, })?; Ok(()) From 19c0f451e4a4c1af8ad2587875b55981e6c03a51 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Wed, 28 Jan 2026 08:05:58 -0800 Subject: [PATCH 21/28] fix workflow typo --- .github/workflows/ci-main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index ce1edb255..7408e5de7 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -60,7 +60,6 @@ jobs: uses: arduino/setup-protoc@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Install Rust - name: Clone `cargo-workspaces` uses: actions/checkout@v4 with: From 7d15433326f87a8b43e06c2ea5fe824f105455c5 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Wed, 28 Jan 2026 08:06:51 -0800 Subject: [PATCH 22/28] remove unused import --- examples/release/sky130_inverter/src/tb/open.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/release/sky130_inverter/src/tb/open.rs b/examples/release/sky130_inverter/src/tb/open.rs index f306e3cea..bf46c2462 100644 --- a/examples/release/sky130_inverter/src/tb/open.rs +++ b/examples/release/sky130_inverter/src/tb/open.rs @@ -13,7 +13,6 @@ use sky130::layout::to_gds; use sky130::Sky130OpenSchema; use spice::Spice; use std::path::Path; -use std::path::PathBuf; use std::sync::Arc; use substrate::block::Block; use substrate::context::Context; From 46e83697d4b71b0516fd02a54e8b7eb07fdc0d17 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Wed, 28 Jan 2026 08:21:50 -0800 Subject: [PATCH 23/28] fix compilation errors --- Cargo.lock | 1 + examples/latest/colbuf/src/lib.rs | 4 +-- .../latest/sky130_inverter/src/atoll/mod.rs | 14 ++++----- examples/latest/sky130_inverter/src/layout.rs | 30 ++++++++++--------- examples/latest/strongarm/src/tech/sky130.rs | 2 +- examples/release/colbuf/src/lib.rs | 8 ----- .../release/sky130_inverter/src/layout.rs | 20 ++++++------- pdks/sky130/src/res.rs | 10 +++---- tools/magic/Cargo.toml | 3 ++ tools/magic/src/drc.rs | 9 ++++-- tools/pegasus/src/drc.rs | 2 +- tools/pegasus/src/lvs.rs | 19 ++++++------ tools/quantus/src/pex.rs | 2 +- 13 files changed, 63 insertions(+), 61 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d64dc7b66..72c92c5c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1732,6 +1732,7 @@ dependencies = [ "lazy_static", "regex", "serde", + "sky130", "tera", "thiserror", ] diff --git a/examples/latest/colbuf/src/lib.rs b/examples/latest/colbuf/src/lib.rs index 8514a5965..29541bd85 100644 --- a/examples/latest/colbuf/src/lib.rs +++ b/examples/latest/colbuf/src/lib.rs @@ -264,8 +264,8 @@ mod tests { use approx::assert_relative_eq; use sky130::{ - sky130_cds_tt_model_path, sky130_magic_tech_file, sky130_netgen_setup_file, - sky130_ngspice_model_path, + sky130_cds_tt_model_path, sky130_lvs, sky130_lvs_rules_path, sky130_magic_tech_file, + sky130_netgen_setup_file, sky130_ngspice_model_path, sky130_technology_dir, }; use spectre::{ErrPreset, Options, analysis::tran::Tran}; use substrate::{ diff --git a/examples/latest/sky130_inverter/src/atoll/mod.rs b/examples/latest/sky130_inverter/src/atoll/mod.rs index 9f39ffda2..6cfb9363f 100644 --- a/examples/latest/sky130_inverter/src/atoll/mod.rs +++ b/examples/latest/sky130_inverter/src/atoll/mod.rs @@ -145,7 +145,7 @@ mod tests { use sky130::layout::to_gds; use sky130::{ - SKY130_DRC, SKY130_DRC_RULES_PATH, SKY130_LVS, SKY130_LVS_RULES_PATH, Sky130CdsSchema, + sky130_drc, sky130_drc_rules_path, sky130_lvs, sky130_lvs_rules_path, Sky130CdsSchema, }; use spice::{Spice, netlist::NetlistOptions}; use std::path::PathBuf; @@ -181,8 +181,8 @@ mod tests { work_dir: &drc_dir, layout_path: &layout_path, cell_name: &block.name(), - rules_dir: &PathBuf::from(SKY130_DRC), - rules_path: &PathBuf::from(SKY130_DRC_RULES_PATH), + rules_dir: &sky130_drc(), + rules_path: &sky130_drc_rules_path(), }) .expect("failed to run drc"); @@ -214,8 +214,8 @@ mod tests { layout_cell_name: &block.name(), source_paths: &[source_path], source_cell_name: &block.name(), - rules_dir: &PathBuf::from(SKY130_LVS), - rules_path: &PathBuf::from(SKY130_LVS_RULES_PATH), + rules_dir: &sky130_lvs(), + rules_path: &sky130_lvs_rules_path(), }) .expect("failed to run lvs"); @@ -264,8 +264,8 @@ mod tests { work_dir: &drc_dir, layout_path: &layout_path, cell_name: &block.name(), - rules_dir: &PathBuf::from(SKY130_DRC), - rules_path: &PathBuf::from(SKY130_DRC_RULES_PATH), + rules_dir: &sky130_drc(), + rules_path: &sky130_drc_rules_path(), }) .expect("failed to run drc"); diff --git a/examples/latest/sky130_inverter/src/layout.rs b/examples/latest/sky130_inverter/src/layout.rs index a2d249408..8d4b1699d 100644 --- a/examples/latest/sky130_inverter/src/layout.rs +++ b/examples/latest/sky130_inverter/src/layout.rs @@ -129,10 +129,12 @@ mod open { use std::{path::PathBuf, sync::Arc}; use magic::drc::{DrcParams, run_drc}; - use sky130::{Sky130OpenSchema, layout::to_gds}; + use sky130::{ + Sky130OpenSchema, layout::to_gds, sky130_magic_tech_file, sky130_netgen_setup_file, + }; use substrate::{block::Block, schematic::ConvertSchema}; - use crate::{Inverter, SKY130_MAGIC_TECH_FILE, SKY130_NETGEN_SETUP_FILE, sky130_open_ctx}; + use crate::{Inverter, sky130_open_ctx}; #[test] fn inverter_layout_open() { @@ -158,7 +160,7 @@ mod open { work_dir: &drc_dir, gds_path: &layout_path, cell_name: &dut.name(), - tech_file_path: &PathBuf::from(SKY130_MAGIC_TECH_FILE), + tech_file_path: &sky130_magic_tech_file(), drc_report_path: &drc_report_path, }) .expect("failed to run drc"); @@ -175,8 +177,8 @@ mod open { gds_path: layout_path, work_dir: lvs_dir, layout_cell_name: dut.name(), - magic_tech_file_path: PathBuf::from(SKY130_MAGIC_TECH_FILE), - netgen_setup_file_path: PathBuf::from(SKY130_NETGEN_SETUP_FILE), + magic_tech_file_path: sky130_magic_tech_file(), + netgen_setup_file_path: sky130_netgen_setup_file(), }) .expect("failed to run lvs"); @@ -197,14 +199,14 @@ mod cds { drc::{DrcParams, run_drc}, lvs::LvsStatus, }; - use sky130::{Sky130CdsSchema, layout::to_gds}; + use sky130::{ + Sky130CdsSchema, layout::to_gds, sky130_drc, sky130_drc_rules_path, sky130_lvs, + sky130_lvs_rules_path, + }; use spice::{Spice, netlist::NetlistOptions}; use substrate::{block::Block, schematic::ConvertSchema}; - use crate::{ - Inverter, SKY130_DRC, SKY130_DRC_RULES_PATH, SKY130_LVS, SKY130_LVS_RULES_PATH, - sky130_cds_ctx, - }; + use crate::{Inverter, sky130_cds_ctx}; fn test_check_filter(check: &RuleCheck) -> bool { !["licon.12", "hvnwell.8"].contains(&check.name.as_ref()) @@ -235,8 +237,8 @@ mod cds { work_dir: &drc_dir, layout_path: &layout_path, cell_name: &dut.name(), - rules_dir: &PathBuf::from(SKY130_DRC), - rules_path: &PathBuf::from(SKY130_DRC_RULES_PATH), + rules_dir: &sky130_drc(), + rules_path: &sky130_drc_rules_path(), }) .expect("failed to run drc"); @@ -268,8 +270,8 @@ mod cds { layout_cell_name: &dut.name(), source_paths: &[source_path], source_cell_name: &dut.name(), - rules_dir: &PathBuf::from(SKY130_LVS), - rules_path: &PathBuf::from(SKY130_LVS_RULES_PATH), + rules_dir: &sky130_lvs(), + rules_path: &sky130_lvs_rules_path(), }) .expect("failed to run lvs"); diff --git a/examples/latest/strongarm/src/tech/sky130.rs b/examples/latest/strongarm/src/tech/sky130.rs index 4d234ced5..4502d9bf8 100644 --- a/examples/latest/strongarm/src/tech/sky130.rs +++ b/examples/latest/strongarm/src/tech/sky130.rs @@ -293,7 +293,7 @@ mod tests { use sky130::corner::Sky130Corner; use sky130::{Sky130, Sky130CdsSchema, layout::to_gds}; use sky130::{ - sky130_cds_pdk_root, sky130_drc_rules_path, sky130_lvs, sky130_lvs_rules_path, + sky130_cds_pdk_root, sky130_drc, sky130_drc_rules_path, sky130_lvs, sky130_lvs_rules_path, sky130_technology_dir, }; use spice::{Spice, netlist::NetlistOptions}; diff --git a/examples/release/colbuf/src/lib.rs b/examples/release/colbuf/src/lib.rs index 7fe10a08e..0450ebfce 100644 --- a/examples/release/colbuf/src/lib.rs +++ b/examples/release/colbuf/src/lib.rs @@ -308,14 +308,6 @@ mod tests { .expect("SKY130_CDS_PDK_ROOT environment variable must be defined"), ) } - /// SKY130 Pegasus DRC directory. - pub fn sky130_drc() -> PathBuf { - sky130_cds_pdk_root().join("Sky130_DRC") - } - /// SKY130 Pegasus DRC rules. - pub fn sky130_drc_rules_path() -> PathBuf { - sky130_drc().join("sky130_rev_0.0_1.0.drc.pvl") - } /// SKY130 Pegasus LVS directory. pub fn sky130_lvs() -> PathBuf { sky130_cds_pdk_root().join("Sky130_LVS") diff --git a/examples/release/sky130_inverter/src/layout.rs b/examples/release/sky130_inverter/src/layout.rs index 08533f069..998ad96f7 100644 --- a/examples/release/sky130_inverter/src/layout.rs +++ b/examples/release/sky130_inverter/src/layout.rs @@ -132,7 +132,7 @@ mod open { use sky130::{layout::to_gds, Sky130OpenSchema}; use substrate::{block::Block, schematic::ConvertSchema}; - use crate::{sky130_open_ctx, Inverter, SKY130_MAGIC_TECH_FILE, SKY130_NETGEN_SETUP_FILE}; + use crate::{sky130_magic_tech_file, sky130_netgen_setup_file, sky130_open_ctx, Inverter}; #[test] fn inverter_layout_open() { @@ -158,7 +158,7 @@ mod open { work_dir: &drc_dir, gds_path: &layout_path, cell_name: &dut.name(), - tech_file_path: &PathBuf::from(SKY130_MAGIC_TECH_FILE), + tech_file_path: &sky130_magic_tech_file(), drc_report_path: &drc_report_path, }) .expect("failed to run drc"); @@ -175,8 +175,8 @@ mod open { gds_path: layout_path, work_dir: lvs_dir, layout_cell_name: dut.name(), - magic_tech_file_path: PathBuf::from(SKY130_MAGIC_TECH_FILE), - netgen_setup_file_path: PathBuf::from(SKY130_NETGEN_SETUP_FILE), + magic_tech_file_path: sky130_magic_tech_file(), + netgen_setup_file_path: sky130_netgen_setup_file(), }) .expect("failed to run lvs"); @@ -202,8 +202,8 @@ mod cds { use substrate::{block::Block, schematic::ConvertSchema}; use crate::{ - sky130_cds_ctx, Inverter, SKY130_DRC, SKY130_DRC_RULES_PATH, SKY130_LVS, - SKY130_LVS_RULES_PATH, + sky130_cds_ctx, sky130_drc, sky130_drc_rules_path, sky130_lvs, sky130_lvs_rules_path, + Inverter, }; fn test_check_filter(check: &RuleCheck) -> bool { @@ -235,8 +235,8 @@ mod cds { work_dir: &drc_dir, layout_path: &layout_path, cell_name: &dut.name(), - rules_dir: &PathBuf::from(SKY130_DRC), - rules_path: &PathBuf::from(SKY130_DRC_RULES_PATH), + rules_dir: &sky130_drc(), + rules_path: &sky130_drc_rules_path(), }) .expect("failed to run drc"); @@ -268,8 +268,8 @@ mod cds { layout_cell_name: &dut.name(), source_paths: &[source_path], source_cell_name: &dut.name(), - rules_dir: &PathBuf::from(SKY130_LVS), - rules_path: &PathBuf::from(SKY130_LVS_RULES_PATH), + rules_dir: &sky130_lvs(), + rules_path: &sky130_lvs_rules_path(), }) .expect("failed to run lvs"); diff --git a/pdks/sky130/src/res.rs b/pdks/sky130/src/res.rs index abdfb5f60..9eb7d2dea 100644 --- a/pdks/sky130/src/res.rs +++ b/pdks/sky130/src/res.rs @@ -241,7 +241,7 @@ mod tests { }; use substrate::block::Block; - use crate::{SKY130_DRC, SKY130_DRC_RULES_PATH}; + use crate::{sky130_drc, sky130_drc_rules_path}; fn test_check_filter(check: &RuleCheck) -> bool { !["licon.12", "hvnwell.8"].contains(&check.name.as_ref()) @@ -273,8 +273,8 @@ mod tests { work_dir: &drc_dir, layout_path: &layout_path, cell_name: &dut.name(), - rules_dir: &PathBuf::from(SKY130_DRC), - rules_path: &PathBuf::from(SKY130_DRC_RULES_PATH), + rules_dir: &sky130_drc(), + rules_path: &sky130_drc_rules_path(), }) .expect("failed to run drc"); @@ -306,8 +306,8 @@ mod tests { // layout_cell_name: &dut.name(), // source_paths: &[source_path], // source_cell_name: &dut.name(), - // rules_dir: &PathBuf::from(SKY130_LVS), - // rules_path: &PathBuf::from(SKY130_LVS_RULES_PATH), + // rules_dir: &sky130_lvs, + // rules_path: &sky130_lvs_rules_path, // }) // .expect("failed to run lvs"); diff --git a/tools/magic/Cargo.toml b/tools/magic/Cargo.toml index 5a7bb6bfe..a373bb083 100644 --- a/tools/magic/Cargo.toml +++ b/tools/magic/Cargo.toml @@ -11,3 +11,6 @@ anyhow = "1" regex = "1" itertools = "0.14.0" thiserror = "2.0.12" + +[dev-dependencies] +sky130 = { version = "0.10.2", registry = "substrate", path = "../../pdks/sky130" } diff --git a/tools/magic/src/drc.rs b/tools/magic/src/drc.rs index 1611535f0..1b5d9b4de 100644 --- a/tools/magic/src/drc.rs +++ b/tools/magic/src/drc.rs @@ -140,10 +140,13 @@ pub fn run_drc(params: &DrcParams) -> Result { mod tests { use crate::drc::*; use crate::tests::{ - COLBUF_LAYOUT_PATH, INVERTER_LICON8_LAYOUT_PATH, SKY130_TECH_FILE, TEST_BUILD_PATH, + COLBUF_LAYOUT_PATH, INVERTER_LICON8_LAYOUT_PATH, TEST_BUILD_PATH, }; + use std::path::PathBuf; + use sky130::sky130_magic_tech_file; + #[test] fn test_run_magic_drc_clean() -> anyhow::Result<()> { let gds_path = PathBuf::from(COLBUF_LAYOUT_PATH); @@ -156,7 +159,7 @@ mod tests { work_dir: &work_dir, gds_path: &gds_path, cell_name: "test_col_inv_array", - tech_file_path: &PathBuf::from(SKY130_TECH_FILE), + tech_file_path: &sky130_magic_tech_file(), drc_report_path: &drc_report_path, })?; assert!(drc_report_path.exists()); @@ -180,7 +183,7 @@ mod tests { work_dir: &work_dir, gds_path: &gds_path, cell_name: "inverter", - tech_file_path: &PathBuf::from(SKY130_TECH_FILE), + tech_file_path: &sky130_magic_tech_file(), drc_report_path: &drc_report_path, })?; assert!(drc_report_path.exists()); diff --git a/tools/pegasus/src/drc.rs b/tools/pegasus/src/drc.rs index 3169b1c9b..0a13be677 100644 --- a/tools/pegasus/src/drc.rs +++ b/tools/pegasus/src/drc.rs @@ -164,7 +164,7 @@ pub fn run_drc(params: &DrcParams) -> Result { #[cfg(test)] mod tests { - use crate::drc::{DrcParams, parse_pegasus_drc_results, write_drc_files}; + use crate::drc::{DrcParams, parse_pegasus_drc_results, run_drc, write_drc_files}; use crate::tests::TEST_BUILD_PATH; use crate::{RuleCheck, tests::EXAMPLES_PATH}; diff --git a/tools/pegasus/src/lvs.rs b/tools/pegasus/src/lvs.rs index 1db572c7e..fb8f6e0ca 100644 --- a/tools/pegasus/src/lvs.rs +++ b/tools/pegasus/src/lvs.rs @@ -210,11 +210,12 @@ mod tests { use crate::lvs::{ LvsParams, LvsStatus, parse_pegasus_lvs_results, run_lvs, write_lvs_run_file, }; - use crate::tests::{ - COLBUF_LAYOUT_PATH, EXAMPLES_PATH, SKY130_LVS, SKY130_LVS_RULES_PATH, TEST_BUILD_PATH, - }; + use crate::tests::{COLBUF_LAYOUT_PATH, EXAMPLES_PATH, TEST_BUILD_PATH}; + use std::path::PathBuf; + use sky130::{sky130_lvs, sky130_lvs_rules_path}; + #[test] fn test_write_lvs_run_file() -> anyhow::Result<()> { let layout_path = PathBuf::from(COLBUF_LAYOUT_PATH); @@ -227,8 +228,8 @@ mod tests { layout_cell_name: "test_col_inv_array", source_paths: &[source_path], source_cell_name: "col_inv_array", - rules_dir: &PathBuf::from(SKY130_LVS), - rules_path: &PathBuf::from(SKY130_LVS_RULES_PATH), + rules_dir: &sky130_lvs(), + rules_path: &sky130_lvs_rules_path(), })?; Ok(()) } @@ -268,8 +269,8 @@ mod tests { layout_cell_name: "test_col_inv_array", source_paths: &[source_path], source_cell_name: "col_inv_array", - rules_dir: &PathBuf::from(SKY130_LVS), - rules_path: &PathBuf::from(SKY130_LVS_RULES_PATH), + rules_dir: &sky130_lvs(), + rules_path: &sky130_lvs_rules_path(), })? .status, LvsStatus::Correct @@ -293,8 +294,8 @@ mod tests { layout_cell_name: "test_col_inv_array", source_paths: &[source_path], source_cell_name: "col_inv_array", - rules_dir: &PathBuf::from(SKY130_LVS), - rules_path: &PathBuf::from(SKY130_LVS_RULES_PATH), + rules_dir: &sky130_lvs(), + rules_path: &sky130_lvs_rules_path(), })? .status, LvsStatus::Incorrect, diff --git a/tools/quantus/src/pex.rs b/tools/quantus/src/pex.rs index 386cf460b..b5b1d6275 100644 --- a/tools/quantus/src/pex.rs +++ b/tools/quantus/src/pex.rs @@ -248,7 +248,7 @@ mod tests { use crate::pex::{PexParams, run_pex, write_pex_run_file}; use crate::tests::{COLBUF_LAYOUT_PATH, EXAMPLES_PATH, TEST_BUILD_PATH}; - use std::path::{Path, PathBuf}; + use std::path::PathBuf; #[test] fn test_write_pex_run_file() -> anyhow::Result<()> { From 45df98aa0c02b7ff9fd0dd64adffa16d14581ede Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Wed, 28 Jan 2026 08:25:34 -0800 Subject: [PATCH 24/28] fix import formatting --- examples/latest/sky130_inverter/src/atoll/mod.rs | 2 +- tools/magic/src/drc.rs | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/examples/latest/sky130_inverter/src/atoll/mod.rs b/examples/latest/sky130_inverter/src/atoll/mod.rs index 6cfb9363f..6a96a66f5 100644 --- a/examples/latest/sky130_inverter/src/atoll/mod.rs +++ b/examples/latest/sky130_inverter/src/atoll/mod.rs @@ -145,7 +145,7 @@ mod tests { use sky130::layout::to_gds; use sky130::{ - sky130_drc, sky130_drc_rules_path, sky130_lvs, sky130_lvs_rules_path, Sky130CdsSchema, + Sky130CdsSchema, sky130_drc, sky130_drc_rules_path, sky130_lvs, sky130_lvs_rules_path, }; use spice::{Spice, netlist::NetlistOptions}; use std::path::PathBuf; diff --git a/tools/magic/src/drc.rs b/tools/magic/src/drc.rs index 1b5d9b4de..3d9e7b22d 100644 --- a/tools/magic/src/drc.rs +++ b/tools/magic/src/drc.rs @@ -139,9 +139,7 @@ pub fn run_drc(params: &DrcParams) -> Result { #[cfg(test)] mod tests { use crate::drc::*; - use crate::tests::{ - COLBUF_LAYOUT_PATH, INVERTER_LICON8_LAYOUT_PATH, TEST_BUILD_PATH, - }; + use crate::tests::{COLBUF_LAYOUT_PATH, INVERTER_LICON8_LAYOUT_PATH, TEST_BUILD_PATH}; use std::path::PathBuf; From 2d1fe99eb183f6d6949361885d8f331088ce889c Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Wed, 28 Jan 2026 08:27:13 -0800 Subject: [PATCH 25/28] fix doc comment --- pdks/sky130/src/mos.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pdks/sky130/src/mos.rs b/pdks/sky130/src/mos.rs index e93b0a609..6cae9c414 100644 --- a/pdks/sky130/src/mos.rs +++ b/pdks/sky130/src/mos.rs @@ -130,7 +130,7 @@ macro_rules! define_mosfets { } impl $typ { - /// Creates a new [`$typ`]. + #[doc = concat!("Creates a new [`", stringify!($typ), "`].")] #[inline] pub fn new(params: impl Into) -> Self { Self { From 74c77a4ab0cb3d66c884d81d17c122d84eb08816 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Wed, 28 Jan 2026 08:35:31 -0800 Subject: [PATCH 26/28] fix cache-on-failure key --- .github/workflows/check-repo.yml | 5 ++--- .github/workflows/check-workspace.yml | 2 +- .github/workflows/ci-main.yml | 2 +- .github/workflows/deploy-api-docs.yml | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/check-repo.yml b/.github/workflows/check-repo.yml index 505b6b2b1..c07c5a37f 100644 --- a/.github/workflows/check-repo.yml +++ b/.github/workflows/check-repo.yml @@ -35,12 +35,11 @@ jobs: - uses: taiki-e/install-action@cargo-hack - uses: Swatinem/rust-cache@v2 with: - cache_on_failure: true + cache-on-failure: true - name: Check docs run: | - cargo hack --all rustdoc --all-features + cargo d --no-deps --workspace --all-features --exclude tests --exclude examples env: - RUSTFLAGS: '-D warnings' RUSTDOCFLAGS: '-D warnings' check-docs-site: name: check-docs-site diff --git a/.github/workflows/check-workspace.yml b/.github/workflows/check-workspace.yml index 09153027e..35254a1e4 100644 --- a/.github/workflows/check-workspace.yml +++ b/.github/workflows/check-workspace.yml @@ -28,7 +28,7 @@ jobs: with: workspaces: | ${{ inputs.workspace_path }} - cache_on_failure: true + cache-on-failure: true - name: Check formatting run: | cargo fmt --check diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 7408e5de7..541f3ac4e 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -73,7 +73,7 @@ jobs: workspaces: | ./substrate ./cargo-workspaces/cargo-workspaces - cache_on_failure: true + cache-on-failure: true - name: Build `cargo-workspaces` working-directory: cargo-workspaces/cargo-workspaces run: cargo build diff --git a/.github/workflows/deploy-api-docs.yml b/.github/workflows/deploy-api-docs.yml index ba3fcadd3..877998d04 100644 --- a/.github/workflows/deploy-api-docs.yml +++ b/.github/workflows/deploy-api-docs.yml @@ -29,7 +29,7 @@ jobs: key: ${{ steps.toolchain.outputs.cachekey }} workspaces: | ${{ inputs.workspace_path }} - cache_on_failure: true + cache-on-failure: true - uses: superfly/flyctl-actions/setup-flyctl@master with: version: 0.3.66 From e837d77c3286ee73e8cdc1406bb5f90d7f0062c6 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Wed, 28 Jan 2026 08:38:13 -0800 Subject: [PATCH 27/28] install fontconfig for plotters library --- .github/workflows/check-workspace.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/check-workspace.yml b/.github/workflows/check-workspace.yml index 35254a1e4..d8b178fb4 100644 --- a/.github/workflows/check-workspace.yml +++ b/.github/workflows/check-workspace.yml @@ -23,6 +23,10 @@ jobs: uses: arduino/setup-protoc@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} + - name: Install fontconfig + run: | + sudo apt-get update + sudo apt-get install -y fontconfig - uses: taiki-e/install-action@cargo-hack - uses: Swatinem/rust-cache@v2 with: From e70e537d7ed41f125c8e0de6051420ed9703e0e3 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Wed, 28 Jan 2026 08:42:41 -0800 Subject: [PATCH 28/28] try fixing fontconfig error again --- .github/workflows/check-workspace.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-workspace.yml b/.github/workflows/check-workspace.yml index d8b178fb4..e36f12d7e 100644 --- a/.github/workflows/check-workspace.yml +++ b/.github/workflows/check-workspace.yml @@ -26,7 +26,7 @@ jobs: - name: Install fontconfig run: | sudo apt-get update - sudo apt-get install -y fontconfig + sudo apt-get install -y libfontconfig1-dev pkg-config - uses: taiki-e/install-action@cargo-hack - uses: Swatinem/rust-cache@v2 with: