diff --git a/Cargo.lock b/Cargo.lock index 2e8d8c444..3c836eecf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -80,56 +80,12 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" -[[package]] -name = "anstream" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - [[package]] name = "anstyle" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" -[[package]] -name = "anstyle-parse" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.61.2", -] - [[package]] name = "anyhow" version = "1.0.104" @@ -212,7 +168,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -223,7 +179,7 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "aube" -version = "1.35.0" +version = "2.2.9" dependencies = [ "ambient-id", "aube-codes", @@ -238,12 +194,10 @@ dependencies = [ "aube-store", "aube-util", "aube-workspace", - "base64", + "base64 0.23.1", "blake3", "bytes", "ci_info", - "clap", - "clap_usage", "clx", "console", "demand", @@ -268,21 +222,24 @@ dependencies = [ "sigstore-oidc", "sigstore-sign", "sigstore-types", + "spdx", "strum", "tar", "tempfile", "tokio", "tokio-util", "toml", + "toml_edit", "tracing", "tracing-subscriber", + "usage-rs", "xx", "yaml_serde", ] [[package]] name = "aube-codes" -version = "1.35.0" +version = "2.2.9" dependencies = [ "serde", "serde_json", @@ -290,7 +247,7 @@ dependencies = [ [[package]] name = "aube-linker" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-codes", "aube-lockfile", @@ -317,14 +274,14 @@ dependencies = [ [[package]] name = "aube-lockfile" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-codes", "aube-manifest", "aube-settings", "aube-util", "aube-workspace", - "base64", + "base64 0.23.1", "blake3", "glob", "memchr", @@ -342,7 +299,7 @@ dependencies = [ [[package]] name = "aube-manifest" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-codes", "aube-util", @@ -358,14 +315,14 @@ dependencies = [ [[package]] name = "aube-registry" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-codes", "aube-manifest", "aube-settings", "aube-store", "aube-util", - "base64", + "base64 0.23.1", "blake3", "bytes", "miette", @@ -384,7 +341,7 @@ dependencies = [ [[package]] name = "aube-resolver" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-codes", "aube-lockfile", @@ -392,7 +349,7 @@ dependencies = [ "aube-registry", "aube-store", "aube-util", - "base64", + "base64 0.23.1", "flate2", "miette", "node-semver", @@ -413,12 +370,12 @@ dependencies = [ [[package]] name = "aube-runtime" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-codes", "aube-manifest", "aube-util", - "base64", + "base64 0.23.1", "flate2", "hex", "node-semver", @@ -436,7 +393,7 @@ dependencies = [ [[package]] name = "aube-scripts" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-codes", "aube-manifest", @@ -455,7 +412,7 @@ dependencies = [ [[package]] name = "aube-settings" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-codes", "aube-util", @@ -467,10 +424,10 @@ dependencies = [ [[package]] name = "aube-store" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-util", - "base64", + "base64 0.23.1", "blake3", "decmpfs", "flate2", @@ -492,7 +449,7 @@ dependencies = [ [[package]] name = "aube-util" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-codes", "blake3", @@ -512,7 +469,7 @@ dependencies = [ [[package]] name = "aube-workspace" -version = "1.35.0" +version = "2.2.9" dependencies = [ "aube-codes", "aube-manifest", @@ -588,6 +545,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + [[package]] name = "base64-simd" version = "0.8.0" @@ -704,7 +667,7 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -836,7 +799,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", - "clap_derive", ] [[package]] @@ -845,22 +807,8 @@ version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ - "anstream", "anstyle", "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", ] [[package]] @@ -869,16 +817,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" -[[package]] -name = "clap_usage" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46d067625f5704e5722fe7e46407fef7e79680d6dfd045d29036149d90ec044b" -dependencies = [ - "clap", - "usage-lib", -] - [[package]] name = "clx" version = "3.0.2" @@ -937,12 +875,6 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "colorchoice" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" - [[package]] name = "combine" version = "4.6.7" @@ -1265,7 +1197,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -1286,7 +1218,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn", + "syn 2.0.117", "unicode-xid", ] @@ -1349,7 +1281,7 @@ checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -1438,7 +1370,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -1467,6 +1399,19 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "expr-lang" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ccbe01093a53933ac2e794bf8de543359ba840520304a6b93b8d00d0b99ceaf" +dependencies = [ + "indexmap 2.14.0", + "log", + "pest", + "pest_derive", + "regex", +] + [[package]] name = "fast-glob" version = "1.1.0" @@ -1659,7 +1604,7 @@ checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2071,7 +2016,7 @@ version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "futures-channel", "futures-util", @@ -2313,12 +2258,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - [[package]] name = "itertools" version = "0.10.5" @@ -2375,7 +2314,7 @@ checksum = "782d32378dddf207193ac91cefb848ad41abb58195c95168e1291227a0832b47" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2420,7 +2359,7 @@ dependencies = [ "quote", "rustc_version", "simd_cesu8", - "syn", + "syn 2.0.117", ] [[package]] @@ -2439,7 +2378,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2509,17 +2448,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "kdl" -version = "6.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a29e7b50079ff44549f68c0becb1c73d7f6de2a4ea952da77966daf3d4761e" -dependencies = [ - "miette", - "num", - "winnow 0.6.24", -] - [[package]] name = "landlock" version = "0.4.5" @@ -2701,7 +2629,7 @@ checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2799,7 +2727,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2924,10 +2852,9 @@ dependencies = [ "aube-store", "aube-util", "aube-workspace", - "base64", + "base64 0.22.1", "blake3", "brotli", - "clap", "clx", "console", "demand", @@ -2976,6 +2903,7 @@ dependencies = [ "unicode-casefold", "unicode-normalization", "url", + "usage-rs", "windows-sys 0.61.2", "yaml_serde", "zstd", @@ -3062,30 +2990,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint 0.4.6", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.5.1" @@ -3096,15 +3000,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - [[package]] name = "num-integer" version = "0.1.46" @@ -3114,28 +3009,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -3186,12 +3059,6 @@ dependencies = [ "portable-atomic", ] -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - [[package]] name = "oorandom" version = "11.1.5" @@ -3297,7 +3164,7 @@ checksum = "acc072d11d45ebe7801459b4e829184ba0934d68027fdc51d327335b53a95a49" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -3341,7 +3208,7 @@ dependencies = [ "phf", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -3418,7 +3285,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b3321b606c9217e8e5527cd01906b98e17f232acbb6fab7eac05236e7731d9a" dependencies = [ "cow-utils", - "num-bigint 0.5.1", + "num-bigint", "num-traits", "oxc_allocator", "oxc_ast", @@ -3523,7 +3390,7 @@ dependencies = [ "bitflags", "cow-utils", "memchr", - "num-bigint 0.5.1", + "num-bigint", "num-traits", "oxc_allocator", "oxc_ast", @@ -3674,7 +3541,7 @@ version = "0.140.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8bb6f328641800296233b28448f32e5ebb5e72854b3e329f20447d5331c9216" dependencies = [ - "base64", + "base64 0.22.1", "compact_str", "hmac-sha1-compact", "indexmap 2.14.0", @@ -3775,7 +3642,7 @@ version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ - "base64", + "base64 0.22.1", "serde_core", ] @@ -3824,7 +3691,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -3880,7 +3747,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -3909,7 +3776,7 @@ checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -4058,7 +3925,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn", + "syn 2.0.117", ] [[package]] @@ -4087,7 +3954,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -4301,7 +4168,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -4370,7 +4237,7 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "encoding_rs", "futures-channel", @@ -4458,15 +4325,9 @@ checksum = "5d2ed0b54125315fb36bd021e82d314d1c126548f871634b483f46b31d13cac6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] -[[package]] -name = "roff" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "323c417e1d9665a65b263ec744ba09030cfb277e9daa0b018a4ab62e57bc8189" - [[package]] name = "rolldown" version = "1.2.0" @@ -4547,7 +4408,7 @@ dependencies = [ "derive_more", "fast-glob", "itertools 0.15.0", - "num-bigint 0.5.1", + "num-bigint", "oxc", "oxc_ecmascript", "oxc_index", @@ -5132,7 +4993,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -5251,12 +5112,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52b86057fcb5423f5018e331ac04623e32d6b5ce85e33300f92c79a1973928b0" -[[package]] -name = "shell-words" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" - [[package]] name = "shlex" version = "2.0.1" @@ -5319,7 +5174,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5948e95f63e900fa92936ecf72c7f2251f83d27560a35a4aae560cc745f8b687" dependencies = [ - "base64", + "base64 0.22.1", "hex", "serde", "serde_json", @@ -5337,7 +5192,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22f27364b37bec104a904f10a675c8cdf05d5e48a980569368f0cd0c119b2652" dependencies = [ "aws-lc-rs", - "base64", + "base64 0.22.1", "const-oid 0.9.6", "der", "digest 0.10.7", @@ -5358,7 +5213,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "823d3f43c29500feb1ccacec68552f8e2bcecd62ec99c5284570a623bcf0c921" dependencies = [ - "base64", + "base64 0.22.1", "reqwest", "serde", "serde_json", @@ -5375,7 +5230,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee85fd9fb550efd7c8a59447cb0ef4eb02f1258f3ffa80c88d38427c3930af3" dependencies = [ - "base64", + "base64 0.22.1", "hex", "sigstore-crypto", "sigstore-types", @@ -5389,7 +5244,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fdb57c6e3af8a17d535a06084353d8e0bd32bb70f4807262f51b6cd009c9b4f" dependencies = [ "ambient-id", - "base64", + "base64 0.22.1", "open", "rand 0.9.4", "reqwest", @@ -5408,7 +5263,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b97c5a866f849a9445ae657bef0caa2db053a82827e6dae3a2b3de9c15a6a1a" dependencies = [ - "base64", + "base64 0.22.1", "hex", "reqwest", "serde", @@ -5426,7 +5281,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df33672126088b7fa9d5827e79fe0cd87eda607efa0d28c1366e61bbb47f423a" dependencies = [ - "base64", + "base64 0.22.1", "serde_json", "sigstore-bundle", "sigstore-crypto", @@ -5446,7 +5301,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "389b54d1b8ace20ba86fdf90e5e655495f65f1abbc7d5d0eb7494defa9ad32f0" dependencies = [ - "base64", + "base64 0.22.1", "hex", "jiff", "rustls-pki-types", @@ -5466,7 +5321,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58fe92d4d8cf4b7215b927b70bc1245b6e0d70d801febdfe0cd265ad97ebf8b" dependencies = [ "aws-lc-rs", - "base64", + "base64 0.22.1", "cmpv2", "cms", "const-oid 0.9.6", @@ -5513,7 +5368,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "236474c535a3157839926a0ae18f9c0c22b151e49634da6e5b18ad7cac8a3b69" dependencies = [ - "base64", + "base64 0.22.1", "hex", "pem", "serde", @@ -5631,6 +5486,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "spdx" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "081670c233dfbed55690cc0cd38424e0e24ac1b2673d0b408b3f7b684738dfa9" +dependencies = [ + "smallvec", +] + [[package]] name = "spki" version = "0.7.3" @@ -5679,12 +5543,6 @@ dependencies = [ "serde", ] -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - [[package]] name = "strum" version = "0.28.0" @@ -5703,7 +5561,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -5765,6 +5623,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "sync_wrapper" version = "1.0.2" @@ -5782,7 +5651,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -5907,7 +5776,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -5918,7 +5787,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -5983,7 +5852,7 @@ checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -6011,7 +5880,7 @@ checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -6050,7 +5919,7 @@ dependencies = [ "toml_datetime", "toml_parser", "toml_writer", - "winnow 1.0.3", + "winnow", ] [[package]] @@ -6062,13 +5931,26 @@ dependencies = [ "serde_core", ] +[[package]] +name = "toml_edit" +version = "0.25.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime", + "toml_parser", + "toml_writer", + "winnow", +] + [[package]] name = "toml_parser" version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.3", + "winnow", ] [[package]] @@ -6146,7 +6028,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -6264,7 +6146,7 @@ checksum = "38d90eea51bc7988ef9e674bf80a85ba6804739e535e9cab48e4bb34a8b652aa" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", "termcolor", ] @@ -6380,40 +6262,57 @@ dependencies = [ ] [[package]] -name = "usage-lib" -version = "4.0.0" +name = "usage-argv" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1f81ea3687bfc1e3f6133acc10d5b39074faad1abebddfb7b45e9f77a4f3294" + +[[package]] +name = "usage-derive" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da5bd6b4438ed4e7bb56603a25174969989560f77f60677dbbf7d832d8b95bfe" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.4", +] + +[[package]] +name = "usage-rs" +version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60d4043943b220cc7269576a383ff2d62ab00f208f10d94b2496791729f8b02" +checksum = "457f6d93071e909c6bca69ab834cd7d0a2b3c5a85000b456431d8c9caed6c86f" dependencies = [ - "clap", - "heck", - "indexmap 2.14.0", - "itertools 0.15.0", - "kdl", - "log", - "miette", - "regex", - "roff", - "serde", - "shell-words", - "strum", - "tera", - "thiserror 2.0.18", - "versions", - "xx", + "usage-argv", + "usage-derive", + "usage-test", + "usage-validation", ] [[package]] -name = "utf8_iter" -version = "1.0.4" +name = "usage-test" +version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +checksum = "54fc305b97dc22cdd0c73622fa7692aea635b7d9ac2ddae2007e68b79cdcfd58" +dependencies = [ + "usage-argv", +] [[package]] -name = "utf8parse" -version = "0.2.2" +name = "usage-validation" +version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +checksum = "ac1ad114756c8800d2b9b6093f9bd38c7c7a747a4a5f94da204eac7ae8b8ad54" +dependencies = [ + "expr-lang", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" @@ -6450,16 +6349,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "versions" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80a7e511ce1795821207a837b7b1c8d8aca0c648810966ad200446ae58f6667f" -dependencies = [ - "itertools 0.14.0", - "nom 8.0.0", -] - [[package]] name = "vfs" version = "0.13.0" @@ -6560,7 +6449,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn", + "syn 2.0.117", "wasm-bindgen-shared", ] @@ -6808,7 +6697,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -6819,7 +6708,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -6830,7 +6719,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -6841,7 +6730,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7127,19 +7016,13 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.6.24" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" dependencies = [ "memchr", ] -[[package]] -name = "winnow" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" - [[package]] name = "wit-bindgen" version = "0.46.0" @@ -7176,7 +7059,7 @@ dependencies = [ "heck", "indexmap 2.14.0", "prettyplease", - "syn", + "syn 2.0.117", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -7192,7 +7075,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn", + "syn 2.0.117", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -7378,7 +7261,7 @@ checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", "synstructure", ] @@ -7409,7 +7292,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7420,7 +7303,7 @@ checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7440,7 +7323,7 @@ checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", "synstructure", ] @@ -7461,7 +7344,7 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7494,7 +7377,7 @@ checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index f856b298c..9615485bd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -111,7 +111,10 @@ criterion = "0.5" camino = "1" ctrlc = "3" libc = "0.2" -clap = { version = "4", features = ["derive"] } +# The CLI parser vendored aube moved to in v2 (jdx/usage); nub-cli shares it so the +# engine verbs compose aube's own `usage_rs::Args` types statically and the binary +# links one parser. Same major as vendor/aube/Cargo.toml. +usage-rs = { version = "6" } dirs-next = "2" json5 = "0.4" # Reads (`serde`) + comment/order-preserving read-modify-write (`cst`) of JSONC — diff --git a/crates/nub-cli/Cargo.toml b/crates/nub-cli/Cargo.toml index 00b6e9397..8880b3ec5 100644 --- a/crates/nub-cli/Cargo.toml +++ b/crates/nub-cli/Cargo.toml @@ -165,6 +165,10 @@ aube-manifest = { path = "../../vendor/aube/crates/aube-manifest" } aube = { path = "../../vendor/aube/crates/aube", default-features = false, features = [ "rustls", "publish", + # Comment/format-preserving edits of user-authored workspace YAML (catalogs, + # allowBuilds, patchedDependencies). Upstream made it optional in v2.2 + # (aubepkg/aube#1278) and keeps it default; nub always had it, so re-name it. + "workspace-yaml-preserve", ] } # `EffectiveFilter` for the workspace-aware engine verbs (`nub publish # --filter/-r`); same type aube's own dispatch passes to publish/list/etc. @@ -209,7 +213,7 @@ base64 = "0.22" # Global allocator for the `nub` binary only. NOT added to crates/nub-native # (the cdylib loaded into Node) — that must not hijack Node's allocator. mimalloc = "0.1" -clap.workspace = true +usage-rs.workspace = true # Same major as vendor/aube: `nubx -q` switches the engine's progress UI to # text mode via clx::progress::set_output, the same knob aube's own startup # flips for --silent (vendor/aube/crates/aube/src/startup.rs). diff --git a/crates/nub-cli/src/cli.rs b/crates/nub-cli/src/cli.rs index e72444382..b931fdd89 100644 --- a/crates/nub-cli/src/cli.rs +++ b/crates/nub-cli/src/cli.rs @@ -7,9 +7,6 @@ use std::sync::OnceLock; use std::sync::atomic::{AtomicBool, AtomicU8, Ordering}; use anyhow::{Context, Result, bail}; -#[cfg(feature = "compile")] -use clap::ArgAction; -use clap::{Parser, Subcommand, ValueEnum}; /// Stable, branded error codes for nub-cli's own (non-engine) failure paths. /// The engine's `ERR_AUBE_*` codes are rewritten to `ERR_NUB_*` at presentation @@ -84,10 +81,35 @@ pub struct NubxDlxFlags { pub yes: bool, } +/// Print a response the parser produced instead of a parse, on the stream and +/// with the status the standalone process would have used: help and version to +/// stdout at 0, a usage error to stderr at 2. +fn print_parser_response(exit: &usage_rs::embedded::Exit) { + if exit.stderr { + eprintln!("{}", exit.text.trim_end()); + } else { + println!("{}", exit.text.trim_end()); + } +} + +/// Parse an argv whose first word is the program name. A help/version request +/// or a usage error prints the rendered response and exits with its status. +fn parse_cli_or_exit(argv: &[String]) -> Cli { + let words: Vec = + argv.iter().skip(1).map(std::ffi::OsString::from).collect(); + match Cli::embedded_outcome(&words) { + usage_rs::embedded::Outcome::Parsed(cli) => cli, + usage_rs::embedded::Outcome::Exit(exit) => { + print_parser_response(&exit); + std::process::exit(exit.code) + } + } +} + /// `--reporter ` for `nub run`. `default` is the existing prefixed / /// streamed / aggregated human output; `silent` is `-s`; `ndjson` is machine /// output (see [`emit_ndjson`]). -#[derive(Clone, Copy, PartialEq, Eq, Debug, clap::ValueEnum)] +#[derive(Clone, Copy, PartialEq, Eq, Debug, usage_rs::ValueEnum)] pub enum ReporterMode { Default, Silent, @@ -715,71 +737,78 @@ pub fn normalize_invocation_environment() { /// auto-flag injection, .env loading, and more. Drop-in replacement /// for `node` — anything `node ` accepts, `nub ` also /// accepts, plus subcommands. -#[derive(Parser, Debug)] -#[command( +#[derive(usage_rs::Cli, Debug)] +#[usage( name = "nub", about = "The all-in-one Node.js toolkit", - long_about = None, - disable_help_subcommand = true, - disable_version_flag = true, - args_conflicts_with_subcommands = true, + disable_help_subcommand, + disable_version_flag, + unknown_flags = "error", + args_override_self = false )] pub struct Cli { /// Print version. - #[arg(short = 'v', short_alias = 'V', long)] + #[usage(short = 'v', short = 'V', long)] pub version: bool, - #[command(subcommand)] + #[usage(subcommand)] pub command: Option, /// Run as if started in . - #[arg(long, global = true, value_name = "DIR")] + #[usage(long, global, value_name = "DIR")] pub cwd: Option, /// Suppress Nub's non-error output. - #[arg(short = 's', long, global = true)] + #[usage(short = 's', long, global)] pub silent: bool, /// Increase Nub's log verbosity (repeatable). - #[arg(long, global = true, action = clap::ArgAction::Count)] + #[usage(long, global, count)] pub verbose: u8, /// Color mode for Nub's output. - #[arg(long, global = true, default_value = "auto", default_missing_value = "always", num_args = 0..=1, require_equals = true)] + #[usage( + long, + global, + value_enum, + default = "auto", + default_missing = "always", + require_equals + )] pub color: ColorWhen, - // Declared to clap as well as caught by the pre-subcommand argv scan, because + // Declared to the parser as well as caught by the pre-subcommand argv scan, because // pnpm accepts it in BOTH positions and the scan only sees tokens before the // verb: without this, `nub run -r --no-color build` was refused by the parser // while the pre-verb spelling worked. // - // Kept as a plain comment, NOT a doc comment: clap renders a doc comment into + // Kept as a plain comment, NOT a doc comment: the parser renders a doc comment into // `--help`, and a `global` arg's text lands in EVERY subcommand's help — where // `cli_grammar_parity` greps for the parser's rejection wording to decide // whether a form was refused. Quoting that wording here made every probe in // that suite read as a rejection. /// Disable color. The pnpm-compatible spelling of `--color=never`. - #[arg(long = "no-color", global = true, conflicts_with = "color")] + #[usage(long = "no-color", global, conflicts("--color"))] pub no_color: bool, /// Enable watch mode (alias for `nub watch`). - #[arg(long)] + #[usage(long)] pub watch: bool, /// File to execute, or `-` for stdin. When no subcommand matches, /// the first positional is treated as a file path and everything /// after it passes through to Node. - #[arg(trailing_var_arg = true)] + #[usage(arg, double_dash = "automatic")] pub args: Vec, } // One of these is built once per process, straight from argv, and matched // immediately — it is never held in a collection, moved in a hot loop, or sent // across a channel, so the size gap between the largest variant and the rest buys -// nothing to fix. Boxing a clap `Subcommand` variant would also put an indirection +// nothing to fix. Boxing a `Subcommands` variant would also put an indirection // in front of every field the parser writes and every match arm reads. #[allow(clippy::large_enum_variant)] -#[derive(Subcommand, Debug)] +#[derive(usage_rs::Subcommands, Debug)] pub enum Command { /// Run a package.json script (workspace-aware). Run { @@ -787,109 +816,109 @@ pub enum Command { script: Option, /// Disable Nub's runtime augmentation for this invocation. - #[arg(long)] + #[usage(long)] node: bool, /// Run in all workspace packages. `--workspaces` is the npm-style alias. - #[arg(short = 'r', long = "recursive", visible_alias = "workspaces")] + #[usage(short = 'r', long = "recursive", visible_alias = "workspaces")] recursive: bool, /// Filter workspace packages by name or glob. Repeatable: multiple /// `--filter`s union; `!`-prefixed filters subtract. `-F` is the alias. - #[arg(short = 'F', long)] + #[usage(short = 'F', long)] filter: Vec, /// npm-style member selection: alias for `--filter `. Long-only /// (the short `-w` is pnpm's `--workspace-root`). Repeatable. - #[arg(long = "workspace", value_name = "NAME")] + #[usage(long = "workspace", value_name = "NAME")] workspace: Vec, /// Run from the workspace root regardless of cwd. - #[arg(short = 'w', long)] + #[usage(short = 'w', long)] workspace_root: bool, /// Add the workspace root package to the recursive set (npm-style; /// distinct from `--workspace-root`, which targets *only* the root). - #[arg(long)] + #[usage(long)] include_workspace_root: bool, /// Error if the filter selects zero packages. (Nub also errors on a /// zero-match filter by default; this is the explicit form.) - #[arg(long)] + #[usage(long)] fail_if_no_match: bool, /// Skip `pre` / `post` lifecycle hooks for every script run. - #[arg(long)] + #[usage(long)] ignore_scripts: bool, /// Override the shell used to invoke the script command. - #[arg(long, value_name = "PATH")] + #[usage(long, value_name = "PATH")] script_shell: Option, /// Buffer each package's output and flush it on completion (no /// interleaving). Default on CI / non-TTY. - #[arg(long)] + #[usage(long)] aggregate_output: bool, /// Skip topological predecessors of (CI restart-after-failure). - #[arg(long, value_name = "PKG")] + #[usage(long, value_name = "PKG")] resume_from: Option, /// Max concurrent packages per topological chunk. - #[arg(long, value_name = "N")] + #[usage(long, value_name = "N")] workspace_concurrency: Option, /// Run all packages concurrently with no topological ordering. - #[arg(long)] + #[usage(long)] parallel: bool, /// Stop the run on first failure. This is the default; the flag is /// accepted for explicitness/muscle-memory and is a no-op on its own. - #[arg(long)] + #[usage(long)] bail: bool, /// Don't stop on first failure; collect all results. - #[arg(long = "no-bail")] + #[usage(long = "no-bail")] no_bail: bool, /// Reverse topological order (dependents before dependencies). - #[arg(long)] + #[usage(long)] reverse: bool, /// Skip topological sort; treat all packages as one flat set. - #[arg(long = "no-sort")] + #[usage(long = "no-sort")] no_sort: bool, /// Run packages strictly one at a time, ignoring topological order /// (equivalent to `--no-sort --workspace-concurrency 1`). - #[arg(long, conflicts_with = "parallel")] + #[usage(long, conflicts("--parallel"))] sequential: bool, /// Stream output with package-name prefix. - #[arg(long)] + #[usage(long)] stream: bool, /// Output reporter: `default` (prefixed/aggregated), `silent` (= `-s`), /// or `ndjson` (one JSON object per line for CI parsing). - #[arg(long, value_enum, value_name = "MODE")] + #[usage(long, value_enum, value_name = "MODE")] reporter: Option, /// Drop the ` + + diff --git a/vendor/aube/docs/.vitepress/theme/banner.css b/vendor/aube/docs/.vitepress/theme/banner.css index 1ec365dd3..fb7721fc2 100644 --- a/vendor/aube/docs/.vitepress/theme/banner.css +++ b/vendor/aube/docs/.vitepress/theme/banner.css @@ -8,12 +8,13 @@ gap: 0.75rem; align-items: center; justify-content: center; - padding: 0.5rem 2.75rem; + padding: 0.5rem 3.25rem 0.5rem 2.75rem; background: var(--aube-coral-dark, #9e4a2a); color: #fff; font-size: 0.9rem; line-height: 1.4; text-align: center; + min-height: 2.75rem; } /* Reserve breathing room at the layout bottom so content near the @@ -29,7 +30,9 @@ don't need a fallback for the banner-less case if we later relax the gate. */ body:has(> .jdx-banner) .Layout { - padding-bottom: calc(var(--vp-layout-top-height, 0px) + var(--vp-nav-height, 64px)); + padding-bottom: calc( + var(--vp-layout-top-height, 0px) + var(--vp-nav-height, 64px) + ); } .jdx-banner a { @@ -48,7 +51,13 @@ body:has(> .jdx-banner) .Layout { font-size: 1.25rem; cursor: pointer; line-height: 1; - padding: 0 0.5rem; + display: grid; + place-items: center; + width: 2.75rem; + height: 2.75rem; + min-width: 44px; + min-height: 44px; + padding: 0; opacity: 0.7; } .jdx-banner button:hover { @@ -59,13 +68,13 @@ body:has(> .jdx-banner) .Layout { flex-direction: column; gap: 0.125rem; font-size: 0.8rem; - padding: 0.5rem 2.25rem; + padding: 0.5rem max(2.75rem, 44px); line-height: 1.3; text-wrap: balance; } .jdx-banner button { - top: 0.25rem; - right: 0.25rem; - transform: none; + top: 50%; + right: 0; + transform: translateY(-50%); } } diff --git a/vendor/aube/docs/.vitepress/theme/banner.ts b/vendor/aube/docs/.vitepress/theme/banner.ts index 6aa022cc3..0dbe65179 100644 --- a/vendor/aube/docs/.vitepress/theme/banner.ts +++ b/vendor/aube/docs/.vitepress/theme/banner.ts @@ -11,18 +11,99 @@ interface BannerData { const ENDPOINT = "https://jdx.dev/banner.json"; const STORAGE_KEY = "jdx-banner-dismissed"; +const CACHE_KEY = "jdx-banner-cache"; +let activeBanner: + | { + id: string; + element: HTMLElement; + observer: ResizeObserver | null; + update: (banner: BannerData) => void; + cancelExpiration: () => void; + } + | undefined; + +function getDismissedId(): string | null { + try { + return localStorage.getItem(STORAGE_KEY); + } catch { + return null; + } +} export function initBanner(): void { if (typeof window === "undefined") return; - fetch(ENDPOINT) - .then((r) => (r.ok ? (r.json() as Promise) : null)) + const cachedBanner = readCachedBanner(); + if (cachedBanner) render(cachedBanner, false); + + const controller = new AbortController(); + const timeout = window.setTimeout(() => controller.abort(), 5000); + fetch(ENDPOINT, { signal: controller.signal }) + .then((r) => { + if (!r.ok) throw new Error(`banner request failed: ${r.status}`); + return r.json() as Promise; + }) .then((b) => { - if (!b || !b.enabled) return; - if (isExpired(b.expires)) return; - if (localStorage.getItem(STORAGE_KEY) === b.id) return; + if ( + !b || + !b.enabled || + isExpired(b.expires) || + getDismissedId() === b.id + ) { + removeActiveBanner(); + clearReserved(); + return; + } + if (activeBanner?.id === b.id) { + activeBanner.update(b); + return; + } render(b); }) - .catch(() => {}); + .catch(() => { + clearCachedReservation(); + if (!activeBanner) clearCurrentReservation(); + }) + .finally(() => window.clearTimeout(timeout)); +} + +function readCachedBanner(): BannerData | null { + if ( + !document.documentElement.style.getPropertyValue("--vp-layout-top-height") + ) { + return null; + } + try { + const cached = JSON.parse(localStorage.getItem(CACHE_KEY) ?? "null"); + const b = cached?.banner; + return b && + typeof b.id === "string" && + typeof b.enabled === "boolean" && + typeof b.message === "string" && + (!b.link || typeof b.link === "string") && + (!b.linkText || typeof b.linkText === "string") && + (!b.expires || typeof b.expires === "string") + ? b + : null; + } catch { + return null; + } +} + +function clearCachedReservation(): void { + try { + localStorage.removeItem(CACHE_KEY); + } catch { + // localStorage unavailable — nothing cached to clear. + } +} + +function clearCurrentReservation(): void { + document.documentElement.style.removeProperty("--vp-layout-top-height"); +} + +function clearReserved(): void { + clearCurrentReservation(); + clearCachedReservation(); } function isExpired(expires: string | undefined): boolean { @@ -41,50 +122,133 @@ function isHttpUrl(value: string): boolean { } } -function render(b: BannerData): void { +function cacheBanner(b: BannerData, height: number): void { + try { + localStorage.setItem( + CACHE_KEY, + JSON.stringify({ + id: b.id, + height: `${height}px`, + width: window.innerWidth, + fontSize: getComputedStyle(document.documentElement).fontSize, + pixelRatio: window.devicePixelRatio, + cachedAt: Date.now(), + expires: b.expires ?? null, + banner: b, + }), + ); + } catch { + // localStorage unavailable — skip caching. + } +} + +function removeActiveBanner(): void { + activeBanner?.cancelExpiration(); + activeBanner?.observer?.disconnect(); + activeBanner?.element.remove(); + activeBanner = undefined; +} + +function render(b: BannerData, persist = true): void { + removeActiveBanner(); + let currentBanner = b; + let shouldPersist = persist; const el = document.createElement("div"); el.className = "jdx-banner"; el.setAttribute("role", "region"); el.setAttribute("aria-label", "Site announcement"); const msg = document.createElement("span"); - msg.textContent = b.message; el.appendChild(msg); - if (b.link && isHttpUrl(b.link)) { - const a = document.createElement("a"); - a.href = b.link; - a.target = "_blank"; - a.rel = "noopener"; - a.textContent = b.linkText || "Learn more"; - el.appendChild(a); - } + const link = document.createElement("a"); + link.target = "_blank"; + link.rel = "noopener"; + el.appendChild(link); + + const updateContent = (next: BannerData) => { + currentBanner = next; + msg.textContent = next.message; + if (next.link && isHttpUrl(next.link)) { + link.href = next.link; + link.textContent = next.linkText || "Learn more"; + link.hidden = false; + } else { + link.removeAttribute("href"); + link.textContent = ""; + link.hidden = true; + } + }; + updateContent(b); const syncHeight = () => { document.documentElement.style.setProperty( "--vp-layout-top-height", `${el.offsetHeight}px`, ); + if (shouldPersist) cacheBanner(currentBanner, el.offsetHeight); }; const observer = typeof ResizeObserver !== "undefined" ? new ResizeObserver(syncHeight) : null; + let expirationTimer: number | undefined; + const cancelExpiration = () => { + if (expirationTimer !== undefined) window.clearTimeout(expirationTimer); + expirationTimer = undefined; + }; + const scheduleExpiration = () => { + cancelExpiration(); + if (!currentBanner.expires) return; + const expiresAt = Date.parse(currentBanner.expires); + if (Number.isNaN(expiresAt)) return; + const expire = () => { + if (activeBanner?.element !== el) return; + const remaining = expiresAt - Date.now(); + if (remaining <= 0) { + removeActiveBanner(); + clearReserved(); + return; + } + expirationTimer = window.setTimeout( + expire, + Math.min(remaining, 2_147_483_647), + ); + }; + expire(); + }; + const update = (next: BannerData) => { + shouldPersist = true; + updateContent(next); + scheduleExpiration(); + requestAnimationFrame(syncHeight); + }; const btn = document.createElement("button"); btn.type = "button"; btn.setAttribute("aria-label", "Dismiss"); btn.textContent = "\u00d7"; btn.addEventListener("click", () => { - localStorage.setItem(STORAGE_KEY, b.id); - observer?.disconnect(); - el.remove(); - document.documentElement.style.removeProperty("--vp-layout-top-height"); + try { + localStorage.setItem(STORAGE_KEY, currentBanner.id); + } catch { + // Dismiss for this page even when localStorage is unavailable. + } + removeActiveBanner(); + clearReserved(); }); el.appendChild(btn); document.body.prepend(el); + activeBanner = { + id: b.id, + element: el, + observer, + update, + cancelExpiration, + }; + scheduleExpiration(); requestAnimationFrame(syncHeight); observer?.observe(el); diff --git a/vendor/aube/docs/.vitepress/theme/custom.css b/vendor/aube/docs/.vitepress/theme/custom.css index b706f8afa..580c6a34c 100644 --- a/vendor/aube/docs/.vitepress/theme/custom.css +++ b/vendor/aube/docs/.vitepress/theme/custom.css @@ -77,6 +77,86 @@ body { font-family: var(--aube-sans); } +.aube-team-grid { + display: grid; + gap: 18px; + grid-template-columns: repeat(3, minmax(0, 1fr)); + margin: 32px 0 48px; +} + +.vp-doc a.aube-team-member { + background: linear-gradient(180deg, var(--aube-bg-soft), var(--aube-bg-alt)); + border: 1px solid var(--aube-line); + border-radius: 14px; + color: var(--aube-text); + display: flex; + flex-direction: column; + min-width: 0; + padding: 24px; + text-decoration: none; + transition: + border-color 0.18s ease, + transform 0.18s ease; +} + +.vp-doc a.aube-team-member:hover { + border-color: var(--aube-faint); + transform: translateY(-2px); +} + +.aube-team-member img { + border: 1px solid var(--aube-line); + border-radius: 50%; + height: 96px; + margin: 0 0 24px; + object-fit: cover; + width: 96px; +} + +.aube-team-role { + color: var(--aube-accent); + font-family: var(--aube-mono); + font-size: 11px; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +.aube-team-member h2 { + border: 0; + color: var(--aube-text); + font-family: var(--aube-serif); + font-size: 30px; + font-weight: 400; + line-height: 1.05; + margin: 10px 0 4px; + padding: 0; +} + +.aube-team-handle { + color: var(--aube-faint); + font-family: var(--aube-mono); + font-size: 12px; +} + +.aube-team-company { + color: var(--aube-muted); + font-size: 13px; + margin-top: 12px; +} + +.aube-team-member p { + color: var(--aube-muted); + font-size: 15px; + line-height: 1.5; + margin: 18px 0 0; +} + +@media (max-width: 760px) { + .aube-team-grid { + grid-template-columns: 1fr; + } +} + /* Navbar logo */ .VPNavBarTitle .VPImage.logo { display: none; diff --git a/vendor/aube/docs/.vitepress/theme/index.ts b/vendor/aube/docs/.vitepress/theme/index.ts index 84392419b..97848db76 100644 --- a/vendor/aube/docs/.vitepress/theme/index.ts +++ b/vendor/aube/docs/.vitepress/theme/index.ts @@ -7,6 +7,7 @@ import EndevFooter from "./EndevFooter.vue"; import EndevSponsors from "./EndevSponsors.vue"; import ErrorCodesTable from "./ErrorCodesTable.vue"; import HomeLanding from "./HomeLanding.vue"; +import TeamGrid from "./TeamGrid.vue"; import { initBanner } from "./banner"; import "./custom.css"; @@ -23,6 +24,7 @@ export default { app.component("BenchChart", BenchChart); app.component("ErrorCodesTable", ErrorCodesTable); app.component("HomeLanding", HomeLanding); + app.component("TeamGrid", TeamGrid); initBanner(); }, } satisfies Theme; diff --git a/vendor/aube/docs/aube-lock.yaml b/vendor/aube/docs/aube-lock.yaml index 9943f8f71..edc638af4 100644 --- a/vendor/aube/docs/aube-lock.yaml +++ b/vendor/aube/docs/aube-lock.yaml @@ -7,22 +7,18 @@ settings: importers: .: - dependencies: - postcss: - specifier: ^8 - version: 8.5.15 devDependencies: sharp: specifier: ^0.35.0 - version: 0.35.2 + version: 0.35.4 vitepress: specifier: ^1.5.0 - version: 1.6.4(postcss@8.5.15) + version: 1.6.4 packages: - '@algolia/abtesting@1.21.0': - resolution: {integrity: sha512-kGvHfBa9oQCvZh0YXeguSToBD9GNJ+gzUZQ9KPTg+KSsM36obYcsKPoX0NnlJtPflHXu7RkMaIi44xs9meR6Zw==} + '@algolia/abtesting@1.23.0': + resolution: {integrity: sha512-j45MBISstltys9QyQ4xf6quRiN1g7vMuwQL9VM4dx8YuRZvCQ173b9royZAx6iAbRX3IB1VnG1z//NuwyQ8jpQ==} engines: {node: '>= 14.0.0'} '@algolia/autocomplete-core@1.17.7': @@ -45,56 +41,56 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/client-abtesting@5.55.0': - resolution: {integrity: sha512-Zt2GjIm7vsaf7K23tk5JmtcVNc38G9p0C2L2Lrm06miyLE/NL2etHtHInvuLc1DjxTp7Y2nId4X/tzwo372K8Q==} + '@algolia/client-abtesting@5.57.0': + resolution: {integrity: sha512-JVFFujiZUCguk5tz3LZr4fTQxqpIrj4/Jw3SI7kMljSqtfLxYn/s/TWH0J2s4iNfsDpxPhgFGMotCpmDI4kZ8w==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.55.0': - resolution: {integrity: sha512-7BueMuWYg/KBA2EX9zsQ+3OAleEyrJcB+SV5Al/9pLjMQq5mXB/8M5HaUPqZwN812g5kLzj9j43VThlZgWq0hg==} + '@algolia/client-analytics@5.57.0': + resolution: {integrity: sha512-6KqECK4ED3JJQEoDrQWnGPQzElA828xAD4qK5ceawNNyP/LcSvzAoLHjFkoTPksZ/kxj6VUtCRH+IHZesLltng==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.55.0': - resolution: {integrity: sha512-pJZIyhvUrs+B7c5Lw0iP5yP/NsqJMda7pKRYbfG4KtfGIVSMcAalZhdqL5UX8Z9DOC4KxO9tKV5RDeVjZU0VfQ==} + '@algolia/client-common@5.57.0': + resolution: {integrity: sha512-uqpGF3oXYsoCbQq5d7BzNrNTfIfuvJyGP1CKvSW27T9boUg7KOwyxsAw1AX0a3jSW2HrYEJ/NN+Z4MiGivbpeQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.55.0': - resolution: {integrity: sha512-RydkKDhx0GWTYuw0ndTXHGM8hD8hgwftKE65FfnJZb5bPc9CevOqv3qNPUQiviAwkqT9hQNH31uDGeV3yZkgfA==} + '@algolia/client-insights@5.57.0': + resolution: {integrity: sha512-u5NboJVJXDEFplvNnqqX4CxkXPYysjJRj47hOSh9329H8kG5gFLKJBIiS5utMQ+GZm8xQl3Te7NInDk6elEADQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.55.0': - resolution: {integrity: sha512-XiS7gdFq/COWiwdWXZ8+RHuewfEo03TkGESk44zU8zTc/Z6R8fm4DNmV52swJKkeB2N9iC7NKpgpM22OOkcgTw==} + '@algolia/client-personalization@5.57.0': + resolution: {integrity: sha512-uzc0b2LmHAK9/QID4xeo35OG84AkZl4YewkCqawqAOGLjT2eZpM/OZx45ESygMHG30Ws+ZTSdluPtMJcUnrbWQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.55.0': - resolution: {integrity: sha512-LBEJ/q+hn1nJ0aYg5IcWgLNCPjWHTahWmpHNx1qUZMho+9CyWM6LaEnhac45UHjQm/j0m374HP685VrpL133lA==} + '@algolia/client-query-suggestions@5.57.0': + resolution: {integrity: sha512-dIAhnM6ue/ssa5PjgNfu4g8A4yTojl9ZOUzZU3wIaIKRerL2R/3Emuf9n/D6ICXXP167KC6XCeC7nliSw7cuSw==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.55.0': - resolution: {integrity: sha512-2/9jUXKH4IcdU5qxH6cbDH46ZBe46G7xr+MrcHwgEXZcUfdAvUgLSH53MAWuMgxvw0G5yoqiWMifHc62Os0fiQ==} + '@algolia/client-search@5.57.0': + resolution: {integrity: sha512-2TTPTTKSJmCptvhCm4Xf3bBYMqZni+Pgc2hVdqc4l9wsBpSJNVTVIKpnd10OubUgkGcmppVDj1XQqYaf6EnPSQ==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.55.0': - resolution: {integrity: sha512-80tKsQgxXWo+jK0v4YGCHqyTEXawhAKYyr3kOdN51ElfRqUFjZNPVhZk6vRiqSqXfvrH85ytacT3cbJR6+qolA==} + '@algolia/ingestion@1.57.0': + resolution: {integrity: sha512-W4JseHKt+pzOxlFV+T3MWEG0h4Z2Se5zjoXUD0ewlw8aOWMG/yjRdopUdLQsXULepB/My2tDuZjkwk2sMfsUrQ==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.55.0': - resolution: {integrity: sha512-4UjmAL8ywGW4rCfK6Qmgw3wIjbrO2wl2s4Eq56JTiN40L2t0XTv0HZkYAmr6nfeiXO0he/2crvZRX6SATSepag==} + '@algolia/monitoring@1.57.0': + resolution: {integrity: sha512-BrxJVE0/eLinEPICCD7BKN/2xnt0nkjge70u8zzE2ISP3fuB3tjLgcwpanUycvlHBFLI4gK0l5ol54p6IYuR/Q==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.55.0': - resolution: {integrity: sha512-LMpJPtIkfDsHIx5Ga+baNr22ntYbY+e2wT7MSIc/FjAnu9wnBFhx1H/GfhmP/c5/IvbThDX+3ilxPRjSfCI8aA==} + '@algolia/recommend@5.57.0': + resolution: {integrity: sha512-Gc29jkeiLKlVfHvyrIgyUHHE+aYTdXEeLfK42rjr5/1TTVsYwUJz0XkvoIBIqfMjcDg6gXeHb1jTUZ0H+SYIlQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.55.0': - resolution: {integrity: sha512-tDymJ7nFOAoUuecma3usK6o94dp8m4HYFDGh4ByYQXWkv14cpmDn+nWdylmcZO0Qvco107vqDo4+Anksnl8w1Q==} + '@algolia/requester-browser-xhr@5.57.0': + resolution: {integrity: sha512-PIPnPN7MP3fp2VAi01BVXhCWmD366ZB2Hkq5TlYKtThd4KxUtMmaaNDpFgVCTXtSIqWVZLJntOHRvxg/sIPd8Q==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.55.0': - resolution: {integrity: sha512-6IDSB5o5dkDPQ4LdOW0Yuw/qy5MdWlO2xDHgPVZgW4YDjbxvnX5PAiV7/WWZdWyVObScZZnnHpPbiqfYs/zBLg==} + '@algolia/requester-fetch@5.57.0': + resolution: {integrity: sha512-AX3RlOudXMdTwtwUqdAf5hAVLvXfOZZH1FZh6ALDdrhVLT0TtAIe48N6nYcWcTnwoTxK/wDIQqZ19IMjK8zJAA==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.55.0': - resolution: {integrity: sha512-Yyyne4l//vDSdg4MhYJkaVne+KEPi833eCj3/T/87ernTwrvP6j9biXXZELsN8sLI/f2ndV/vugDIy2jdJQB6g==} + '@algolia/requester-node-http@5.57.0': + resolution: {integrity: sha512-cWZc1dKb7wy9/wPpwMtL1y89gK2G7y2A47Coa7zwf1ydtIeJm4+S+XxoQ2b/ZRiQnrC1YHavLjYUPDCdnT7Khg==} engines: {node: '>= 14.0.0'} '@babel/helper-string-parser@7.29.7': @@ -105,13 +101,13 @@ packages: resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.7': - resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + '@babel/parser@7.29.8': + resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/types@7.29.7': - resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} '@docsearch/css@3.8.2': @@ -137,6 +133,33 @@ packages: search-insights: optional: true + '@emnapi/runtime@1.11.3': + resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} @@ -149,20 +172,110 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@iconify-json/simple-icons@1.2.87': - resolution: {integrity: sha512-8YciStObhSji3OZFmWAWK6kBujyqO5bLCxeDwLxf3CR3F4PVelq7keC2LBvgTqviWzSTysj5/g4PCFLiAMVGsw==} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@iconify-json/simple-icons@1.2.93': + resolution: {integrity: sha512-/XhANjfGYOuqvSR3TmUnkQkINvQ4GVjVuukvymRbxtVFBvIq/yiXJqCDycKcQPT401OYT9H2vIY6ihAlz1QIAw==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -171,117 +284,312 @@ packages: resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} - '@img/sharp-darwin-arm64@0.35.2': - resolution: {integrity: sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg==} + '@img/sharp-darwin-arm64@0.35.4': + resolution: {integrity: sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==} engines: {node: '>=20.9.0'} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.35.2': - resolution: {integrity: sha512-BaktuGPCeHJMARpodR8jK4uKiZrPAy9WrfQW0sdI37clracq8Bp01AYS3SZgi5FS/y5twa9t4+LIuuxQjqRrWw==} + '@img/sharp-darwin-x64@0.35.4': + resolution: {integrity: sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==} engines: {node: '>=20.9.0'} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.3.1': - resolution: {integrity: sha512-4V/M3roRMTYjiwZY9IOVQOE8OyeCxFAkYmyZDrZl51uOKjibm3oeEJ4WAmLxutAfzFbC9jqUiPs2gbnGflH+7g==} + '@img/sharp-freebsd-wasm32@0.35.4': + resolution: {integrity: sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==} + engines: {node: '>=20.9.0'} + os: [freebsd] + + '@img/sharp-libvips-darwin-arm64@1.3.3': + resolution: {integrity: sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.3.1': - resolution: {integrity: sha512-c0/DxItpJv2+dGhgycJBBgotdqruGYDvA79drdh0MD1dFpy7JzJ/PlXwi1H4rFf0eTy8tgbI91aHDnZIceY3jQ==} + '@img/sharp-libvips-darwin-x64@1.3.3': + resolution: {integrity: sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.3.1': - resolution: {integrity: sha512-JznefmcK9j1JKPz8AkQDh89kjojubyfOasWBPKfzMIhPwsgDy9evpE/naJTXXXmghS1iFwR8u/kTwh/I2/+GCw==} + '@img/sharp-libvips-linux-arm64@1.3.3': + resolution: {integrity: sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-x64@1.3.1': - resolution: {integrity: sha512-+c8ukgwU62DS54nCAjw7keOfHUkmr0B5QHEdcOqRnodF/MNXJbVI8Eopoj4B/0H8Asr65I+A4Amrn7a85/md6A==} + '@img/sharp-libvips-linux-arm@1.3.3': + resolution: {integrity: sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-ppc64@1.3.3': + resolution: {integrity: sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-riscv64@1.3.3': + resolution: {integrity: sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-s390x@1.3.3': + resolution: {integrity: sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-x64@1.3.3': + resolution: {integrity: sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linuxmusl-arm64@1.3.1': - resolution: {integrity: sha512-qlKb/pwbkAi1WMsJrYHk7CuDrd12s27U2QnRhFYUoJNrRCmkosMTttuRFat/DDB3IlDm5qE1TJgZ4JDnHX8Ldw==} + '@img/sharp-libvips-linuxmusl-arm64@1.3.3': + resolution: {integrity: sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-libvips-linuxmusl-x64@1.3.1': - resolution: {integrity: sha512-yO21HwoUVLN8Qa+/SBjQLMYwBWAVJjeGPNe+hc0OUeMeifEtJqu5a1c4HayE1nNpDih9y3/KkoltfkDodmKAlg==} + '@img/sharp-libvips-linuxmusl-x64@1.3.3': + resolution: {integrity: sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-linux-arm64@0.35.2': - resolution: {integrity: sha512-af12Pnd0ZGu2HfP8NayB0kk6eC/lrfbQE6HlR4jD+34wdJ1Vw9TF6TMn6ZvffT+WgqVsl0hRbmNvz2u/23VmwA==} + '@img/sharp-linux-arm64@0.35.4': + resolution: {integrity: sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==} engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-linux-x64@0.35.2': - resolution: {integrity: sha512-gi0zFJJRLswfCZmHtJdikXPOc5u7qamSOS3NHedLqLd4W8Q0NqjdBr6TTRIgsfFjqfTsHFgdfvJ9LwqSgcHiAA==} + '@img/sharp-linux-arm@0.35.4': + resolution: {integrity: sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==} + engines: {node: '>=20.9.0'} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-ppc64@0.35.4': + resolution: {integrity: sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==} + engines: {node: '>=20.9.0'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-riscv64@0.35.4': + resolution: {integrity: sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==} + engines: {node: '>=20.9.0'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-s390x@0.35.4': + resolution: {integrity: sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==} + engines: {node: '>=20.9.0'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-x64@0.35.4': + resolution: {integrity: sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==} engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-linuxmusl-arm64@0.35.2': - resolution: {integrity: sha512-siWbOW1u6HFnFLrp0waKyW7VEf7jYvcDWdrXEFa8AkdAQgEvuu5Fz8/Y70w9EeqAdwDtfU012BhEHHaDqvQNzg==} + '@img/sharp-linuxmusl-arm64@0.35.4': + resolution: {integrity: sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==} engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-linuxmusl-x64@0.35.2': - resolution: {integrity: sha512-YBqMMcjDi4QGYiSn4vNOYBhmlC4z5AXqkOUUqI2e0AFA4urNv4ESgOgwNl3K+4etQhha0twXlzeF20bbULm9Yg==} + '@img/sharp-linuxmusl-x64@0.35.4': + resolution: {integrity: sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==} engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] libc: [musl] + '@img/sharp-wasm32@0.35.4': + resolution: {integrity: sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==} + engines: {node: '>=20.9.0'} + + '@img/sharp-webcontainers-wasm32@0.35.4': + resolution: {integrity: sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==} + engines: {node: '>=20.9.0'} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.35.4': + resolution: {integrity: sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.35.4': + resolution: {integrity: sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==} + engines: {node: ^20.9.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.35.4': + resolution: {integrity: sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [win32] + '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@rollup/rollup-darwin-arm64@4.62.2': - resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==} + engines: {node: ^22.20 || ^24.12 || >=25} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-android-arm-eabi@4.63.0': + resolution: {integrity: sha512-70TeIFezKKy65LgAVyQh+w94/gjWhvPWaLaGGeMEgVrPkQhuj/M5bAYYZzIFUj9Y69oHyTm5Um/R6gcLh4A8JA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.63.0': + resolution: {integrity: sha512-YC86tYIHK6M1IV+wbzO+Bxk8RCBr6ZyWYgWxUCzaZD8mc8rrFoIJDNzDrkHBYRc/wKdrsIXmm6/F7NzrAO+OrA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.63.0': + resolution: {integrity: sha512-oI+ECtUcli0y0fi4xpW82GdPIXdTkI8G8DSjG2LRuw09fPAGykaWYH/hXxiKuTxiAjiPSTIIuYUqof5Z2hShWw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.62.2': - resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} + '@rollup/rollup-darwin-x64@4.63.0': + resolution: {integrity: sha512-NwV+1s7TiKrMe4owHyKB/dTLD7ZJD0YEBEhIz+hvav1Cu1GReJjF+rsdNwjzENQeIAbE/CoNiaAc5Vz2h5DPAA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm64-gnu@4.62.2': - resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} + '@rollup/rollup-freebsd-arm64@4.63.0': + resolution: {integrity: sha512-tWtHBTu5gOPK4u4Urtk4qAHW3zZ9rQAmbssO8gp7ELvGTGI3aCiq6NqyTQ0PCIg7KbHJF2UkGDDs77YZGxfjCA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.63.0': + resolution: {integrity: sha512-2qPoJiwTvtHQ27NnYvTnsgk8laXWYuVmNESG8WFZBcEPKLfZ3I27qBJarjVRQtwGeYyRfq5ZowHXih9lm2BItw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.63.0': + resolution: {integrity: sha512-FQwsTRvLNuHoTdICABJQfbPUSEueISGmnpT06tXTMpfprf5NiKLSXKA0A+w45wJnCmZAnzgqBwbt6ARFuyOi5w==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.63.0': + resolution: {integrity: sha512-BBVTXziw8mY1a4ZbWME9tZyfzqXCDPqaC7Z3heQ29p5dkvXzwL0NwelO8zLa8c3RBKvl3YTuSnBgsBhYBtwjIw==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.63.0': + resolution: {integrity: sha512-w2Iyy9+RqKwx3d9qWMKsJg0FfRBsY0/pXNv0mCQ3ueRvJI6+QAScfD4nrMlzFLs2HNVW6Ew+mtZfDl9b7Ew5/Q==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.62.2': - resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} + '@rollup/rollup-linux-arm64-musl@4.63.0': + resolution: {integrity: sha512-YK++KtrFRHYE0P6/RtYEAy9t8F37znP+K03RrIuLPYOL6SVlObRumf/0OE4V/h63xL9DwkWbNssZfmA9hawuDA==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-x64-gnu@4.62.2': - resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} + '@rollup/rollup-linux-loong64-gnu@4.63.0': + resolution: {integrity: sha512-aBfOG6fP7YkkPmTqPwufRJeFyz7WPpECv9XNbnsk9+vg7rxdih0lbtEel7jcRng4LZrrmU3FfitCFyEj4BWDWg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.63.0': + resolution: {integrity: sha512-LGaHEOeHNAag9VuS1Crs5DFg4RrU9MPi2nVnNJk9DTePx/B6RRYKVmrIXt2h7YOJlwjaFJ6lwtFDliZxScTLrQ==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.63.0': + resolution: {integrity: sha512-jClvk+J0FC3b7Udvegiw5/4hErbHtmsNsQgENnKXDWtNCJXsJYZH5WURvu7imDOO38xYml24eeh5x3A04ppwCw==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.63.0': + resolution: {integrity: sha512-0OJlaGK+8+B777Ql5okIpD7ua5Ro9+VB9Ve0OKa28OQJZ1RbuUBVNHK/e3pr4BROqsyPl1JrPO1ZxJseCNffcA==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.63.0': + resolution: {integrity: sha512-Ygsx+HoNH7afwi1bTIXbnTvVnsO+zurPLSYxybV1hHFVU72OWOCl6v05ql/z0hkpAPx+DK7Kn9Bi7MayCcjLTA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.63.0': + resolution: {integrity: sha512-pDQxtMGb+OvG3fLwR2OkZlSd47hW+kWg4BYMG/++sR6RqorQccwPTDsxda5hPwiIeIErAnCF9ma3SAU06bdQtQ==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.63.0': + resolution: {integrity: sha512-0BnUG9mS8I4SSHr3XsxVhuCMEiu+rX61xxZF5vujso4LaiAGFZFxvDjg6Xn6tLPNTUAfuCvQYas4LMQMVsKRSQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.63.0': + resolution: {integrity: sha512-Adu/VttB1dpPNW+FEacrZ+xVm9tFty84+RrFzsqlFaPxoJB+9XXyDGtp5dCOoBwGBIEVH0To7lExFXEx0BIF4A==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.62.2': - resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} + '@rollup/rollup-linux-x64-musl@4.63.0': + resolution: {integrity: sha512-NQ3bDvjUbFKmP23671xUlXtKmqVsUBd6M4PQCvbmNtOy06hnQIdKHy8oG/6S3R/S6He1JgPk6A5VT+prAJMYEw==} cpu: [x64] os: [linux] libc: [musl] + '@rollup/rollup-openbsd-x64@4.63.0': + resolution: {integrity: sha512-u2eDAl4+0aFvA13GxlGBtTI3SS3sdgwgtV0HyjZ0QaQVCgNE+jqNGey+GtxWiq+wxr/UycAx/OnfJzApCFamvA==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.63.0': + resolution: {integrity: sha512-XvRb5vfW3wAZQ+ZUG21AnHHDKtNcw99eigzEhjr//NZ3u7SoBaPP0seSc7FgP7p1epAEdAoZckMW9WY/+4w70w==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.63.0': + resolution: {integrity: sha512-iZPmniy4kNBf5yo2RezbkYNNK5HPbXE9+g+twnbqSng7dtLEJy1SKoxiE/ni4FDacjyuZpEeb9U054N4EoKHYw==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.63.0': + resolution: {integrity: sha512-mFBBd+LF37fnE8JnYUOH+imj0aPFPK30vpar4ehJkgnLj9sZn8ZxiRENmLtgIwxK7TC8klF6N57fxdNBwQoqOA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.63.0': + resolution: {integrity: sha512-ujeqEY3B+zbGn3Z4Q03cUBG/LGWnBJncVT36WER31LcOsQk9+1dmINKKtvmmfChUvRbK1G0R8OhMWFgHgaZtAw==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.63.0': + resolution: {integrity: sha512-hncn90N4sOky0L2LKE5oESKLbxCPeVo4eLA2LSMoDzM+879ml4WSr+Rr4DWknNIVVvS1Hirkc9hx02W6YxS8rQ==} + cpu: [x64] + os: [win32] + '@shikijs/core@2.5.0': resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} @@ -309,14 +617,14 @@ packages: '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/hast@3.0.5': + resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==} '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} - '@types/markdown-it@14.1.2': - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + '@types/markdown-it@14.2.0': + resolution: {integrity: sha512-NoQ2yGlLWj4wpxMs+TYmRKk3thDrQ97agr7sFqfLsAlvoS8SNQuTrlObhFqG9iugdTtgOE9jpJ6FNM4ZGsa5xQ==} '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -330,8 +638,8 @@ packages: '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} - '@ungap/structured-clone@1.3.1': - resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} + '@ungap/structured-clone@1.4.0': + resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==} '@vitejs/plugin-vue@5.2.4': resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} @@ -340,43 +648,41 @@ packages: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 - '@vue/compiler-core@3.5.38': - resolution: {integrity: sha512-s99aGxWYig9ErHbct27KXEGhrBYlRI6c4MwAgXErOAbX9xiW37/uMa+XUDO69zLz83dng8UUZ70CTOJrLrYrEQ==} + '@vue/compiler-core@3.5.42': + resolution: {integrity: sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==} - '@vue/compiler-dom@3.5.38': - resolution: {integrity: sha512-JTqp25l8aFfJYF7/KmsXZjAxJz7T+SjmTJLoXVjHtc2BrSgSiW2n9Aem/cWq1OPe68A8JL06B3eVdhlP0H4TVw==} + '@vue/compiler-dom@3.5.42': + resolution: {integrity: sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==} - '@vue/compiler-sfc@3.5.38': - resolution: {integrity: sha512-DuA2GiZawSEW442iw/9+Fkol8hTgb4Ke5KkhmSry65QA7YuyMbIdy8p0XZRMvNwJdgRz307W8g1CSzdvS4nuNg==} + '@vue/compiler-sfc@3.5.42': + resolution: {integrity: sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw==} - '@vue/compiler-ssr@3.5.38': - resolution: {integrity: sha512-7s+W5Gc42FGxZMcuwl8H5B29T8BJPMdBT7KHFE+BbAuZ/iTEdTtv7z2XiMjiaUUw4w3ZcCEdHs36RuYJ2VA7bA==} + '@vue/compiler-ssr@3.5.42': + resolution: {integrity: sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA==} - '@vue/devtools-api@7.7.9': - resolution: {integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==} + '@vue/devtools-api@7.7.10': + resolution: {integrity: sha512-KxtEpUOOpFz/qOGRrAwA36QF7DqIA+FXgCYit9mk9wjbaZt0sXOFz81ElOZtKA4HbWHUdwNjZHBFsFFyp5BZiA==} - '@vue/devtools-kit@7.7.9': - resolution: {integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==} + '@vue/devtools-kit@7.7.10': + resolution: {integrity: sha512-3WNi2Kq4tbpVbmhml7RiphmAt0279oh3fKNeWMQIrltfX8Q91b4i5PL8DtyNKdwmcsGrV4fg+erwWOmD05CLIw==} - '@vue/devtools-shared@7.7.9': - resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==} + '@vue/devtools-shared@7.7.10': + resolution: {integrity: sha512-wOPslzB8vTvpxwdaOcR2qAbwmuSP0L+rhpoC6Cf56V3Jip+HWb7PQQXOUPgBNQARpXsbQX/+mvi8kKucmBGRwQ==} - '@vue/reactivity@3.5.38': - resolution: {integrity: sha512-pG6LV/NDNRbKizcUjFFLAfjaL8mcv4DmR9avNcUw2gDHBzZneuS2TWCmp633ynzxz9YYKNeEPK2I8Wraqy2HUQ==} + '@vue/reactivity@3.5.42': + resolution: {integrity: sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ==} - '@vue/runtime-core@3.5.38': - resolution: {integrity: sha512-iyW8WVfF1CpCXxncZY5Ei6rSd6oZr5DgEom//fUjRBRl56AXPD+s9ATvukRt77ZFTuYlnVA1bxY+dJB94tWVYw==} + '@vue/runtime-core@3.5.42': + resolution: {integrity: sha512-9uACtuHs7vJGkm5Bp3xu4xRDLFTIYy5DgxpToVjqGIAhAEKwQfsaLvKINhM6nFVp6bZPRFGdDqd1g52MqKsotA==} - '@vue/runtime-dom@3.5.38': - resolution: {integrity: sha512-apX2wt9sdfDshS+a2xueFZLVpt0GkRJZSoPmrW/SA4yzXTznhfcMVW59gr7h4YQeY0vJhdJkk2rsIDwgfFgC5A==} + '@vue/runtime-dom@3.5.42': + resolution: {integrity: sha512-rsCmhiWLaRxGltLwhlCWyYkFn7WAbKRh0q17eZ1A6Dq6eqc2ACQ61IIryxz0LrsvCzHSilLA9JHovVwM8CNE2g==} - '@vue/server-renderer@3.5.38': - resolution: {integrity: sha512-vue8vbf2QlV4quHqzwmJy6dWfmRhP1J8l4wtZg60CL6VoKqcPY2oe7may3+1d9qfpedjK5PRLFqd5k3Isj9mUw==} - peerDependencies: - vue: 3.5.38 + '@vue/server-renderer@3.5.42': + resolution: {integrity: sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ==} - '@vue/shared@3.5.38': - resolution: {integrity: sha512-FTW0AFZNaK5/mOqvGBwVfUlNLU38TiQn4+DQgIFUnrBBJQ1crMJ82yeGQLV5jyKFsO8yRukpbuP7x+nRbH6aug==} + '@vue/shared@3.5.42': + resolution: {integrity: sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==} '@vueuse/core@12.8.2': resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} @@ -428,8 +734,8 @@ packages: '@vueuse/shared@12.8.2': resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} - algoliasearch@5.55.0: - resolution: {integrity: sha512-af+rI+tUVeS9KWHPAZQHIHPOIC3StPRR6IwQu2nz1aQoTL6Gs5Ty3KsHCgbXMHOpoh9QqSjq8F3KJ8xmaCZSBA==} + algoliasearch@5.57.0: + resolution: {integrity: sha512-HpND7MBGctOAkd1GoQoDZCGoCpqNTS5NG1LuhElFet3RdLJkwnyTYZXZhXwtpAQPrI36fqQ3eT6KQrdKDTKu3A==} engines: {node: '>= 14.0.0'} birpc@2.9.0: @@ -447,8 +753,8 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - copy-anything@4.0.5: - resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} + copy-anything@4.1.0: + resolution: {integrity: sha512-ufbM3smX/Jbnpk5wcQjzd1MgBpzmqfNETUAyZNrGwU9foRlyHoGzMMBBCRzEhQLBjZfFDE1W2ufPXX2vdWkV8Q==} engines: {node: '>=18'} csstype@3.2.3: @@ -500,10 +806,6 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - is-what@5.5.0: - resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} - engines: {node: '>=18'} - magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -534,8 +836,8 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - nanoid@3.3.15: - resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} + nanoid@3.3.18: + resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -548,12 +850,17 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - postcss@8.5.15: - resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + postcss@8.5.26: + resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==} engines: {node: ^10 || ^12 || >=14} - preact@10.29.2: - resolution: {integrity: sha512-7tNmwg/7mzzAoB/8kSg6Hl37JraAZw3Z3A0JSY7VXlZwo82Xn0G7wKbNNs2qoF4ZEEsQGTwDAroNdqKs1ofJxQ==} + preact@10.29.8: + resolution: {integrity: sha512-ej2aVZ+vZ8WO7tvlQWRM9N63A0KzF9q4mWJfDUHgYaIofWY9hu74QdnQrjoPMmZi2/nZ5gN0bJCQF49xQqx09Q==} + peerDependencies: + preact-render-to-string: '>=5' + peerDependenciesMeta: + preact-render-to-string: + optional: true property-information@7.2.0: resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} @@ -570,8 +877,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.62.2: - resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} + rollup@4.63.0: + resolution: {integrity: sha512-T5vnZ2y4QqC3/4P+w2+JO+Q/OVdnPsv4XcSYJYMEn0R9/jjl5AgLwO9LAZMzP2lN71O6pypn91rB7lDstUkfrQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -583,9 +890,14 @@ packages: engines: {node: '>=10'} hasBin: true - sharp@0.35.2: - resolution: {integrity: sha512-FVtFjtBCMiJS6yb5CX7Sop45WFMpeGw6oRKuJnXYgf/f1ms/D7LE/ZUSNxnW7rZ/dbslQWYkoqFHGPaDBtaK4w==} + sharp@0.35.4: + resolution: {integrity: sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==} engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true shiki@2.5.0: resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} @@ -614,6 +926,9 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} @@ -678,8 +993,8 @@ packages: postcss: optional: true - vue@3.5.38: - resolution: {integrity: sha512-vAMKHfImQlYSy0C+PBue4s3ERZ2xGKfgZg5GXAsLInq1dyh2H78ILVP5sK0KPFPVW4kv+OGCIvBEondcjpZp7A==} + vue@3.5.42: + resolution: {integrity: sha512-4RyHQTbQvOPs3MfvUO1Sg0YRrKNnA0mAVtvpd12Tg1fKDN7OHBUl1IqSn8zGJjK9nI3NkNp8cgTpVrSZC5TTcA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -691,120 +1006,120 @@ packages: snapshots: - '@algolia/abtesting@1.21.0': + '@algolia/abtesting@1.23.0': dependencies: - '@algolia/client-common': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + '@algolia/client-common': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 - '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.55.0)(algoliasearch@5.55.0)(search-insights@2.17.3)': + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.57.0)(algoliasearch@5.57.0)(search-insights@2.17.3)': dependencies: '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(search-insights@2.17.3) - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.55.0)(algoliasearch@5.55.0) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.57.0)(algoliasearch@5.57.0) '@algolia/autocomplete-plugin-algolia-insights@1.17.7(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.55.0)(algoliasearch@5.55.0) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.57.0)(algoliasearch@5.57.0) search-insights: 2.17.3 - '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.55.0)(algoliasearch@5.55.0)': + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.57.0)(algoliasearch@5.57.0)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.55.0)(algoliasearch@5.55.0) - '@algolia/client-search': 5.55.0 - algoliasearch: 5.55.0 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.57.0)(algoliasearch@5.57.0) + '@algolia/client-search': 5.57.0 + algoliasearch: 5.57.0 - '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.55.0)(algoliasearch@5.55.0)': + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.57.0)(algoliasearch@5.57.0)': dependencies: - '@algolia/client-search': 5.55.0 - algoliasearch: 5.55.0 + '@algolia/client-search': 5.57.0 + algoliasearch: 5.57.0 - '@algolia/client-abtesting@5.55.0': + '@algolia/client-abtesting@5.57.0': dependencies: - '@algolia/client-common': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + '@algolia/client-common': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 - '@algolia/client-analytics@5.55.0': + '@algolia/client-analytics@5.57.0': dependencies: - '@algolia/client-common': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + '@algolia/client-common': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 - '@algolia/client-common@5.55.0': {} + '@algolia/client-common@5.57.0': {} - '@algolia/client-insights@5.55.0': + '@algolia/client-insights@5.57.0': dependencies: - '@algolia/client-common': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + '@algolia/client-common': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 - '@algolia/client-personalization@5.55.0': + '@algolia/client-personalization@5.57.0': dependencies: - '@algolia/client-common': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + '@algolia/client-common': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 - '@algolia/client-query-suggestions@5.55.0': + '@algolia/client-query-suggestions@5.57.0': dependencies: - '@algolia/client-common': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + '@algolia/client-common': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 - '@algolia/client-search@5.55.0': + '@algolia/client-search@5.57.0': dependencies: - '@algolia/client-common': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + '@algolia/client-common': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 - '@algolia/ingestion@1.55.0': + '@algolia/ingestion@1.57.0': dependencies: - '@algolia/client-common': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + '@algolia/client-common': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 - '@algolia/monitoring@1.55.0': + '@algolia/monitoring@1.57.0': dependencies: - '@algolia/client-common': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + '@algolia/client-common': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 - '@algolia/recommend@5.55.0': + '@algolia/recommend@5.57.0': dependencies: - '@algolia/client-common': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + '@algolia/client-common': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 - '@algolia/requester-browser-xhr@5.55.0': + '@algolia/requester-browser-xhr@5.57.0': dependencies: - '@algolia/client-common': 5.55.0 + '@algolia/client-common': 5.57.0 - '@algolia/requester-fetch@5.55.0': + '@algolia/requester-fetch@5.57.0': dependencies: - '@algolia/client-common': 5.55.0 + '@algolia/client-common': 5.57.0 - '@algolia/requester-node-http@5.55.0': + '@algolia/requester-node-http@5.57.0': dependencies: - '@algolia/client-common': 5.55.0 + '@algolia/client-common': 5.57.0 '@babel/helper-string-parser@7.29.7': {} '@babel/helper-validator-identifier@7.29.7': {} - '@babel/parser@7.29.7': + '@babel/parser@7.29.8': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 - '@babel/types@7.29.7': + '@babel/types@7.29.8': dependencies: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 @@ -814,19 +1129,37 @@ snapshots: '@docsearch/js@3.8.2': dependencies: '@docsearch/react': 3.8.2 - preact: 10.29.2 + preact: 10.29.8 transitivePeerDependencies: - '@types/react' + - preact-render-to-string - react - react-dom - search-insights '@docsearch/react@3.8.2': dependencies: - '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.55.0)(algoliasearch@5.55.0)(search-insights@2.17.3) - '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.55.0)(algoliasearch@5.55.0) + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.57.0)(algoliasearch@5.57.0)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.57.0)(algoliasearch@5.57.0) '@docsearch/css': 3.8.2 - algoliasearch: 5.55.0 + algoliasearch: 5.57.0 + + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true '@esbuild/darwin-arm64@0.21.5': optional: true @@ -834,13 +1167,58 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true - '@iconify-json/simple-icons@1.2.87': + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@iconify-json/simple-icons@1.2.93': dependencies: '@iconify/types': 2.0.0 @@ -848,72 +1226,188 @@ snapshots: '@img/colour@1.1.0': {} - '@img/sharp-darwin-arm64@0.35.2': + '@img/sharp-darwin-arm64@0.35.4': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.3.1 + '@img/sharp-libvips-darwin-arm64': 1.3.3 optional: true - '@img/sharp-darwin-x64@0.35.2': + '@img/sharp-darwin-x64@0.35.4': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.3.1 + '@img/sharp-libvips-darwin-x64': 1.3.3 + optional: true + + '@img/sharp-freebsd-wasm32@0.35.4': + dependencies: + '@img/sharp-wasm32': 0.35.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-darwin-x64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-arm@1.3.3': optional: true - '@img/sharp-libvips-darwin-arm64@1.3.1': + '@img/sharp-libvips-linux-ppc64@1.3.3': optional: true - '@img/sharp-libvips-darwin-x64@1.3.1': + '@img/sharp-libvips-linux-riscv64@1.3.3': optional: true - '@img/sharp-libvips-linux-arm64@1.3.1': + '@img/sharp-libvips-linux-s390x@1.3.3': optional: true - '@img/sharp-libvips-linux-x64@1.3.1': + '@img/sharp-libvips-linux-x64@1.3.3': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.3.1': + '@img/sharp-libvips-linuxmusl-arm64@1.3.3': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.3.1': + '@img/sharp-libvips-linuxmusl-x64@1.3.3': optional: true - '@img/sharp-linux-arm64@0.35.2': + '@img/sharp-linux-arm64@0.35.4': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.3.1 + '@img/sharp-libvips-linux-arm64': 1.3.3 optional: true - '@img/sharp-linux-x64@0.35.2': + '@img/sharp-linux-arm@0.35.4': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.3.1 + '@img/sharp-libvips-linux-arm': 1.3.3 optional: true - '@img/sharp-linuxmusl-arm64@0.35.2': + '@img/sharp-linux-ppc64@0.35.4': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.3.1 + '@img/sharp-libvips-linux-ppc64': 1.3.3 optional: true - '@img/sharp-linuxmusl-x64@0.35.2': + '@img/sharp-linux-riscv64@0.35.4': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.3.1 + '@img/sharp-libvips-linux-riscv64': 1.3.3 + optional: true + + '@img/sharp-linux-s390x@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.3.3 + optional: true + + '@img/sharp-linux-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.3.3 + optional: true + + '@img/sharp-linuxmusl-arm64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 + optional: true + + '@img/sharp-linuxmusl-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.3.3 + optional: true + + '@img/sharp-wasm32@0.35.4': + dependencies: + '@emnapi/runtime': 1.11.3 + optional: true + + '@img/sharp-webcontainers-wasm32@0.35.4': + dependencies: + '@img/sharp-wasm32': 0.35.4 + optional: true + + '@img/sharp-win32-arm64@0.35.4': + optional: true + + '@img/sharp-win32-ia32@0.35.4': + optional: true + + '@img/sharp-win32-x64@0.35.4': optional: true '@jridgewell/sourcemap-codec@1.5.5': {} - '@rollup/rollup-darwin-arm64@4.62.2': + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + optional: true + + '@rollup/rollup-android-arm-eabi@4.63.0': optional: true - '@rollup/rollup-darwin-x64@4.62.2': + '@rollup/rollup-android-arm64@4.63.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.62.2': + '@rollup/rollup-darwin-arm64@4.63.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.62.2': + '@rollup/rollup-darwin-x64@4.63.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.62.2': + '@rollup/rollup-freebsd-arm64@4.63.0': optional: true - '@rollup/rollup-linux-x64-musl@4.62.2': + '@rollup/rollup-freebsd-x64@4.63.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.63.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.63.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.63.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.63.0': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.63.0': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.63.0': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.63.0': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.63.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.63.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.63.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.63.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.63.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.63.0': + optional: true + + '@rollup/rollup-openbsd-x64@4.63.0': + optional: true + + '@rollup/rollup-openharmony-arm64@4.63.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.63.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.63.0': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.63.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.63.0': optional: true '@shikijs/core@2.5.0': @@ -922,7 +1416,7 @@ snapshots: '@shikijs/engine-oniguruma': 2.5.0 '@shikijs/types': 2.5.0 '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-to-html: 9.0.5 '@shikijs/engine-javascript@2.5.0': @@ -952,19 +1446,19 @@ snapshots: '@shikijs/types@2.5.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@shikijs/vscode-textmate@10.0.2': {} '@types/estree@1.0.9': {} - '@types/hast@3.0.4': + '@types/hast@3.0.5': dependencies: '@types/unist': 3.0.3 '@types/linkify-it@5.0.0': {} - '@types/markdown-it@14.1.2': + '@types/markdown-it@14.2.0': dependencies: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 @@ -979,50 +1473,50 @@ snapshots: '@types/web-bluetooth@0.0.21': {} - '@ungap/structured-clone@1.3.1': {} + '@ungap/structured-clone@1.4.0': {} - '@vitejs/plugin-vue@5.2.4(vite@5.4.21)(vue@3.5.38)': + '@vitejs/plugin-vue@5.2.4(vite@5.4.21)(vue@3.5.42)': dependencies: vite: 5.4.21 - vue: 3.5.38 + vue: 3.5.42 - '@vue/compiler-core@3.5.38': + '@vue/compiler-core@3.5.42': dependencies: - '@babel/parser': 7.29.7 - '@vue/shared': 3.5.38 + '@babel/parser': 7.29.8 + '@vue/shared': 3.5.42 entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.38': + '@vue/compiler-dom@3.5.42': dependencies: - '@vue/compiler-core': 3.5.38 - '@vue/shared': 3.5.38 + '@vue/compiler-core': 3.5.42 + '@vue/shared': 3.5.42 - '@vue/compiler-sfc@3.5.38': + '@vue/compiler-sfc@3.5.42': dependencies: - '@babel/parser': 7.29.7 - '@vue/compiler-core': 3.5.38 - '@vue/compiler-dom': 3.5.38 - '@vue/compiler-ssr': 3.5.38 - '@vue/shared': 3.5.38 + '@babel/parser': 7.29.8 + '@vue/compiler-core': 3.5.42 + '@vue/compiler-dom': 3.5.42 + '@vue/compiler-ssr': 3.5.42 + '@vue/shared': 3.5.42 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.15 + postcss: 8.5.26 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.38': + '@vue/compiler-ssr@3.5.42': dependencies: - '@vue/compiler-dom': 3.5.38 - '@vue/shared': 3.5.38 + '@vue/compiler-dom': 3.5.42 + '@vue/shared': 3.5.42 - '@vue/devtools-api@7.7.9': + '@vue/devtools-api@7.7.10': dependencies: - '@vue/devtools-kit': 7.7.9 + '@vue/devtools-kit': 7.7.10 - '@vue/devtools-kit@7.7.9': + '@vue/devtools-kit@7.7.10': dependencies: - '@vue/devtools-shared': 7.7.9 + '@vue/devtools-shared': 7.7.10 birpc: 2.9.0 hookable: 5.5.3 mitt: 3.0.1 @@ -1030,40 +1524,40 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.6 - '@vue/devtools-shared@7.7.9': + '@vue/devtools-shared@7.7.10': dependencies: rfdc: 1.4.1 - '@vue/reactivity@3.5.38': + '@vue/reactivity@3.5.42': dependencies: - '@vue/shared': 3.5.38 + '@vue/shared': 3.5.42 - '@vue/runtime-core@3.5.38': + '@vue/runtime-core@3.5.42': dependencies: - '@vue/reactivity': 3.5.38 - '@vue/shared': 3.5.38 + '@vue/reactivity': 3.5.42 + '@vue/shared': 3.5.42 - '@vue/runtime-dom@3.5.38': + '@vue/runtime-dom@3.5.42': dependencies: - '@vue/reactivity': 3.5.38 - '@vue/runtime-core': 3.5.38 - '@vue/shared': 3.5.38 + '@vue/reactivity': 3.5.42 + '@vue/runtime-core': 3.5.42 + '@vue/shared': 3.5.42 csstype: 3.2.3 - '@vue/server-renderer@3.5.38(vue@3.5.38)': + '@vue/server-renderer@3.5.42': dependencies: - '@vue/compiler-ssr': 3.5.38 - '@vue/shared': 3.5.38 - vue: 3.5.38 + '@vue/compiler-ssr': 3.5.42 + '@vue/runtime-dom': 3.5.42 + '@vue/shared': 3.5.42 - '@vue/shared@3.5.38': {} + '@vue/shared@3.5.42': {} '@vueuse/core@12.8.2': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 12.8.2 '@vueuse/shared': 12.8.2 - vue: 3.5.38 + vue: 3.5.42 transitivePeerDependencies: - typescript @@ -1072,7 +1566,7 @@ snapshots: '@vueuse/core': 12.8.2 '@vueuse/shared': 12.8.2 focus-trap: 7.8.0 - vue: 3.5.38 + vue: 3.5.42 transitivePeerDependencies: - typescript @@ -1080,26 +1574,26 @@ snapshots: '@vueuse/shared@12.8.2': dependencies: - vue: 3.5.38 + vue: 3.5.42 transitivePeerDependencies: - typescript - algoliasearch@5.55.0: - dependencies: - '@algolia/abtesting': 1.21.0 - '@algolia/client-abtesting': 5.55.0 - '@algolia/client-analytics': 5.55.0 - '@algolia/client-common': 5.55.0 - '@algolia/client-insights': 5.55.0 - '@algolia/client-personalization': 5.55.0 - '@algolia/client-query-suggestions': 5.55.0 - '@algolia/client-search': 5.55.0 - '@algolia/ingestion': 1.55.0 - '@algolia/monitoring': 1.55.0 - '@algolia/recommend': 5.55.0 - '@algolia/requester-browser-xhr': 5.55.0 - '@algolia/requester-fetch': 5.55.0 - '@algolia/requester-node-http': 5.55.0 + algoliasearch@5.57.0: + dependencies: + '@algolia/abtesting': 1.23.0 + '@algolia/client-abtesting': 5.57.0 + '@algolia/client-analytics': 5.57.0 + '@algolia/client-common': 5.57.0 + '@algolia/client-insights': 5.57.0 + '@algolia/client-personalization': 5.57.0 + '@algolia/client-query-suggestions': 5.57.0 + '@algolia/client-search': 5.57.0 + '@algolia/ingestion': 1.57.0 + '@algolia/monitoring': 1.57.0 + '@algolia/recommend': 5.57.0 + '@algolia/requester-browser-xhr': 5.57.0 + '@algolia/requester-fetch': 5.57.0 + '@algolia/requester-node-http': 5.57.0 birpc@2.9.0: {} @@ -1111,9 +1605,7 @@ snapshots: comma-separated-tokens@2.0.3: {} - copy-anything@4.0.5: - dependencies: - is-what: 5.5.0 + copy-anything@4.1.0: {} csstype@3.2.3: {} @@ -1131,10 +1623,29 @@ snapshots: esbuild@0.21.5: optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 '@esbuild/darwin-arm64': 0.21.5 '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 estree-walker@2.0.2: {} @@ -1147,7 +1658,7 @@ snapshots: hast-util-to-html@9.0.5: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/unist': 3.0.3 ccount: 2.0.1 comma-separated-tokens: 2.0.3 @@ -1161,14 +1672,12 @@ snapshots: hast-util-whitespace@3.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hookable@5.5.3: {} html-void-elements@3.0.0: {} - is-what@5.5.0: {} - magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -1177,9 +1686,9 @@ snapshots: mdast-util-to-hast@13.2.1: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.1 + '@ungap/structured-clone': 1.4.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -1208,7 +1717,7 @@ snapshots: mitt@3.0.1: {} - nanoid@3.3.15: {} + nanoid@3.3.18: {} oniguruma-to-es@3.1.1: dependencies: @@ -1220,13 +1729,13 @@ snapshots: picocolors@1.1.1: {} - postcss@8.5.15: + postcss@8.5.26: dependencies: - nanoid: 3.3.15 + nanoid: 3.3.18 picocolors: 1.1.1 source-map-js: 1.2.1 - preact@10.29.2: {} + preact@10.29.8: {} property-information@7.2.0: {} @@ -1242,40 +1751,73 @@ snapshots: rfdc@1.4.1: {} - rollup@4.62.2: + rollup@4.63.0: dependencies: '@types/estree': 1.0.9 optionalDependencies: - '@rollup/rollup-darwin-arm64': 4.62.2 - '@rollup/rollup-darwin-x64': 4.62.2 - '@rollup/rollup-linux-arm64-gnu': 4.62.2 - '@rollup/rollup-linux-arm64-musl': 4.62.2 - '@rollup/rollup-linux-x64-gnu': 4.62.2 - '@rollup/rollup-linux-x64-musl': 4.62.2 + '@napi-rs/lzma-linux-x64-gnu': 1.5.1 + '@rollup/rollup-android-arm-eabi': 4.63.0 + '@rollup/rollup-android-arm64': 4.63.0 + '@rollup/rollup-darwin-arm64': 4.63.0 + '@rollup/rollup-darwin-x64': 4.63.0 + '@rollup/rollup-freebsd-arm64': 4.63.0 + '@rollup/rollup-freebsd-x64': 4.63.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.63.0 + '@rollup/rollup-linux-arm-musleabihf': 4.63.0 + '@rollup/rollup-linux-arm64-gnu': 4.63.0 + '@rollup/rollup-linux-arm64-musl': 4.63.0 + '@rollup/rollup-linux-loong64-gnu': 4.63.0 + '@rollup/rollup-linux-loong64-musl': 4.63.0 + '@rollup/rollup-linux-ppc64-gnu': 4.63.0 + '@rollup/rollup-linux-ppc64-musl': 4.63.0 + '@rollup/rollup-linux-riscv64-gnu': 4.63.0 + '@rollup/rollup-linux-riscv64-musl': 4.63.0 + '@rollup/rollup-linux-s390x-gnu': 4.63.0 + '@rollup/rollup-linux-x64-gnu': 4.63.0 + '@rollup/rollup-linux-x64-musl': 4.63.0 + '@rollup/rollup-openbsd-x64': 4.63.0 + '@rollup/rollup-openharmony-arm64': 4.63.0 + '@rollup/rollup-win32-arm64-msvc': 4.63.0 + '@rollup/rollup-win32-ia32-msvc': 4.63.0 + '@rollup/rollup-win32-x64-gnu': 4.63.0 + '@rollup/rollup-win32-x64-msvc': 4.63.0 fsevents: 2.3.3 search-insights@2.17.3: {} semver@7.8.5: {} - sharp@0.35.2: + sharp@0.35.4: dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 semver: 7.8.5 optionalDependencies: - '@img/sharp-darwin-arm64': 0.35.2 - '@img/sharp-darwin-x64': 0.35.2 - '@img/sharp-libvips-darwin-arm64': 1.3.1 - '@img/sharp-libvips-darwin-x64': 1.3.1 - '@img/sharp-libvips-linux-arm64': 1.3.1 - '@img/sharp-libvips-linux-x64': 1.3.1 - '@img/sharp-libvips-linuxmusl-arm64': 1.3.1 - '@img/sharp-libvips-linuxmusl-x64': 1.3.1 - '@img/sharp-linux-arm64': 0.35.2 - '@img/sharp-linux-x64': 0.35.2 - '@img/sharp-linuxmusl-arm64': 0.35.2 - '@img/sharp-linuxmusl-x64': 0.35.2 + '@img/sharp-darwin-arm64': 0.35.4 + '@img/sharp-darwin-x64': 0.35.4 + '@img/sharp-freebsd-wasm32': 0.35.4 + '@img/sharp-libvips-darwin-arm64': 1.3.3 + '@img/sharp-libvips-darwin-x64': 1.3.3 + '@img/sharp-libvips-linux-arm': 1.3.3 + '@img/sharp-libvips-linux-arm64': 1.3.3 + '@img/sharp-libvips-linux-ppc64': 1.3.3 + '@img/sharp-libvips-linux-riscv64': 1.3.3 + '@img/sharp-libvips-linux-s390x': 1.3.3 + '@img/sharp-libvips-linux-x64': 1.3.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 + '@img/sharp-libvips-linuxmusl-x64': 1.3.3 + '@img/sharp-linux-arm': 0.35.4 + '@img/sharp-linux-arm64': 0.35.4 + '@img/sharp-linux-ppc64': 0.35.4 + '@img/sharp-linux-riscv64': 0.35.4 + '@img/sharp-linux-s390x': 0.35.4 + '@img/sharp-linux-x64': 0.35.4 + '@img/sharp-linuxmusl-arm64': 0.35.4 + '@img/sharp-linuxmusl-x64': 0.35.4 + '@img/sharp-webcontainers-wasm32': 0.35.4 + '@img/sharp-win32-arm64': 0.35.4 + '@img/sharp-win32-ia32': 0.35.4 + '@img/sharp-win32-x64': 0.35.4 shiki@2.5.0: dependencies: @@ -1286,7 +1828,7 @@ snapshots: '@shikijs/themes': 2.5.0 '@shikijs/types': 2.5.0 '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 source-map-js@1.2.1: {} @@ -1301,12 +1843,15 @@ snapshots: superjson@2.2.6: dependencies: - copy-anything: 4.0.5 + copy-anything: 4.1.0 tabbable@6.5.0: {} trim-lines@3.0.1: {} + tslib@2.8.1: + optional: true + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -1343,32 +1888,31 @@ snapshots: vite@5.4.21: dependencies: esbuild: 0.21.5 - postcss: 8.5.15 - rollup: 4.62.2 + postcss: 8.5.26 + rollup: 4.63.0 optionalDependencies: fsevents: 2.3.3 - vitepress@1.6.4(postcss@8.5.15): + vitepress@1.6.4: dependencies: '@docsearch/css': 3.8.2 '@docsearch/js': 3.8.2 - '@iconify-json/simple-icons': 1.2.87 + '@iconify-json/simple-icons': 1.2.93 '@shikijs/core': 2.5.0 '@shikijs/transformers': 2.5.0 '@shikijs/types': 2.5.0 - '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.2.4(vite@5.4.21)(vue@3.5.38) - '@vue/devtools-api': 7.7.9 - '@vue/shared': 3.5.38 + '@types/markdown-it': 14.2.0 + '@vitejs/plugin-vue': 5.2.4(vite@5.4.21)(vue@3.5.42) + '@vue/devtools-api': 7.7.10 + '@vue/shared': 3.5.42 '@vueuse/core': 12.8.2 '@vueuse/integrations': 12.8.2(focus-trap@7.8.0) focus-trap: 7.8.0 mark.js: 8.11.1 minisearch: 7.2.0 - postcss: 8.5.15 shiki: 2.5.0 vite: 5.4.21 - vue: 3.5.38 + vue: 3.5.42 transitivePeerDependencies: - '@types/node' - '@types/react' @@ -1382,6 +1926,7 @@ snapshots: - less - lightningcss - nprogress + - preact-render-to-string - qrcode - react - react-dom @@ -1395,12 +1940,12 @@ snapshots: - typescript - universal-cookie - vue@3.5.38: + vue@3.5.42: dependencies: - '@vue/compiler-dom': 3.5.38 - '@vue/compiler-sfc': 3.5.38 - '@vue/runtime-dom': 3.5.38 - '@vue/server-renderer': 3.5.38(vue@3.5.38) - '@vue/shared': 3.5.38 + '@vue/compiler-dom': 3.5.42 + '@vue/compiler-sfc': 3.5.42 + '@vue/runtime-dom': 3.5.42 + '@vue/server-renderer': 3.5.42 + '@vue/shared': 3.5.42 zwitch@2.0.4: {} diff --git a/vendor/aube/docs/benchmarks.md b/vendor/aube/docs/benchmarks.md index cb6b758bd..dbdd8b8af 100644 --- a/vendor/aube/docs/benchmarks.md +++ b/vendor/aube/docs/benchmarks.md @@ -5,8 +5,8 @@ import { data } from './benchmarks.data.ts' The numbers below are measured end-to-end against the same -[medium-sized real-world fixture](https://github.com/jdx/aube/blob/main/benchmarks/fixture.package.json) -— ~1400 real-world packages — using [`hyperfine`](https://github.com/sharkdp/hyperfine) +[medium-sized real-world fixture](https://github.com/aubepkg/aube/blob/main/benchmarks/fixture.package.json) +— ~1400 packages — using [`hyperfine`](https://github.com/sharkdp/hyperfine) to time each scenario under identical conditions. ::: tip Methodology @@ -18,7 +18,7 @@ and pnpm's comparable feature is left at pnpm's default of off. *Warm* clears `node_modules` but keeps each tool's store/cache populated; *cold* wipes the store and cache too. The fixture, scripts, and raw hyperfine output live at -[`benchmarks/`](https://github.com/jdx/aube/tree/main/benchmarks). +[`benchmarks/`](https://github.com/aubepkg/aube/tree/main/benchmarks). Reproduce locally with `mise run bench`. ::: @@ -31,7 +31,7 @@ Reproduce locally with `mise run bench`. The chart highlights the warm-cache, no-`node_modules` install case. -Last updated: {{ new Date(data.updated).toISOString().slice(0, 10) }} · Source: [`benchmarks/results.json`](https://github.com/jdx/aube/blob/main/benchmarks/results.json), regenerated by `mise run bench:bump`. +Last updated: {{ new Date(data.updated).toISOString().slice(0, 10) }} · Source: [`benchmarks/results.json`](https://github.com/aubepkg/aube/blob/main/benchmarks/results.json), regenerated by `mise run bench:bump`. ## Why it's faster @@ -57,12 +57,12 @@ users get them out of the box. mise run bench:bump ``` -The task calls [`benchmarks/bench.sh`](https://github.com/jdx/aube/blob/main/benchmarks/bench.sh) +The task calls [`benchmarks/bench.sh`](https://github.com/aubepkg/aube/blob/main/benchmarks/bench.sh) through `mise x`, installs the benchmark toolchain declared on the task, sets `RUNS=10 WARMUP=3`, and points `RESULTS_JSON` at `benchmarks/results.json` so the file is rewritten in-place. Commit the updated JSON to refresh the chart above — the VitePress data loader at -[`docs/benchmarks.data.ts`](https://github.com/jdx/aube/blob/main/docs/benchmarks.data.ts) +[`docs/benchmarks.data.ts`](https://github.com/aubepkg/aube/blob/main/docs/benchmarks.data.ts) reads it at build time, so you don't need to edit `benchmarks.md` or hand-write any chart data. diff --git a/vendor/aube/docs/bun-users.md b/vendor/aube/docs/bun-users.md index 9ac6bcd68..b7e8d30c1 100644 --- a/vendor/aube/docs/bun-users.md +++ b/vendor/aube/docs/bun-users.md @@ -42,9 +42,10 @@ future installs keep writing `aube-lock.yaml`. - aube keeps package files in a global content-addressable store. - aube produces an isolated symlink layout under `node_modules/.aube/` rather than Bun's hoisted tree. -- aube does not manage a JavaScript runtime. Use - [mise](https://mise.jdx.dev) (`mise use node@22`) if you need a Node - version alongside or in place of Bun. +- aube does not manage the Bun runtime, only Node (see + [Node runtime switching](/package-manager/node-runtime)). Use + [mise](https://mise.jdx.dev) (`mise use bun`) if you still need Bun + alongside aube. - Dependency lifecycle scripts (`preinstall`, `install`, `postinstall`) are gated by an allowlist. aube reads Bun's top-level `trustedDependencies` array in addition to pnpm's diff --git a/vendor/aube/docs/cli/access.md b/vendor/aube/docs/cli/access.md index d4c703bc3..083ffcdd6 100644 --- a/vendor/aube/docs/cli/access.md +++ b/vendor/aube/docs/cli/access.md @@ -1,56 +1,35 @@ # `aube access` -- **Usage**: `aube access [FLAGS] ` -- **Effect**: read-only +- **Usage:** `aube access [FLAGS] ` +- **Effect:** read-only Manage package access and visibility on the registry ## Flags +- **`--json`** — Emit registry responses as JSON when the subcommand has a result. +- **`--otp `** — One-time password from a 2FA authenticator; sent as `npm-otp`. +- **`-h --help`** — Print help -### `--json` +## Network +- **`--fetch-retries `** — Number of retry attempts for failed registry fetches. -Emit registry responses as JSON when the subcommand has a result + Overrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs. +- **`--fetch-retry-factor `** — Exponential backoff factor between retry attempts. -### `--otp ` + Overrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only; fractional values like `1.5` are rejected. +- **`--fetch-retry-maxtimeout `** — Upper bound (ms) on the computed retry backoff. -One-time password from a 2FA authenticator; sent as `npm-otp` + Overrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set. +- **`--fetch-retry-mintimeout `** — Lower bound (ms) on the computed retry backoff. -### `--fetch-retries ` + Overrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set. +- **`--fetch-timeout `** — Per-request HTTP timeout in milliseconds. -Number of retry attempts for failed registry fetches. + Overrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Covers the whole request (headers and body together). +- **`--registry `** — Override the default registry URL for this invocation. -Overrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs. - -### `--fetch-retry-factor ` - -Exponential backoff factor between retry attempts. - -Overrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only — the underlying `FetchPolicy.retry_factor` is `u32`. Fractional values like `1.5` are rejected by clap. - -### `--fetch-retry-maxtimeout ` - -Upper bound (ms) on the computed retry backoff. - -Overrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set. - -### `--fetch-retry-mintimeout ` - -Lower bound (ms) on the computed retry backoff. - -Overrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set. - -### `--fetch-timeout ` - -Per-request HTTP timeout in milliseconds. - -Overrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Applied via `reqwest`'s `.timeout()` so it covers headers + body together. - -### `--registry ` - -Override the default registry URL for this invocation. - -Use this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes. + Use this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes. ## Subcommands diff --git a/vendor/aube/docs/cli/access/get.md b/vendor/aube/docs/cli/access/get.md index 76354e7db..0e0d6e4b2 100644 --- a/vendor/aube/docs/cli/access/get.md +++ b/vendor/aube/docs/cli/access/get.md @@ -1,10 +1,13 @@ # `aube access get` -- **Usage**: `aube access get ` -- **Effect**: read-only +- **Usage:** `aube access get ` +- **Effect:** read-only -Get package visibility status +Get package visibility status. + +## Flags +- **`-h --help`** — Print help ## Subcommands diff --git a/vendor/aube/docs/cli/access/get/status.md b/vendor/aube/docs/cli/access/get/status.md index 951eee7a1..c3bbba0d1 100644 --- a/vendor/aube/docs/cli/access/get/status.md +++ b/vendor/aube/docs/cli/access/get/status.md @@ -1,13 +1,13 @@ # `aube access get status` -- **Usage**: `aube access get status ` -- **Effect**: read-only +- **Usage:** `aube access get status ` +- **Effect:** read-only -Get a package's public or restricted status +Get a package's public or restricted status. ## Arguments +- **``** — Package name. -### `` - -Package name +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/access/grant.md b/vendor/aube/docs/cli/access/grant.md index ccbb891de..f11d13cc1 100644 --- a/vendor/aube/docs/cli/access/grant.md +++ b/vendor/aube/docs/cli/access/grant.md @@ -1,21 +1,15 @@ # `aube access grant` -- **Usage**: `aube access grant …` -- **Effect**: modifies state +- **Usage:** `aube access grant …` +- **Effect:** modifies state -Grant a team read-only or read-write access to a package +Grant a team read-only or read-write access to a package. ## Arguments +- **``** — `read-only` or `read-write`. +- **``** — Team in `@scope:team` form. +- **``** — Package name. -### `` - -`read-only` or `read-write` - -### `` - -Team in `@scope:team` form - -### `` - -Package name +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/access/list.md b/vendor/aube/docs/cli/access/list.md index 416b8cc59..bb6cacb95 100644 --- a/vendor/aube/docs/cli/access/list.md +++ b/vendor/aube/docs/cli/access/list.md @@ -1,10 +1,13 @@ # `aube access list` -- **Usage**: `aube access list ` -- **Effect**: read-only +- **Usage:** `aube access list ` +- **Effect:** read-only -List packages visible to a user, organization, or team +List packages visible to a user, organization, or team. + +## Flags +- **`-h --help`** — Print help ## Subcommands diff --git a/vendor/aube/docs/cli/access/list/collaborators.md b/vendor/aube/docs/cli/access/list/collaborators.md index 4dd9fb821..7306b827e 100644 --- a/vendor/aube/docs/cli/access/list/collaborators.md +++ b/vendor/aube/docs/cli/access/list/collaborators.md @@ -1,17 +1,14 @@ # `aube access list collaborators` -- **Usage**: `aube access list collaborators [USER]` -- **Effect**: read-only +- **Usage:** `aube access list collaborators [USER]` +- **Effect:** read-only -List collaborators for a package, optionally filtering to one user +List collaborators for a package, optionally filtering to one user. ## Arguments +- **``** — Package name. +- **`[USER]`** — Optional user name. -### `` - -Package name - -### `[USER]` - -Optional user name +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/access/list/packages.md b/vendor/aube/docs/cli/access/list/packages.md index db8ea0ecb..62e9126eb 100644 --- a/vendor/aube/docs/cli/access/list/packages.md +++ b/vendor/aube/docs/cli/access/list/packages.md @@ -1,13 +1,13 @@ # `aube access list packages` -- **Usage**: `aube access list packages [ENTITY]` -- **Effect**: read-only +- **Usage:** `aube access list packages [ENTITY]` +- **Effect:** read-only -List packages visible to the current user or an optional entity +List packages visible to the current user or an optional entity. ## Arguments +- **`[ENTITY]`** — User, `@organization`, or `@scope:team`. -### `[ENTITY]` - -User, `@organization`, or `@scope:team` +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/access/ls.md b/vendor/aube/docs/cli/access/ls.md index ef9614c8a..b70fb2cd3 100644 --- a/vendor/aube/docs/cli/access/ls.md +++ b/vendor/aube/docs/cli/access/ls.md @@ -1,13 +1,13 @@ # `aube access ls` -- **Usage**: `aube access ls [ENTITIES]…` -- **Effect**: read-only +- **Usage:** `aube access ls [ENTITIES]…` +- **Effect:** read-only -Alias for `list packages` +Alias for `list packages`. ## Arguments +- **`[ENTITIES]…`** — User, `@organization`, or `@scope:team`. Also accepts pnpm's `packages [ENTITY]` compatibility form. Accepted forms are `aube access ls [ENTITY]` and `aube access ls packages [ENTITY]`. -### `[ENTITIES]…` - -User, `@organization`, or `@scope:team`. Also accepts pnpm's `packages [ENTITY]` compatibility form. Accepted forms are `aube access ls [ENTITY]` and `aube access ls packages [ENTITY]` +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/access/revoke.md b/vendor/aube/docs/cli/access/revoke.md index d7853be0b..2e9facec9 100644 --- a/vendor/aube/docs/cli/access/revoke.md +++ b/vendor/aube/docs/cli/access/revoke.md @@ -1,17 +1,14 @@ # `aube access revoke` -- **Usage**: `aube access revoke ` -- **Effect**: destructive — may delete or irreversibly overwrite +- **Usage:** `aube access revoke ` +- **Effect:** destructive — may delete or irreversibly overwrite -Revoke a team's access to a package +Revoke a team's access to a package. ## Arguments +- **``** — Team in `@scope:team` form. +- **``** — Package name. -### `` - -Team in `@scope:team` form - -### `` - -Package name +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/access/set.md b/vendor/aube/docs/cli/access/set.md index afbd5a71a..912172800 100644 --- a/vendor/aube/docs/cli/access/set.md +++ b/vendor/aube/docs/cli/access/set.md @@ -1,17 +1,14 @@ # `aube access set` -- **Usage**: `aube access set ` -- **Effect**: modifies state +- **Usage:** `aube access set ` +- **Effect:** modifies state -Set package visibility or a publish MFA requirement +Set package visibility or a publish MFA requirement. ## Arguments +- **``** — `status=public|private|restricted` or `mfa=none|publish|automation`. +- **``** — Package name. -### `` - -`status=public|private|restricted` or `mfa=none|publish|automation` - -### `` - -Package name +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/activate.md b/vendor/aube/docs/cli/activate.md index cac774aa9..eaf08fdc2 100644 --- a/vendor/aube/docs/cli/activate.md +++ b/vendor/aube/docs/cli/activate.md @@ -1,19 +1,13 @@ # `aube activate` -- **Usage**: `aube activate ` -- **Effect**: modifies state +- **Usage:** `aube activate ` +- **Effect:** modifies state Emit shell activation code for runtime tool shims ## Arguments +- **``** — Shell to emit activation code for -### `` - -Shell to emit activation code for - -**Choices:** - -- `bash` -- `fish` -- `zsh` +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/add.md b/vendor/aube/docs/cli/add.md index 9b52b881d..d0dbd623e 100644 --- a/vendor/aube/docs/cli/add.md +++ b/vendor/aube/docs/cli/add.md @@ -1,176 +1,103 @@ # `aube add` -- **Usage**: `aube add [FLAGS] [PACKAGES]…` -- **Aliases**: `a` -- **Effect**: modifies state +- **Usage:** `aube add [FLAGS] [PACKAGES]…` +- **Aliases:** `a` +- **Effect:** modifies state Add a dependency ## Arguments - -### `[PACKAGES]…` - -Package(s) to add +- **`[PACKAGES]…`** — Package(s) to add ## Flags +- **`-D --save-dev`** — Add as dev dependency. +- **`-E --save-exact`** — Pin the exact resolved version (no `^` prefix). +- **`-g --global`** — Install the package globally. -### `-D --save-dev` - -Add as dev dependency - -### `-E --save-exact` - -Pin the exact resolved version (no `^` prefix) - -### `-g --global` - -Install the package globally. - -Installs into the aube/pnpm global directory and links its binaries into the global bin directory. Mirrors `pnpm add -g`. - -### `-O --save-optional` - -Add as optional dependency - -### `--allow-build… ` - -Pre-approve a dependency's lifecycle scripts as part of the add. - -Writes `allowBuilds: { : true }` into the workspace yaml (or `package.json#aube.allowBuilds`) before the install runs, so the named package's `preinstall` / `install` / `postinstall` scripts execute on this invocation. Repeatable — pass the flag once per package. Mirrors `pnpm add --allow-build=`. - -Conflicts with `--no-save`, which only snapshots `package.json` and the lockfile and would leave an orphaned approval in the workspace yaml on restore. Also conflicts with `--deny-build` for the same package name. - -### `--allow-low-downloads` - -Bypass the similar-name, new-name, and [`lowDownloadThreshold`] confirm prompts / refusals for this invocation. - -`aube add` looks up each candidate's weekly download count and prompts (interactive) or fails (CI) when the count is below [`lowDownloadThreshold`], resembles a top-100,000 npm package, or is newer than [`minimumPackageAge`]. The flag is intended for cases where you've already verified the package out-of-band. It does not affect the OSV malicious-package check, which remains a hard block. - -### `--dangerously-allow-all-builds` - -Allow every dependency's lifecycle scripts to run. - -Bypasses the `allowBuilds` allowlist for this invocation. Do not use in CI. Mirrors pnpm's `--dangerously-allow-all-builds`. - -### `--deny-build… ` - -Mark a dependency's lifecycle scripts as reviewed and denied. - -Writes `allowBuilds: { : false }` into the workspace yaml (or `package.json#aube.allowBuilds`) before the install runs, so the named package's lifecycle scripts stay skipped without tripping `strictDepBuilds=true`. Repeatable — pass the flag once per package. - -Conflicts with `--no-save`, which only snapshots `package.json` and the lockfile and would leave an orphaned denial in the workspace yaml on restore. Also conflicts with `--allow-build` for the same package name and with `--dangerously-allow-all-builds`. - -### `--no-save` - -Install without persisting the dependency to `package.json`. - -Snapshots `package.json` and the lockfile, links the named packages into `node_modules`, and then restores both files — so the dependency is usable for the current process but the project's committed state is untouched. - -Handy for one-off experiments and for scripts that install a tool transiently. Mirrors `pnpm add --no-save`. Conflicts with `-g`/`--global`, which has to persist the install to its global manifest. - -### `--no-save-workspace-protocol` - -Inverse of `--save-workspace-protocol`. - -Forces the manifest specifier into a registry-style spec (`^`) for this invocation, even when `linkWorkspacePackages` matched a local sibling. The install pipeline still prefers the local workspace copy at resolve time — this flag only controls what's written to `package.json`. Mirrors `pnpm add --no-save-workspace-protocol`. - -### `--save-catalog` - -Save the new dependency into the workspace's default catalog. - -Writes `catalog:` into `package.json` and seeds/upserts the resolved range under `catalog:` in the workspace yaml. Mirrors `pnpm add --save-catalog`. - -Workspace and aliased specs (`workspace:*`, `npm:`, `jsr:`) are never catalogized — the manifest gets the original spec and the catalog yaml is left alone. If the package is already in the target catalog, the existing entry is preserved (never overwritten); the manifest then gets `catalog:` only when the existing entry is compatible with the user's range. - -Conflicts with `--no-save`: catalog mutations write to the workspace yaml, which the `--no-save` restore path doesn't snapshot — combining the two would silently leave an orphaned catalog entry behind. - -### `--save-catalog-name ` - -Save the new dependency into a *named* catalog. - -Writes the entry to `catalogs.` in the workspace yaml and `catalog:` into `package.json`. Same workspace/alias exclusions and `--no-save` conflict as `--save-catalog`. Mirrors `pnpm add --save-catalog-name=`. - -### `--save-peer` - -Add as a peer dependency (written to `peerDependencies` in package.json). - -By convention you usually pair this with `--save-dev` so the peer is also installed for local development; that's what pnpm does. - -### `--save-workspace-protocol` - -Force the manifest specifier into `workspace:` form for this invocation, overriding `saveWorkspaceProtocol` from the workspace yaml / `.npmrc` / env. - -Only meaningful when `linkWorkspacePackages` (or a workspace sibling already exists for the named package). With this flag the entry written to `package.json` is `workspace:^` (rolling) or `workspace:^` (pinned), depending on the resolved `saveWorkspaceProtocol` value. - -### `-w --workspace` - -Add the dependency to the workspace root's `package.json`. - -Applies regardless of the current working directory: walks up from cwd looking for `aube-workspace.yaml`, `pnpm-workspace.yaml`, or a `package.json` with a `workspaces` field and runs the add against that directory. - -### `-W --ignore-workspace-root-check` - -Allow `add` to run in a workspace root. - -By default aube refuses to add dependencies to the root `package.json` of a workspace (a directory containing `aube-workspace.yaml`, `pnpm-workspace.yaml`, or a `package.json` with a `workspaces` field) because deps added there end up shared by every package and usually reflect a mistake. Pass this flag to opt in. Mirrors `pnpm add -W`. + Installs into the aube/pnpm global directory and links its binaries into the global bin directory. Mirrors `pnpm add -g`. +- **`-O --save-optional`** — Add as optional dependency. +- **`--allow-build=`** — Pre-approve a dependency's lifecycle scripts as part of the add. -### `--frozen-lockfile` + Writes `allowBuilds: { : true }` into the workspace yaml (or `package.json#aube.allowBuilds`) before the install runs, so the named package's `preinstall` / `install` / `postinstall` scripts execute on this invocation. Repeatable — pass the flag once per package. Mirrors `pnpm add --allow-build=`. -Error if the lockfile drifts from package.json + Conflicts with `--no-save`, which only snapshots `package.json` and the lockfile and would leave an orphaned approval in the workspace yaml on restore. Also conflicts with `--deny-build` for the same package name. +- **`--allow-low-downloads`** — Bypass the similar-name, new-name, and `lowDownloadThreshold` confirm prompts / refusals for this invocation. -### `--no-frozen-lockfile` + `aube add` looks up each candidate's weekly download count and prompts (interactive) or fails (CI) when the count is below `lowDownloadThreshold`, resembles a top-100,000 npm package, or is newer than `minimumPackageAge`. The flag is intended for cases where you've already verified the package out-of-band. It does not affect the OSV malicious-package check, which remains a hard block. +- **`--dangerously-allow-all-builds`** — Allow every dependency's lifecycle scripts to run. -Always re-resolve, even if the lockfile is up to date + Bypasses the `allowBuilds` allowlist for this invocation. Do not use in CI. Mirrors pnpm's `--dangerously-allow-all-builds`. +- **`--deny-build=`** — Mark a dependency's lifecycle scripts as reviewed and denied. -### `--prefer-frozen-lockfile` + Writes `allowBuilds: { : false }` into the workspace yaml (or `package.json#aube.allowBuilds`) before the install runs, so the named package's lifecycle scripts stay skipped without tripping `strictDepBuilds=true`. Repeatable — pass the flag once per package. -Use the lockfile when fresh, re-resolve when stale + Conflicts with `--no-save`, which only snapshots `package.json` and the lockfile and would leave an orphaned denial in the workspace yaml on restore. Also conflicts with `--allow-build` for the same package name and with `--dangerously-allow-all-builds`. +- **`--no-save`** — Install without persisting the dependency to `package.json`. -### `--fetch-retries ` + Snapshots `package.json` and the lockfile, links the named packages into `node_modules`, and then restores both files — so the dependency is usable for the current process but the project's committed state is untouched. -Number of retry attempts for failed registry fetches. + Handy for one-off experiments and for scripts that install a tool transiently. Mirrors `pnpm add --no-save`. Conflicts with `-g`/`--global`, which has to persist the install to its global manifest. +- **`--no-save-workspace-protocol`** — Inverse of `--save-workspace-protocol`. -Overrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs. + Forces the manifest specifier into a registry-style spec (`^`) for this invocation, even when `linkWorkspacePackages` matched a local sibling. The install pipeline still prefers the local workspace copy at resolve time — this flag only controls what's written to `package.json`. Mirrors `pnpm add --no-save-workspace-protocol`. +- **`--save-catalog`** — Save the new dependency into the workspace's default catalog. -### `--fetch-retry-factor ` + Writes `catalog:` into `package.json` and seeds/upserts the resolved range under `catalog:` in the workspace yaml. Mirrors `pnpm add --save-catalog`. -Exponential backoff factor between retry attempts. + Workspace and aliased specs (`workspace:*`, `npm:`, `jsr:`) are never catalogized — the manifest gets the original spec and the catalog yaml is left alone. If the package is already in the target catalog, the existing entry is preserved (never overwritten); the manifest then gets `catalog:` only when the existing entry is compatible with the user's range. -Overrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only — the underlying `FetchPolicy.retry_factor` is `u32`. Fractional values like `1.5` are rejected by clap. + Conflicts with `--no-save`: catalog mutations write to the workspace yaml, which the `--no-save` restore path doesn't snapshot — combining the two would silently leave an orphaned catalog entry behind. +- **`--save-catalog-name `** — Save the new dependency into a *named* catalog. -### `--fetch-retry-maxtimeout ` + Writes the entry to `catalogs.` in the workspace yaml and `catalog:` into `package.json`. Same workspace/alias exclusions and `--no-save` conflict as `--save-catalog`. Mirrors `pnpm add --save-catalog-name=`. +- **`--save-peer`** — Add as a peer dependency (written to `peerDependencies` in package.json). -Upper bound (ms) on the computed retry backoff. + By convention you usually pair this with `--save-dev` so the peer is also installed for local development; that's what pnpm does. +- **`--save-workspace-protocol`** — Force the manifest specifier into `workspace:` form for this invocation, overriding `saveWorkspaceProtocol` from the workspace yaml / `.npmrc` / env. -Overrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set. + Only meaningful when `linkWorkspacePackages` (or a workspace sibling already exists for the named package). With this flag the entry written to `package.json` is `workspace:^` (rolling) or `workspace:^` (pinned), depending on the resolved `saveWorkspaceProtocol` value. +- **`-w --workspace`** — Add the dependency to the workspace root's `package.json`. -### `--fetch-retry-mintimeout ` + Applies regardless of the current working directory: walks up from cwd looking for `aube-workspace.yaml`, `pnpm-workspace.yaml`, or a `package.json` with a `workspaces` field and runs the add against that directory. +- **`-W --ignore-workspace-root-check`** — Allow `add` to run in a workspace root. -Lower bound (ms) on the computed retry backoff. + By default aube refuses to add dependencies to the root `package.json` of a workspace (a directory containing `aube-workspace.yaml`, `pnpm-workspace.yaml`, or a `package.json` with a `workspaces` field) because deps added there end up shared by every package and usually reflect a mistake. Pass this flag to opt in. Mirrors `pnpm add -W`. +- **`-h --help`** — Print help -Overrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set. +## Lockfile +- **`--frozen-lockfile`** — Error if the lockfile drifts from package.json. +- **`--no-frozen-lockfile`** — Always re-resolve, even if the lockfile is up to date. +- **`--prefer-frozen-lockfile`** — Use the lockfile when fresh, re-resolve when stale. -### `--fetch-timeout ` +## Network +- **`--fetch-retries `** — Number of retry attempts for failed registry fetches. -Per-request HTTP timeout in milliseconds. + Overrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs. +- **`--fetch-retry-factor `** — Exponential backoff factor between retry attempts. -Overrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Applied via `reqwest`'s `.timeout()` so it covers headers + body together. + Overrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only; fractional values like `1.5` are rejected. +- **`--fetch-retry-maxtimeout `** — Upper bound (ms) on the computed retry backoff. -### `--registry ` + Overrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set. +- **`--fetch-retry-mintimeout `** — Lower bound (ms) on the computed retry backoff. -Override the default registry URL for this invocation. + Overrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set. +- **`--fetch-timeout `** — Per-request HTTP timeout in milliseconds. -Use this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes. + Overrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Covers the whole request (headers and body together). +- **`--registry `** — Override the default registry URL for this invocation. -### `--disable-global-virtual-store` + Use this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes. -Force the shared global virtual store off for this invocation. +## Virtual store +- **`--disable-global-virtual-store`** — Force the shared global virtual store off for this invocation. -Packages are materialized inside the project's virtual store instead of symlinked from `~/.cache/aube/virtual-store/`. + Packages are materialized inside the project's virtual store instead of symlinked from the shared tree under `/virtual-store/v1/` (by default `~/.cache/aube/virtual-store/v1/`). -### `--enable-global-virtual-store` + **Aliases:** `--disable-gvs` +- **`--enable-global-virtual-store`** — Force the shared global virtual store on for this invocation. -Force the shared global virtual store on for this invocation. + Overrides CI's default per-project materialization and the `disableGlobalVirtualStoreForPackages` auto-disable heuristic. -Overrides CI's default per-project materialization and the `disableGlobalVirtualStoreForPackages` auto-disable heuristic. + **Aliases:** `--enable-gvs` diff --git a/vendor/aube/docs/cli/approve-builds.md b/vendor/aube/docs/cli/approve-builds.md index c043f3de4..ff76e3933 100644 --- a/vendor/aube/docs/cli/approve-builds.md +++ b/vendor/aube/docs/cli/approve-builds.md @@ -1,27 +1,19 @@ # `aube approve-builds` -- **Usage**: `aube approve-builds [--all] [-g --global] [PKG]…` -- **Effect**: modifies state +- **Usage:** `aube approve-builds [--all] [-g --global] [PKG]…` +- **Effect:** modifies state Approve ignored dependency build scripts. Writes entries under `allowBuilds` in `aube-workspace.yaml` (or `pnpm-workspace.yaml` if present). ## Arguments +- **`[PKG]…`** — Packages to approve directly, skipping the picker. -### `[PKG]…` - -Packages to approve directly, skipping the picker. - -Each name must match a currently-ignored build. Unknown names are rejected so a typo cannot silently no-op. + Each name must match a currently-ignored build. Unknown names are rejected so a typo cannot silently no-op. ## Flags - -### `--all` - -Approve every pending ignored build without prompting - -### `-g --global` - -Operate on globally-installed packages instead of the current project +- **`--all`** — Approve every pending ignored build without prompting. +- **`-g --global`** — Operate on globally-installed packages instead of the current project. +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/audit.md b/vendor/aube/docs/cli/audit.md index ac1d7319e..a9d42cdd3 100644 --- a/vendor/aube/docs/cli/audit.md +++ b/vendor/aube/docs/cli/audit.md @@ -1,130 +1,56 @@ # `aube audit` -- **Usage**: `aube audit [FLAGS]` -- **Effect**: read-only +- **Usage:** `aube audit [FLAGS]` +- **Effect:** read-only Check installed packages against the registry advisory DB ## Flags +- **`--audit-level `** — Only print advisories at or above this severity. -### `--audit-level ` + One of: `info`, `low`, `moderate`, `high`, `critical`. Defaults to `audit.level` (or legacy `auditLevel`), then `low`. -Only print advisories at or above this severity. + **Choices:** `info`, `low`, `moderate`, `high`, `critical` +- **`-D --dev`** — Only audit `devDependencies`. +- **`--fix [FIX]`** — Fix advisories. -One of: `info`, `low`, `moderate`, `high`, `critical`. Defaults to `audit.level` (or legacy `auditLevel`), then `low`. + Bare `--fix` writes package.json overrides for backwards compatibility. `--fix=update` refreshes the lockfile without writing overrides. -**Choices:** + **Choices:** `update`, `override` +- **`--ignore `** — Drop advisories whose ID matches one of these values. -- `info` -- `low` -- `moderate` -- `high` -- `critical` + Matches against the numeric npm advisory `id`, `github_advisory_id` (`GHSA-…`), and any entry in `cves[]` (case-insensitive). Repeatable; comma-separated values are also accepted. +- **`--ignore-registry-errors`** — Use exit code 0 if the registry responds with an error. -### `-D --dev` + Useful when audit checks run in CI and the registry has a hiccup. +- **`--ignore-unfixable`** — Drop advisories that have no non-vulnerable upgrade. -Only audit `devDependencies` + Filters out advisories for which no non-vulnerable version is available in the package's packument. Same "best non-vulnerable" logic as `--fix`: an advisory is kept only when an upgrade path exists. +- **`-i --interactive`** — Pick which advisories to fix interactively. +- **`--json`** — Emit the report as JSON (pnpm-compatible shape) instead of a table. +- **`--no-optional`** — Skip `optionalDependencies`. +- **`-P --prod`** — Only audit `dependencies` and `optionalDependencies`. -### `--fix ` + **Aliases:** `--production` +- **`-h --help`** — Print help -Fix advisories. +## Network +- **`--fetch-retries `** — Number of retry attempts for failed registry fetches. -Bare `--fix` writes package.json overrides for backwards compatibility. `--fix=update` refreshes the lockfile without writing overrides. + Overrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs. +- **`--fetch-retry-factor `** — Exponential backoff factor between retry attempts. -**Choices:** + Overrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only; fractional values like `1.5` are rejected. +- **`--fetch-retry-maxtimeout `** — Upper bound (ms) on the computed retry backoff. -- `update` -- `override` + Overrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set. +- **`--fetch-retry-mintimeout `** — Lower bound (ms) on the computed retry backoff. -### `--ignore… ` + Overrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set. +- **`--fetch-timeout `** — Per-request HTTP timeout in milliseconds. -Drop advisories whose ID matches one of these values. + Overrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Covers the whole request (headers and body together). +- **`--registry `** — Override the default registry URL for this invocation. -Matches against the numeric npm advisory `id`, `github_advisory_id` (`GHSA-…`), and any entry in `cves[]` (case-insensitive). Repeatable; comma-separated values are also accepted. - -### `--ignore-registry-errors` - -Use exit code 0 if the registry responds with an error. - -Useful when audit checks run in CI and the registry has a hiccup. - -### `--ignore-unfixable` - -Drop advisories that have no non-vulnerable upgrade. - -Filters out advisories for which no non-vulnerable version is available in the package's packument. Same "best non-vulnerable" logic as `--fix`: an advisory is kept only when an upgrade path exists. - -### `-i --interactive` - -Pick which advisories to fix interactively - -### `--json` - -Emit the report as JSON (pnpm-compatible shape) instead of a table - -### `--no-optional` - -Skip `optionalDependencies` - -### `-P --prod` - -Only audit `dependencies` and `optionalDependencies` - -### `--fetch-retries ` - -Number of retry attempts for failed registry fetches. - -Overrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs. - -### `--fetch-retry-factor ` - -Exponential backoff factor between retry attempts. - -Overrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only — the underlying `FetchPolicy.retry_factor` is `u32`. Fractional values like `1.5` are rejected by clap. - -### `--fetch-retry-maxtimeout ` - -Upper bound (ms) on the computed retry backoff. - -Overrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set. - -### `--fetch-retry-mintimeout ` - -Lower bound (ms) on the computed retry backoff. - -Overrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set. - -### `--fetch-timeout ` - -Per-request HTTP timeout in milliseconds. - -Overrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Applied via `reqwest`'s `.timeout()` so it covers headers + body together. - -### `--registry ` - -Override the default registry URL for this invocation. - -Use this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes. - -Examples: - - $ aube audit - Severity Package Vulnerable Title - moderate minimatch <3.0.5 Regular Expression Denial of Service - https://github.com/advisories/GHSA-f8q6-p94x - - 1 vulnerability found - - # Only fail on high and above - $ aube audit --audit-level high - - # Skip optional deps and dev deps - $ aube audit --prod --no-optional - - # Pipe into jq - $ aube audit --json | jq '.advisories | length' - - # Clean - $ aube audit - No known vulnerabilities found + Use this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes. diff --git a/vendor/aube/docs/cli/bin.md b/vendor/aube/docs/cli/bin.md index fe483ef6e..fb563b8bd 100644 --- a/vendor/aube/docs/cli/bin.md +++ b/vendor/aube/docs/cli/bin.md @@ -1,37 +1,16 @@ # `aube bin` -- **Usage**: `aube bin [-g --global] [-w --workspace-root]` -- **Effect**: read-only +- **Usage:** `aube bin [-g --global] [-w --workspace-root]` +- **Effect:** read-only Print the path to `node_modules/.bin` ## Flags +- **`-g --global`** — Print the global bin directory instead of the project's +- **`-w --workspace-root`** — Print the workspace-root bin directory instead of the current package's. -### `-g --global` + Mirrors `pnpm bin -w`: from a sub-package, resolves the enclosing workspace root and prints its `node_modules/.bin`. No-op when no workspace root exists above cwd (single-project install), so the flag is safe to leave in shell aliases. -Print the global bin directory instead of the project's - -### `-w --workspace-root` - -Print the workspace-root bin directory instead of the current package's. - -Mirrors `pnpm bin -w`: from a sub-package, resolves the enclosing workspace root and prints its `node_modules/.bin`. No-op when no workspace root exists above cwd (single-project install), so the flag is safe to leave in shell aliases. - -Examples: - - $ aube bin - /home/user/project/node_modules/.bin - - $ aube bin -g - /home/user/.local/share/aube/global/node_modules/.bin - - # From a workspace package, -w prints the workspace-root bin directory - $ cd packages/app - $ aube bin - /home/user/project/packages/app/node_modules/.bin - $ aube bin -w - /home/user/project/node_modules/.bin - - # Extend PATH with the project bin directory - $ export PATH="$(aube bin):$PATH" + **Aliases:** `--workspace` +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/bugs.md b/vendor/aube/docs/cli/bugs.md index 10e7e14ec..937f02a43 100644 --- a/vendor/aube/docs/cli/bugs.md +++ b/vendor/aube/docs/cli/bugs.md @@ -1,55 +1,37 @@ # `aube bugs` -- **Usage**: `aube bugs [FLAGS] [PACKAGES]…` -- **Aliases**: `issues` -- **Effect**: read-only +- **Usage:** `aube bugs [FLAGS] [PACKAGES]…` +- **Aliases:** `issues` +- **Effect:** read-only Open package bug tracker URLs ## Arguments - -### `[PACKAGES]…` - -Packages to open bug trackers for. Defaults to the current project +- **`[PACKAGES]…`** — Packages to open bug trackers for. Defaults to the current project. ## Flags +- **`-h --help`** — Print help -### `--fetch-retries ` - -Number of retry attempts for failed registry fetches. - -Overrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs. - -### `--fetch-retry-factor ` - -Exponential backoff factor between retry attempts. - -Overrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only — the underlying `FetchPolicy.retry_factor` is `u32`. Fractional values like `1.5` are rejected by clap. - -### `--fetch-retry-maxtimeout ` - -Upper bound (ms) on the computed retry backoff. - -Overrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set. - -### `--fetch-retry-mintimeout ` - -Lower bound (ms) on the computed retry backoff. - -Overrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set. +## Network +- **`--fetch-retries `** — Number of retry attempts for failed registry fetches. -### `--fetch-timeout ` + Overrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs. +- **`--fetch-retry-factor `** — Exponential backoff factor between retry attempts. -Per-request HTTP timeout in milliseconds. + Overrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only; fractional values like `1.5` are rejected. +- **`--fetch-retry-maxtimeout `** — Upper bound (ms) on the computed retry backoff. -Overrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Applied via `reqwest`'s `.timeout()` so it covers headers + body together. + Overrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set. +- **`--fetch-retry-mintimeout `** — Lower bound (ms) on the computed retry backoff. -### `--registry ` + Overrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set. +- **`--fetch-timeout `** — Per-request HTTP timeout in milliseconds. -Override the default registry URL for this invocation. + Overrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Covers the whole request (headers and body together). +- **`--registry `** — Override the default registry URL for this invocation. -Use this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes. + Use this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes. Examples: diff --git a/vendor/aube/docs/cli/cache.md b/vendor/aube/docs/cli/cache.md index 9e5d8ab49..ac09b739b 100644 --- a/vendor/aube/docs/cli/cache.md +++ b/vendor/aube/docs/cli/cache.md @@ -1,15 +1,19 @@ # `aube cache` -- **Usage**: `aube cache ` -- **Effect**: read-only +- **Usage:** `aube cache ` +- **Effect:** read-only Inspect and manage the packument metadata cache +## Flags +- **`-h --help`** — Print help + ## Subcommands - [`aube cache delete …`](/cli/cache/delete.md) - [`aube cache list [PATTERNS]…`](/cli/cache/list.md) - [`aube cache list-registries`](/cli/cache/list-registries.md) +- [`aube cache path`](/cli/cache/path.md) - [`aube cache prune [--age-days ] [--dry-run]`](/cli/cache/prune.md) - [`aube cache view [--json] `](/cli/cache/view.md) diff --git a/vendor/aube/docs/cli/cache/delete.md b/vendor/aube/docs/cli/cache/delete.md index 2bc9a5b5f..d6b795bf2 100644 --- a/vendor/aube/docs/cli/cache/delete.md +++ b/vendor/aube/docs/cli/cache/delete.md @@ -1,17 +1,17 @@ # `aube cache delete` -- **Usage**: `aube cache delete …` -- **Effect**: modifies state +- **Usage:** `aube cache delete …` +- **Effect:** modifies state Delete metadata cache for the specified package(s). Supports glob patterns; matches against the package name (e.g. `lodash`, `@babel/*`). ## Arguments +- **`…`** — One or more package name patterns. -### `…` + Glob metacharacters (`*`, `?`, `[...]`) are supported. -One or more package name patterns. - -Glob metacharacters (`*`, `?`, `[...]`) are supported. +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/cache/list-registries.md b/vendor/aube/docs/cli/cache/list-registries.md index 75286904e..47f2273db 100644 --- a/vendor/aube/docs/cli/cache/list-registries.md +++ b/vendor/aube/docs/cli/cache/list-registries.md @@ -1,9 +1,12 @@ # `aube cache list-registries` -- **Usage**: `aube cache list-registries` -- **Effect**: read-only +- **Usage:** `aube cache list-registries` +- **Effect:** read-only List configured registries from the project + user `.npmrc`. -Aube stores all packuments in a single flat directory (unlike pnpm's per-host layout), so this prints the registries you're currently configured to talk to rather than the registries that happen to be in the cache. +aube stores all packuments in a single flat directory (unlike pnpm's per-host layout), so this prints the registries you're currently configured to talk to rather than the registries that happen to be in the cache. + +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/cache/list.md b/vendor/aube/docs/cli/cache/list.md index 0f66e69cd..f59bb27d0 100644 --- a/vendor/aube/docs/cli/cache/list.md +++ b/vendor/aube/docs/cli/cache/list.md @@ -1,17 +1,17 @@ # `aube cache list` -- **Usage**: `aube cache list [PATTERNS]…` -- **Effect**: read-only +- **Usage:** `aube cache list [PATTERNS]…` +- **Effect:** read-only List the available packages in the metadata cache. Optional glob filters narrow the result; with no filter every cached package is listed. ## Arguments +- **`[PATTERNS]…`** — Optional glob patterns to filter the listing. -### `[PATTERNS]…` + With no patterns, every cached package is printed. -Optional glob patterns to filter the listing. - -With no patterns, every cached package is printed. +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/cache/path.md b/vendor/aube/docs/cli/cache/path.md new file mode 100644 index 000000000..c83436254 --- /dev/null +++ b/vendor/aube/docs/cli/cache/path.md @@ -0,0 +1,10 @@ + +# `aube cache path` + +- **Usage:** `aube cache path` +- **Effect:** read-only + +Print the directory used for metadata and policy caches. + +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/cache/prune.md b/vendor/aube/docs/cli/cache/prune.md index 436e41b88..ccd5037f5 100644 --- a/vendor/aube/docs/cli/cache/prune.md +++ b/vendor/aube/docs/cli/cache/prune.md @@ -1,19 +1,14 @@ # `aube cache prune` -- **Usage**: `aube cache prune [--age-days ] [--dry-run]` -- **Effect**: modifies state +- **Usage:** `aube cache prune [--age-days ] [--dry-run]` +- **Effect:** modifies state -Remove stale extracted primer files from the metadata cache +Remove stale extracted primer files from the metadata cache. ## Flags +- **`--age-days `** — Minimum age in days before an old primer file is removed. -### `--age-days ` - -Minimum age in days before an old primer file is removed - -**Default:** `30` - -### `--dry-run` - -Do not actually delete anything + **Default:** `30` +- **`--dry-run`** — Do not actually delete anything. +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/cache/view.md b/vendor/aube/docs/cli/cache/view.md index 940143c73..3369f75f1 100644 --- a/vendor/aube/docs/cli/cache/view.md +++ b/vendor/aube/docs/cli/cache/view.md @@ -1,21 +1,16 @@ # `aube cache view` -- **Usage**: `aube cache view [--json] ` -- **Effect**: read-only +- **Usage:** `aube cache view [--json] ` +- **Effect:** read-only View the cached metadata for a single package. Prints a summary (versions, dist-tags, ETag, fetched-at) by default; `--json` dumps the raw cache file. ## Arguments - -### `` - -Package name (scoped names like `@babel/core` are accepted) +- **``** — Package name (scoped names like `@babel/core` are accepted). ## Flags - -### `--json` - -Dump the raw on-disk cache JSON instead of a summary +- **`--json`** — Dump the raw on-disk cache JSON instead of a summary. +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/cat-file.md b/vendor/aube/docs/cli/cat-file.md index 8197db438..c3fd98d92 100644 --- a/vendor/aube/docs/cli/cat-file.md +++ b/vendor/aube/docs/cli/cat-file.md @@ -1,15 +1,15 @@ # `aube cat-file` -- **Usage**: `aube cat-file ` -- **Effect**: read-only +- **Usage:** `aube cat-file ` +- **Effect:** read-only Print a file from the global store by integrity or hex hash ## Arguments +- **``** — File hash to look up. -### `` + Accepts `sha512-` (pnpm integrity format) or a raw hex CAS digest. -File hash to look up. - -Accepts `sha512-` (pnpm integrity format) or a raw hex CAS digest. +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/cat-index.md b/vendor/aube/docs/cli/cat-index.md index f9e1f1075..a4dc26785 100644 --- a/vendor/aube/docs/cli/cat-index.md +++ b/vendor/aube/docs/cli/cat-index.md @@ -1,15 +1,15 @@ # `aube cat-index` -- **Usage**: `aube cat-index ` -- **Effect**: read-only +- **Usage:** `aube cat-index ` +- **Effect:** read-only Print the cached package index JSON for `@` ## Arguments +- **``** — Package to inspect, in `name@version` form (e.g. `lodash@4.17.21`, `@babel/core@7.26.0`). -### `` + An exact version is required — ranges and dist-tags aren't resolved here. -Package to inspect, in `name@version` form (e.g. `lodash@4.17.21`, `@babel/core@7.26.0`). - -An exact version is required — ranges and dist-tags aren't resolved here. +## Flags +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/check.md b/vendor/aube/docs/cli/check.md index f5f66143d..48a218a86 100644 --- a/vendor/aube/docs/cli/check.md +++ b/vendor/aube/docs/cli/check.md @@ -1,34 +1,13 @@ # `aube check` -- **Usage**: `aube check [--json]` -- **Effect**: read-only +- **Usage:** `aube check [--json]` +- **Effect:** read-only Verify installed packages can resolve their declared deps. Walks the `node_modules/` symlink tree and confirms every dependency in each `package.json` resolves to a real entry. ## Flags - -### `--json` - -Emit a JSON report instead of the human-readable list - -Examples: - - $ aube check - node_modules symlink tree is consistent (checked 248 packages). - - # With issues - $ aube check - 2 broken dependency links found: - - vscode-languageserver@9.0.1 - ✕ cannot resolve: vscode-languageserver-protocol@3.17.5 - - vscode-languageserver-protocol@3.17.5 - ✕ cannot resolve: vscode-languageserver-types@3.17.5 - ✕ cannot resolve: vscode-jsonrpc@8.2.1 - - # Machine-readable - $ aube check --json +- **`--json`** — Emit a JSON report instead of the human-readable list. +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/ci.md b/vendor/aube/docs/cli/ci.md index 9d07b3b73..bc8cd22e0 100644 --- a/vendor/aube/docs/cli/ci.md +++ b/vendor/aube/docs/cli/ci.md @@ -1,80 +1,52 @@ # `aube ci` -- **Usage**: `aube ci [FLAGS]` -- **Aliases**: `clean-install` -- **Effect**: modifies state +- **Usage:** `aube ci [FLAGS]` +- **Aliases:** `clean-install`, `ic`, `install-clean` +- **Effect:** modifies state Clean install: delete node_modules, then install with frozen lockfile. Use in CI to guarantee a reproducible install from the committed lockfile. ## Flags +- **`--ignore-scripts`** — Skip lifecycle scripts (no-op; aube already skips by default) +- **`--no-optional`** — Skip optionalDependencies; don't install optional native modules +- **`-h --help`** — Print help -### `--ignore-scripts` +## Lockfile +- **`--frozen-lockfile`** — Error if the lockfile drifts from package.json. +- **`--no-frozen-lockfile`** — Always re-resolve, even if the lockfile is up to date. +- **`--prefer-frozen-lockfile`** — Use the lockfile when fresh, re-resolve when stale. -Skip lifecycle scripts (no-op; aube already skips by default) +## Network +- **`--fetch-retries `** — Number of retry attempts for failed registry fetches. -### `--no-optional` + Overrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs. +- **`--fetch-retry-factor `** — Exponential backoff factor between retry attempts. -Skip optionalDependencies; don't install optional native modules + Overrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only; fractional values like `1.5` are rejected. +- **`--fetch-retry-maxtimeout `** — Upper bound (ms) on the computed retry backoff. -### `--frozen-lockfile` + Overrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set. +- **`--fetch-retry-mintimeout `** — Lower bound (ms) on the computed retry backoff. -Error if the lockfile drifts from package.json + Overrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set. +- **`--fetch-timeout `** — Per-request HTTP timeout in milliseconds. -### `--no-frozen-lockfile` + Overrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Covers the whole request (headers and body together). +- **`--registry `** — Override the default registry URL for this invocation. -Always re-resolve, even if the lockfile is up to date + Use this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes. -### `--prefer-frozen-lockfile` +## Virtual store +- **`--disable-global-virtual-store`** — Force the shared global virtual store off for this invocation. -Use the lockfile when fresh, re-resolve when stale + Packages are materialized inside the project's virtual store instead of symlinked from the shared tree under `/virtual-store/v1/` (by default `~/.cache/aube/virtual-store/v1/`). -### `--fetch-retries ` + **Aliases:** `--disable-gvs` +- **`--enable-global-virtual-store`** — Force the shared global virtual store on for this invocation. -Number of retry attempts for failed registry fetches. + Overrides CI's default per-project materialization and the `disableGlobalVirtualStoreForPackages` auto-disable heuristic. -Overrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs. - -### `--fetch-retry-factor ` - -Exponential backoff factor between retry attempts. - -Overrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only — the underlying `FetchPolicy.retry_factor` is `u32`. Fractional values like `1.5` are rejected by clap. - -### `--fetch-retry-maxtimeout ` - -Upper bound (ms) on the computed retry backoff. - -Overrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set. - -### `--fetch-retry-mintimeout ` - -Lower bound (ms) on the computed retry backoff. - -Overrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set. - -### `--fetch-timeout ` - -Per-request HTTP timeout in milliseconds. - -Overrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Applied via `reqwest`'s `.timeout()` so it covers headers + body together. - -### `--registry ` - -Override the default registry URL for this invocation. - -Use this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes. - -### `--disable-global-virtual-store` - -Force the shared global virtual store off for this invocation. - -Packages are materialized inside the project's virtual store instead of symlinked from `~/.cache/aube/virtual-store/`. - -### `--enable-global-virtual-store` - -Force the shared global virtual store on for this invocation. - -Overrides CI's default per-project materialization and the `disableGlobalVirtualStoreForPackages` auto-disable heuristic. + **Aliases:** `--enable-gvs` diff --git a/vendor/aube/docs/cli/clean.md b/vendor/aube/docs/cli/clean.md index d8a44fb70..57e7f683c 100644 --- a/vendor/aube/docs/cli/clean.md +++ b/vendor/aube/docs/cli/clean.md @@ -1,17 +1,15 @@ # `aube clean` -- **Usage**: `aube clean [-l --lockfile]` -- **Effect**: modifies state +- **Usage:** `aube clean [-l --lockfile]` +- **Effect:** modifies state Remove `node_modules` across every workspace project. `--lockfile` / `-l` also deletes lockfiles. A `clean` script in the root `package.json` overrides the built-in. ## Flags +- **`-l --lockfile`** — Also remove lockfiles at the workspace root. -### `-l --lockfile` - -Also remove lockfiles at the workspace root. - -Targets `aube-lock.yaml`, `pnpm-lock.yaml`, `package-lock.json`, `npm-shrinkwrap.json`, `yarn.lock`, and `bun.lock`. + Targets `aube-lock.yaml`, `pnpm-lock.yaml`, `package-lock.json`, `npm-shrinkwrap.json`, `yarn.lock`, and `bun.lock`. +- **`-h --help`** — Print help diff --git a/vendor/aube/docs/cli/commands.json b/vendor/aube/docs/cli/commands.json index d6f35077d..de48fcfd2 100644 --- a/vendor/aube/docs/cli/commands.json +++ b/vendor/aube/docs/cli/commands.json @@ -20,15 +20,35 @@ "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": true, - "help": "Bootstrap aube's cached node-gyp and print the executable path", + "args_override_self": true, + "help": "Bootstrap aube's cached node-gyp and print the executable path.", "name": "__node-gyp-bootstrap", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "access": { "full_cmd": [ @@ -55,35 +75,75 @@ { "name": "PACKAGE", "usage": "", - "help": "Package name", - "help_first_line": "Package name", + "help": "Package name.", + "help_first_line": "Package name.", "required": true, "double_dash": "Optional", "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, - "help": "Get a package's public or restricted status", + "args_override_self": true, + "help": "Get a package's public or restricted status.", "name": "status", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] } }, "args": [], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, "subcommand_required": true, - "help": "Get package visibility status", + "args_override_self": true, + "help": "Get package visibility status.", "name": "get", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "grant": { "full_cmd": [ @@ -96,8 +156,8 @@ { "name": "PERMISSIONS", "usage": "", - "help": "`read-only` or `read-write`", - "help_first_line": "`read-only` or `read-write`", + "help": "`read-only` or `read-write`.", + "help_first_line": "`read-only` or `read-write`.", "required": true, "double_dash": "Optional", "hide": false @@ -105,8 +165,8 @@ { "name": "TEAM", "usage": "", - "help": "Team in `@scope:team` form", - "help_first_line": "Team in `@scope:team` form", + "help": "Team in `@scope:team` form.", + "help_first_line": "Team in `@scope:team` form.", "required": true, "double_dash": "Optional", "hide": false @@ -114,22 +174,42 @@ { "name": "PACKAGE", "usage": "", - "help": "Package name", - "help_first_line": "Package name", + "help": "Package name.", + "help_first_line": "Package name.", "required": true, "double_dash": "Optional", "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, - "help": "Grant a team read-only or read-write access to a package", + "args_override_self": true, + "help": "Grant a team read-only or read-write access to a package.", "name": "grant", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "list": { "full_cmd": [ @@ -150,8 +230,8 @@ { "name": "PACKAGE", "usage": "", - "help": "Package name", - "help_first_line": "Package name", + "help": "Package name.", + "help_first_line": "Package name.", "required": true, "double_dash": "Optional", "hide": false @@ -159,22 +239,42 @@ { "name": "USER", "usage": "[USER]", - "help": "Optional user name", - "help_first_line": "Optional user name", + "help": "Optional user name.", + "help_first_line": "Optional user name.", "required": false, "double_dash": "Optional", "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, - "help": "List collaborators for a package, optionally filtering to one user", + "args_override_self": true, + "help": "List collaborators for a package, optionally filtering to one user.", "name": "collaborators", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "packages": { "full_cmd": [ @@ -188,35 +288,75 @@ { "name": "ENTITY", "usage": "[ENTITY]", - "help": "User, `@organization`, or `@scope:team`", - "help_first_line": "User, `@organization`, or `@scope:team`", + "help": "User, `@organization`, or `@scope:team`.", + "help_first_line": "User, `@organization`, or `@scope:team`.", "required": false, "double_dash": "Optional", "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, - "help": "List packages visible to the current user or an optional entity", + "args_override_self": true, + "help": "List packages visible to the current user or an optional entity.", "name": "packages", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] } }, "args": [], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, "subcommand_required": true, - "help": "List packages visible to a user, organization, or team", + "args_override_self": true, + "help": "List packages visible to a user, organization, or team.", "name": "list", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "ls": { "full_cmd": [ @@ -229,23 +369,44 @@ { "name": "ENTITIES", "usage": "[ENTITIES]…", - "help": "User, `@organization`, or `@scope:team`. Also accepts pnpm's `packages [ENTITY]` compatibility form. Accepted forms are `aube access ls [ENTITY]` and `aube access ls packages [ENTITY]`", - "help_first_line": "User, `@organization`, or `@scope:team`. Also accepts pnpm's `packages [ENTITY]` compatibility form. Accepted forms are `aube access ls [ENTITY]` and `aube access ls packages [ENTITY]`", + "help": "User, `@organization`, or `@scope:team`. Also accepts pnpm's `packages [ENTITY]` compatibility form. Accepted forms are `aube access ls [ENTITY]` and `aube access ls packages [ENTITY]`.", + "help_first_line": "User, `@organization`, or `@scope:team`. Also accepts pnpm's `packages [ENTITY]` compatibility form. Accepted forms are `aube access ls [ENTITY]` and `aube access ls packages [ENTITY]`.", "required": false, "double_dash": "Optional", "var": true, + "var_max": 2, "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, - "help": "Alias for `list packages`", + "args_override_self": true, + "help": "Alias for `list packages`.", "name": "ls", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "revoke": { "full_cmd": [ @@ -258,8 +419,8 @@ { "name": "TEAM", "usage": "", - "help": "Team in `@scope:team` form", - "help_first_line": "Team in `@scope:team` form", + "help": "Team in `@scope:team` form.", + "help_first_line": "Team in `@scope:team` form.", "required": true, "double_dash": "Optional", "hide": false @@ -267,22 +428,42 @@ { "name": "PACKAGE", "usage": "", - "help": "Package name", - "help_first_line": "Package name", + "help": "Package name.", + "help_first_line": "Package name.", "required": true, "double_dash": "Optional", "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "destructive", + "unknown_flags": null, "hide": false, - "help": "Revoke a team's access to a package", + "args_override_self": true, + "help": "Revoke a team's access to a package.", "name": "revoke", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "set": { "full_cmd": [ @@ -295,8 +476,8 @@ { "name": "SETTING", "usage": "", - "help": "`status=public|private|restricted` or `mfa=none|publish|automation`", - "help_first_line": "`status=public|private|restricted` or `mfa=none|publish|automation`", + "help": "`status=public|private|restricted` or `mfa=none|publish|automation`.", + "help_first_line": "`status=public|private|restricted` or `mfa=none|publish|automation`.", "required": true, "double_dash": "Optional", "hide": false @@ -304,22 +485,42 @@ { "name": "PACKAGE", "usage": "", - "help": "Package name", - "help_first_line": "Package name", + "help": "Package name.", + "help_first_line": "Package name.", "required": true, "double_dash": "Optional", "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, - "help": "Set package visibility or a publish MFA requirement", + "args_override_self": true, + "help": "Set package visibility or a publish MFA requirement.", "name": "set", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] } }, "args": [], @@ -327,8 +528,8 @@ { "name": "json", "usage": "--json", - "help": "Emit registry responses as JSON when the subcommand has a result", - "help_first_line": "Emit registry responses as JSON when the subcommand has a result", + "help": "Emit registry responses as JSON when the subcommand has a result.", + "help_first_line": "Emit registry responses as JSON when the subcommand has a result.", "short": [], "long": [ "json" @@ -339,8 +540,8 @@ { "name": "otp", "usage": "--otp ", - "help": "One-time password from a 2FA authenticator; sent as `npm-otp`", - "help_first_line": "One-time password from a 2FA authenticator; sent as `npm-otp`", + "help": "One-time password from a 2FA authenticator; sent as `npm-otp`.", + "help_first_line": "One-time password from a 2FA authenticator; sent as `npm-otp`.", "short": [], "long": [ "otp" @@ -358,9 +559,9 @@ { "name": "fetch-retries", "usage": "--fetch-retries ", - "help": "Number of retry attempts for failed registry fetches", + "help": "Number of retry attempts for failed registry fetches.", "help_long": "Number of retry attempts for failed registry fetches.\n\nOverrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs.", - "help_first_line": "Number of retry attempts for failed registry fetches", + "help_first_line": "Number of retry attempts for failed registry fetches.", "short": [], "long": [ "fetch-retries" @@ -373,14 +574,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-factor", "usage": "--fetch-retry-factor ", - "help": "Exponential backoff factor between retry attempts", - "help_long": "Exponential backoff factor between retry attempts.\n\nOverrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only — the underlying `FetchPolicy.retry_factor` is `u32`. Fractional values like `1.5` are rejected by clap.", - "help_first_line": "Exponential backoff factor between retry attempts", + "help": "Exponential backoff factor between retry attempts.", + "help_long": "Exponential backoff factor between retry attempts.\n\nOverrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only; fractional values like `1.5` are rejected.", + "help_first_line": "Exponential backoff factor between retry attempts.", "short": [], "long": [ "fetch-retry-factor" @@ -393,14 +595,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-maxtimeout", "usage": "--fetch-retry-maxtimeout ", - "help": "Upper bound (ms) on the computed retry backoff", + "help": "Upper bound (ms) on the computed retry backoff.", "help_long": "Upper bound (ms) on the computed retry backoff.\n\nOverrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set.", - "help_first_line": "Upper bound (ms) on the computed retry backoff", + "help_first_line": "Upper bound (ms) on the computed retry backoff.", "short": [], "long": [ "fetch-retry-maxtimeout" @@ -413,14 +616,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-mintimeout", "usage": "--fetch-retry-mintimeout ", - "help": "Lower bound (ms) on the computed retry backoff", + "help": "Lower bound (ms) on the computed retry backoff.", "help_long": "Lower bound (ms) on the computed retry backoff.\n\nOverrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set.", - "help_first_line": "Lower bound (ms) on the computed retry backoff", + "help_first_line": "Lower bound (ms) on the computed retry backoff.", "short": [], "long": [ "fetch-retry-mintimeout" @@ -433,14 +637,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-timeout", "usage": "--fetch-timeout ", - "help": "Per-request HTTP timeout in milliseconds", - "help_long": "Per-request HTTP timeout in milliseconds.\n\nOverrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Applied via `reqwest`'s `.timeout()` so it covers headers + body together.", - "help_first_line": "Per-request HTTP timeout in milliseconds", + "help": "Per-request HTTP timeout in milliseconds.", + "help_long": "Per-request HTTP timeout in milliseconds.\n\nOverrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Covers the whole request (headers and body together).", + "help_first_line": "Per-request HTTP timeout in milliseconds.", "short": [], "long": [ "fetch-timeout" @@ -453,14 +658,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "registry", "usage": "--registry ", - "help": "Override the default registry URL for this invocation", + "help": "Override the default registry URL for this invocation.", "help_long": "Override the default registry URL for this invocation.\n\nUse this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes.", - "help_first_line": "Override the default registry URL for this invocation", + "help_first_line": "Override the default registry URL for this invocation.", "short": [], "long": [ "registry" @@ -473,18 +679,38 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, "subcommand_required": true, + "args_override_self": true, "help": "Manage package access and visibility on the registry", "name": "access", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "activate": { "full_cmd": [ @@ -500,25 +726,38 @@ "help_first_line": "Shell to emit activation code for", "required": true, "double_dash": "Optional", + "hide": false + } + ], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], "hide": false, - "choices": { - "choices": [ - "bash", - "fish", - "zsh" - ] - } + "global": false, + "action": "help", + "builtin": true } ], - "flags": [], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Emit shell activation code for runtime tool shims", "name": "activate", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "add": { "full_cmd": [ @@ -542,8 +781,8 @@ { "name": "save-dev", "usage": "-D --save-dev", - "help": "Add as dev dependency", - "help_first_line": "Add as dev dependency", + "help": "Add as dev dependency.", + "help_first_line": "Add as dev dependency.", "short": [ "D" ], @@ -556,8 +795,8 @@ { "name": "save-exact", "usage": "-E --save-exact", - "help": "Pin the exact resolved version (no `^` prefix)", - "help_first_line": "Pin the exact resolved version (no `^` prefix)", + "help": "Pin the exact resolved version (no `^` prefix).", + "help_first_line": "Pin the exact resolved version (no `^` prefix).", "short": [ "E" ], @@ -570,9 +809,9 @@ { "name": "global", "usage": "-g --global", - "help": "Install the package globally", + "help": "Install the package globally.", "help_long": "Install the package globally.\n\nInstalls into the aube/pnpm global directory and links its binaries into the global bin directory. Mirrors `pnpm add -g`.", - "help_first_line": "Install the package globally", + "help_first_line": "Install the package globally.", "short": [ "g" ], @@ -585,8 +824,8 @@ { "name": "save-optional", "usage": "-O --save-optional", - "help": "Add as optional dependency", - "help_first_line": "Add as optional dependency", + "help": "Add as optional dependency.", + "help_first_line": "Add as optional dependency.", "short": [ "O" ], @@ -598,10 +837,10 @@ }, { "name": "allow-build", - "usage": "--allow-build… ", - "help": "Pre-approve a dependency's lifecycle scripts as part of the add", + "usage": "--allow-build=", + "help": "Pre-approve a dependency's lifecycle scripts as part of the add.", "help_long": "Pre-approve a dependency's lifecycle scripts as part of the add.\n\nWrites `allowBuilds: { : true }` into the workspace yaml (or `package.json#aube.allowBuilds`) before the install runs, so the named package's `preinstall` / `install` / `postinstall` scripts execute on this invocation. Repeatable — pass the flag once per package. Mirrors `pnpm add --allow-build=`.\n\nConflicts with `--no-save`, which only snapshots `package.json` and the lockfile and would leave an orphaned approval in the workspace yaml on restore. Also conflicts with `--deny-build` for the same package name.", - "help_first_line": "Pre-approve a dependency's lifecycle scripts as part of the add", + "help_first_line": "Pre-approve a dependency's lifecycle scripts as part of the add.", "short": [], "long": [ "allow-build" @@ -614,15 +853,21 @@ "usage": "", "required": true, "double_dash": "Optional", - "hide": false - } + "hide": false, + "validate": "value != ''", + "validate_error": "The --allow-build flag is missing a package name. Please specify the package name(s) that are allowed to run installation scripts." + }, + "conflicts": [ + "--no-save" + ], + "require_equals": true }, { "name": "allow-low-downloads", "usage": "--allow-low-downloads", - "help": "Bypass the similar-name, new-name, and [`lowDownloadThreshold`] confirm prompts / refusals for this invocation", - "help_long": "Bypass the similar-name, new-name, and [`lowDownloadThreshold`] confirm prompts / refusals for this invocation.\n\n`aube add` looks up each candidate's weekly download count and prompts (interactive) or fails (CI) when the count is below [`lowDownloadThreshold`], resembles a top-100,000 npm package, or is newer than [`minimumPackageAge`]. The flag is intended for cases where you've already verified the package out-of-band. It does not affect the OSV malicious-package check, which remains a hard block.", - "help_first_line": "Bypass the similar-name, new-name, and [`lowDownloadThreshold`] confirm prompts / refusals for this invocation", + "help": "Bypass the similar-name, new-name, and `lowDownloadThreshold` confirm prompts / refusals for this invocation.", + "help_long": "Bypass the similar-name, new-name, and `lowDownloadThreshold` confirm prompts / refusals for this invocation.\n\n`aube add` looks up each candidate's weekly download count and prompts (interactive) or fails (CI) when the count is below `lowDownloadThreshold`, resembles a top-100,000 npm package, or is newer than `minimumPackageAge`. The flag is intended for cases where you've already verified the package out-of-band. It does not affect the OSV malicious-package check, which remains a hard block.", + "help_first_line": "Bypass the similar-name, new-name, and `lowDownloadThreshold` confirm prompts / refusals for this invocation.", "short": [], "long": [ "allow-low-downloads" @@ -633,9 +878,9 @@ { "name": "dangerously-allow-all-builds", "usage": "--dangerously-allow-all-builds", - "help": "Allow every dependency's lifecycle scripts to run", + "help": "Allow every dependency's lifecycle scripts to run.", "help_long": "Allow every dependency's lifecycle scripts to run.\n\nBypasses the `allowBuilds` allowlist for this invocation. Do not use in CI. Mirrors pnpm's `--dangerously-allow-all-builds`.", - "help_first_line": "Allow every dependency's lifecycle scripts to run", + "help_first_line": "Allow every dependency's lifecycle scripts to run.", "short": [], "long": [ "dangerously-allow-all-builds" @@ -645,10 +890,10 @@ }, { "name": "deny-build", - "usage": "--deny-build… ", - "help": "Mark a dependency's lifecycle scripts as reviewed and denied", + "usage": "--deny-build=", + "help": "Mark a dependency's lifecycle scripts as reviewed and denied.", "help_long": "Mark a dependency's lifecycle scripts as reviewed and denied.\n\nWrites `allowBuilds: { : false }` into the workspace yaml (or `package.json#aube.allowBuilds`) before the install runs, so the named package's lifecycle scripts stay skipped without tripping `strictDepBuilds=true`. Repeatable — pass the flag once per package.\n\nConflicts with `--no-save`, which only snapshots `package.json` and the lockfile and would leave an orphaned denial in the workspace yaml on restore. Also conflicts with `--allow-build` for the same package name and with `--dangerously-allow-all-builds`.", - "help_first_line": "Mark a dependency's lifecycle scripts as reviewed and denied", + "help_first_line": "Mark a dependency's lifecycle scripts as reviewed and denied.", "short": [], "long": [ "deny-build" @@ -661,14 +906,21 @@ "usage": "", "required": true, "double_dash": "Optional", - "hide": false - } + "hide": false, + "validate": "value != ''", + "validate_error": "The --deny-build flag is missing a package name. Please specify the package name(s) that are denied from running installation scripts." + }, + "conflicts": [ + "--no-save", + "--dangerously-allow-all-builds" + ], + "require_equals": true }, { "name": "ignore-scripts", "usage": "--ignore-scripts", - "help": "Skip lifecycle scripts (no-op; aube already skips by default)", - "help_first_line": "Skip lifecycle scripts (no-op; aube already skips by default)", + "help": "Skip root and approved dependency lifecycle scripts.", + "help_first_line": "Skip root and approved dependency lifecycle scripts.", "short": [], "long": [ "ignore-scripts" @@ -679,48 +931,58 @@ { "name": "no-save", "usage": "--no-save", - "help": "Install without persisting the dependency to `package.json`", + "help": "Install without persisting the dependency to `package.json`.", "help_long": "Install without persisting the dependency to `package.json`.\n\nSnapshots `package.json` and the lockfile, links the named packages into `node_modules`, and then restores both files — so the dependency is usable for the current process but the project's committed state is untouched.\n\nHandy for one-off experiments and for scripts that install a tool transiently. Mirrors `pnpm add --no-save`. Conflicts with `-g`/`--global`, which has to persist the install to its global manifest.", - "help_first_line": "Install without persisting the dependency to `package.json`", + "help_first_line": "Install without persisting the dependency to `package.json`.", "short": [], "long": [ "no-save" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--global" + ] }, { "name": "no-save-workspace-protocol", "usage": "--no-save-workspace-protocol", - "help": "Inverse of `--save-workspace-protocol`", + "help": "Inverse of `--save-workspace-protocol`.", "help_long": "Inverse of `--save-workspace-protocol`.\n\nForces the manifest specifier into a registry-style spec (`^`) for this invocation, even when `linkWorkspacePackages` matched a local sibling. The install pipeline still prefers the local workspace copy at resolve time — this flag only controls what's written to `package.json`. Mirrors `pnpm add --no-save-workspace-protocol`.", - "help_first_line": "Inverse of `--save-workspace-protocol`", + "help_first_line": "Inverse of `--save-workspace-protocol`.", "short": [], "long": [ "no-save-workspace-protocol" ], "hide": false, - "global": false + "global": false, + "overrides": [ + "--save-workspace-protocol" + ] }, { "name": "save-catalog", "usage": "--save-catalog", - "help": "Save the new dependency into the workspace's default catalog", + "help": "Save the new dependency into the workspace's default catalog.", "help_long": "Save the new dependency into the workspace's default catalog.\n\nWrites `catalog:` into `package.json` and seeds/upserts the resolved range under `catalog:` in the workspace yaml. Mirrors `pnpm add --save-catalog`.\n\nWorkspace and aliased specs (`workspace:*`, `npm:`, `jsr:`) are never catalogized — the manifest gets the original spec and the catalog yaml is left alone. If the package is already in the target catalog, the existing entry is preserved (never overwritten); the manifest then gets `catalog:` only when the existing entry is compatible with the user's range.\n\nConflicts with `--no-save`: catalog mutations write to the workspace yaml, which the `--no-save` restore path doesn't snapshot — combining the two would silently leave an orphaned catalog entry behind.", - "help_first_line": "Save the new dependency into the workspace's default catalog", + "help_first_line": "Save the new dependency into the workspace's default catalog.", "short": [], "long": [ "save-catalog" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--save-catalog-name", + "--no-save" + ] }, { "name": "save-catalog-name", "usage": "--save-catalog-name ", - "help": "Save the new dependency into a *named* catalog", + "help": "Save the new dependency into a *named* catalog.", "help_long": "Save the new dependency into a *named* catalog.\n\nWrites the entry to `catalogs.` in the workspace yaml and `catalog:` into `package.json`. Same workspace/alias exclusions and `--no-save` conflict as `--save-catalog`. Mirrors `pnpm add --save-catalog-name=`.", - "help_first_line": "Save the new dependency into a *named* catalog", + "help_first_line": "Save the new dependency into a *named* catalog.", "short": [], "long": [ "save-catalog-name" @@ -733,40 +995,49 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "conflicts": [ + "--no-save" + ] }, { "name": "save-peer", "usage": "--save-peer", - "help": "Add as a peer dependency (written to `peerDependencies` in package.json)", + "help": "Add as a peer dependency (written to `peerDependencies` in package.json).", "help_long": "Add as a peer dependency (written to `peerDependencies` in package.json).\n\nBy convention you usually pair this with `--save-dev` so the peer is also installed for local development; that's what pnpm does.", - "help_first_line": "Add as a peer dependency (written to `peerDependencies` in package.json)", + "help_first_line": "Add as a peer dependency (written to `peerDependencies` in package.json).", "short": [], "long": [ "save-peer" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--save-optional" + ] }, { "name": "save-workspace-protocol", "usage": "--save-workspace-protocol", - "help": "Force the manifest specifier into `workspace:` form for this invocation, overriding `saveWorkspaceProtocol` from the workspace yaml / `.npmrc` / env", + "help": "Force the manifest specifier into `workspace:` form for this invocation, overriding `saveWorkspaceProtocol` from the workspace yaml / `.npmrc` / env.", "help_long": "Force the manifest specifier into `workspace:` form for this invocation, overriding `saveWorkspaceProtocol` from the workspace yaml / `.npmrc` / env.\n\nOnly meaningful when `linkWorkspacePackages` (or a workspace sibling already exists for the named package). With this flag the entry written to `package.json` is `workspace:^` (rolling) or `workspace:^` (pinned), depending on the resolved `saveWorkspaceProtocol` value.", - "help_first_line": "Force the manifest specifier into `workspace:` form for this invocation, overriding `saveWorkspaceProtocol` from the workspace yaml / `.npmrc` / env", + "help_first_line": "Force the manifest specifier into `workspace:` form for this invocation, overriding `saveWorkspaceProtocol` from the workspace yaml / `.npmrc` / env.", "short": [], "long": [ "save-workspace-protocol" ], "hide": false, - "global": false + "global": false, + "overrides": [ + "--no-save-workspace-protocol" + ] }, { "name": "workspace", "usage": "-w --workspace", - "help": "Add the dependency to the workspace root's `package.json`", + "help": "Add the dependency to the workspace root's `package.json`.", "help_long": "Add the dependency to the workspace root's `package.json`.\n\nApplies regardless of the current working directory: walks up from cwd looking for `aube-workspace.yaml`, `pnpm-workspace.yaml`, or a `package.json` with a `workspaces` field and runs the add against that directory.", - "help_first_line": "Add the dependency to the workspace root's `package.json`", + "help_first_line": "Add the dependency to the workspace root's `package.json`.", "short": [ "w" ], @@ -774,14 +1045,17 @@ "workspace" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--global" + ] }, { "name": "ignore-workspace-root-check", "usage": "-W --ignore-workspace-root-check", - "help": "Allow `add` to run in a workspace root", + "help": "Allow `add` to run in a workspace root.", "help_long": "Allow `add` to run in a workspace root.\n\nBy default aube refuses to add dependencies to the root `package.json` of a workspace (a directory containing `aube-workspace.yaml`, `pnpm-workspace.yaml`, or a `package.json` with a `workspaces` field) because deps added there end up shared by every package and usually reflect a mistake. Pass this flag to opt in. Mirrors `pnpm add -W`.", - "help_first_line": "Allow `add` to run in a workspace root", + "help_first_line": "Allow `add` to run in a workspace root.", "short": [ "W" ], @@ -794,45 +1068,60 @@ { "name": "frozen-lockfile", "usage": "--frozen-lockfile", - "help": "Error if the lockfile drifts from package.json", - "help_first_line": "Error if the lockfile drifts from package.json", + "help": "Error if the lockfile drifts from package.json.", + "help_first_line": "Error if the lockfile drifts from package.json.", "short": [], "long": [ "frozen-lockfile" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--no-frozen-lockfile", + "--prefer-frozen-lockfile" + ], + "help_heading": "Lockfile" }, { "name": "no-frozen-lockfile", "usage": "--no-frozen-lockfile", - "help": "Always re-resolve, even if the lockfile is up to date", - "help_first_line": "Always re-resolve, even if the lockfile is up to date", + "help": "Always re-resolve, even if the lockfile is up to date.", + "help_first_line": "Always re-resolve, even if the lockfile is up to date.", "short": [], "long": [ "no-frozen-lockfile" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--frozen-lockfile", + "--prefer-frozen-lockfile" + ], + "help_heading": "Lockfile" }, { "name": "prefer-frozen-lockfile", "usage": "--prefer-frozen-lockfile", - "help": "Use the lockfile when fresh, re-resolve when stale", - "help_first_line": "Use the lockfile when fresh, re-resolve when stale", + "help": "Use the lockfile when fresh, re-resolve when stale.", + "help_first_line": "Use the lockfile when fresh, re-resolve when stale.", "short": [], "long": [ "prefer-frozen-lockfile" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--frozen-lockfile", + "--no-frozen-lockfile" + ], + "help_heading": "Lockfile" }, { "name": "fetch-retries", "usage": "--fetch-retries ", - "help": "Number of retry attempts for failed registry fetches", + "help": "Number of retry attempts for failed registry fetches.", "help_long": "Number of retry attempts for failed registry fetches.\n\nOverrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs.", - "help_first_line": "Number of retry attempts for failed registry fetches", + "help_first_line": "Number of retry attempts for failed registry fetches.", "short": [], "long": [ "fetch-retries" @@ -845,14 +1134,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-factor", "usage": "--fetch-retry-factor ", - "help": "Exponential backoff factor between retry attempts", - "help_long": "Exponential backoff factor between retry attempts.\n\nOverrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only — the underlying `FetchPolicy.retry_factor` is `u32`. Fractional values like `1.5` are rejected by clap.", - "help_first_line": "Exponential backoff factor between retry attempts", + "help": "Exponential backoff factor between retry attempts.", + "help_long": "Exponential backoff factor between retry attempts.\n\nOverrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only; fractional values like `1.5` are rejected.", + "help_first_line": "Exponential backoff factor between retry attempts.", "short": [], "long": [ "fetch-retry-factor" @@ -865,14 +1155,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-maxtimeout", "usage": "--fetch-retry-maxtimeout ", - "help": "Upper bound (ms) on the computed retry backoff", + "help": "Upper bound (ms) on the computed retry backoff.", "help_long": "Upper bound (ms) on the computed retry backoff.\n\nOverrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set.", - "help_first_line": "Upper bound (ms) on the computed retry backoff", + "help_first_line": "Upper bound (ms) on the computed retry backoff.", "short": [], "long": [ "fetch-retry-maxtimeout" @@ -885,14 +1176,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-mintimeout", "usage": "--fetch-retry-mintimeout ", - "help": "Lower bound (ms) on the computed retry backoff", + "help": "Lower bound (ms) on the computed retry backoff.", "help_long": "Lower bound (ms) on the computed retry backoff.\n\nOverrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set.", - "help_first_line": "Lower bound (ms) on the computed retry backoff", + "help_first_line": "Lower bound (ms) on the computed retry backoff.", "short": [], "long": [ "fetch-retry-mintimeout" @@ -905,14 +1197,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-timeout", "usage": "--fetch-timeout ", - "help": "Per-request HTTP timeout in milliseconds", - "help_long": "Per-request HTTP timeout in milliseconds.\n\nOverrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Applied via `reqwest`'s `.timeout()` so it covers headers + body together.", - "help_first_line": "Per-request HTTP timeout in milliseconds", + "help": "Per-request HTTP timeout in milliseconds.", + "help_long": "Per-request HTTP timeout in milliseconds.\n\nOverrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Covers the whole request (headers and body together).", + "help_first_line": "Per-request HTTP timeout in milliseconds.", "short": [], "long": [ "fetch-timeout" @@ -925,14 +1218,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "registry", "usage": "--registry ", - "help": "Override the default registry URL for this invocation", + "help": "Override the default registry URL for this invocation.", "help_long": "Override the default registry URL for this invocation.\n\nUse this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes.", - "help_first_line": "Override the default registry URL for this invocation", + "help_first_line": "Override the default registry URL for this invocation.", "short": [], "long": [ "registry" @@ -945,47 +1239,75 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "disable-global-virtual-store", "usage": "--disable-global-virtual-store", - "help": "Force the shared global virtual store off for this invocation", - "help_long": "Force the shared global virtual store off for this invocation.\n\nPackages are materialized inside the project's virtual store instead of symlinked from `~/.cache/aube/virtual-store/`.", - "help_first_line": "Force the shared global virtual store off for this invocation", + "help": "Force the shared global virtual store off for this invocation.", + "help_long": "Force the shared global virtual store off for this invocation.\n\nPackages are materialized inside the project's virtual store instead of symlinked from the shared tree under `/virtual-store/v1/` (by default `~/.cache/aube/virtual-store/v1/`).", + "help_first_line": "Force the shared global virtual store off for this invocation.", "short": [], "long": [ "disable-global-virtual-store", "disable-gvs" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--enable-global-virtual-store" + ], + "help_heading": "Virtual store" }, { "name": "enable-global-virtual-store", "usage": "--enable-global-virtual-store", - "help": "Force the shared global virtual store on for this invocation", + "help": "Force the shared global virtual store on for this invocation.", "help_long": "Force the shared global virtual store on for this invocation.\n\nOverrides CI's default per-project materialization and the `disableGlobalVirtualStoreForPackages` auto-disable heuristic.", - "help_first_line": "Force the shared global virtual store on for this invocation", + "help_first_line": "Force the shared global virtual store on for this invocation.", "short": [], "long": [ "enable-global-virtual-store", "enable-gvs" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--disable-global-virtual-store" + ], + "help_heading": "Virtual store" + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Add a dependency", "name": "add", "aliases": [ "a" ], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "approve-builds": { "full_cmd": [ @@ -997,9 +1319,9 @@ { "name": "PKG", "usage": "[PKG]…", - "help": "Packages to approve directly, skipping the picker", + "help": "Packages to approve directly, skipping the picker.", "help_long": "Packages to approve directly, skipping the picker.\n\nEach name must match a currently-ignored build. Unknown names are rejected so a typo cannot silently no-op.", - "help_first_line": "Packages to approve directly, skipping the picker", + "help_first_line": "Packages to approve directly, skipping the picker.", "required": false, "double_dash": "Optional", "var": true, @@ -1010,8 +1332,8 @@ { "name": "all", "usage": "--all", - "help": "Approve every pending ignored build without prompting", - "help_first_line": "Approve every pending ignored build without prompting", + "help": "Approve every pending ignored build without prompting.", + "help_first_line": "Approve every pending ignored build without prompting.", "short": [], "long": [ "all" @@ -1022,8 +1344,8 @@ { "name": "global", "usage": "-g --global", - "help": "Operate on globally-installed packages instead of the current project", - "help_first_line": "Operate on globally-installed packages instead of the current project", + "help": "Operate on globally-installed packages instead of the current project.", + "help_first_line": "Operate on globally-installed packages instead of the current project.", "short": [ "g" ], @@ -1032,17 +1354,36 @@ ], "hide": false, "global": false + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, - "help": "Approve ignored dependency build scripts", + "args_override_self": true, + "help": "Approve ignored dependency build scripts.", "help_long": "Approve ignored dependency build scripts.\n\nWrites entries under `allowBuilds` in `aube-workspace.yaml` (or `pnpm-workspace.yaml` if present).", "name": "approve-builds", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "audit": { "full_cmd": [ @@ -1055,9 +1396,9 @@ { "name": "audit-level", "usage": "--audit-level ", - "help": "Only print advisories at or above this severity", + "help": "Only print advisories at or above this severity.", "help_long": "Only print advisories at or above this severity.\n\nOne of: `info`, `low`, `moderate`, `high`, `critical`. Defaults to `audit.level` (or legacy `auditLevel`), then `low`.", - "help_first_line": "Only print advisories at or above this severity", + "help_first_line": "Only print advisories at or above this severity.", "short": [], "long": [ "audit-level" @@ -1077,6 +1418,23 @@ "moderate", "high", "critical" + ], + "details": [ + { + "value": "info" + }, + { + "value": "low" + }, + { + "value": "moderate" + }, + { + "value": "high" + }, + { + "value": "critical" + } ] } } @@ -1084,8 +1442,8 @@ { "name": "dev", "usage": "-D --dev", - "help": "Only audit `devDependencies`", - "help_first_line": "Only audit `devDependencies`", + "help": "Only audit `devDependencies`.", + "help_first_line": "Only audit `devDependencies`.", "short": [ "D" ], @@ -1093,14 +1451,17 @@ "dev" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--prod" + ] }, { "name": "fix", - "usage": "--fix ", - "help": "Fix advisories", + "usage": "--fix [FIX]", + "help": "Fix advisories.", "help_long": "Fix advisories.\n\nBare `--fix` writes package.json overrides for backwards compatibility. `--fix=update` refreshes the lockfile without writing overrides.", - "help_first_line": "Fix advisories", + "help_first_line": "Fix advisories.", "short": [], "long": [ "fix" @@ -1109,24 +1470,36 @@ "global": false, "arg": { "name": "FIX", - "usage": "", - "required": true, + "usage": "[FIX]", + "required": false, "double_dash": "Optional", "hide": false, "choices": { "choices": [ "update", "override" + ], + "details": [ + { + "value": "update", + "help": "Refresh the lockfile to patched versions allowed by existing ranges." + }, + { + "value": "override", + "help": "Write package.json overrides that force patched versions." + } ] } - } + }, + "value_optional": true, + "default_missing": "override" }, { "name": "ignore", - "usage": "--ignore… ", - "help": "Drop advisories whose ID matches one of these values", + "usage": "--ignore ", + "help": "Drop advisories whose ID matches one of these values.", "help_long": "Drop advisories whose ID matches one of these values.\n\nMatches against the numeric npm advisory `id`, `github_advisory_id` (`GHSA-…`), and any entry in `cves[]` (case-insensitive). Repeatable; comma-separated values are also accepted.", - "help_first_line": "Drop advisories whose ID matches one of these values", + "help_first_line": "Drop advisories whose ID matches one of these values.", "short": [], "long": [ "ignore" @@ -1139,15 +1512,16 @@ "usage": "", "required": true, "double_dash": "Optional", + "delimiter": ",", "hide": false } }, { "name": "ignore-registry-errors", "usage": "--ignore-registry-errors", - "help": "Use exit code 0 if the registry responds with an error", + "help": "Use exit code 0 if the registry responds with an error.", "help_long": "Use exit code 0 if the registry responds with an error.\n\nUseful when audit checks run in CI and the registry has a hiccup.", - "help_first_line": "Use exit code 0 if the registry responds with an error", + "help_first_line": "Use exit code 0 if the registry responds with an error.", "short": [], "long": [ "ignore-registry-errors" @@ -1158,9 +1532,9 @@ { "name": "ignore-unfixable", "usage": "--ignore-unfixable", - "help": "Drop advisories that have no non-vulnerable upgrade", + "help": "Drop advisories that have no non-vulnerable upgrade.", "help_long": "Drop advisories that have no non-vulnerable upgrade.\n\nFilters out advisories for which no non-vulnerable version is available in the package's packument. Same \"best non-vulnerable\" logic as `--fix`: an advisory is kept only when an upgrade path exists.", - "help_first_line": "Drop advisories that have no non-vulnerable upgrade", + "help_first_line": "Drop advisories that have no non-vulnerable upgrade.", "short": [], "long": [ "ignore-unfixable" @@ -1171,8 +1545,8 @@ { "name": "interactive", "usage": "-i --interactive", - "help": "Pick which advisories to fix interactively", - "help_first_line": "Pick which advisories to fix interactively", + "help": "Pick which advisories to fix interactively.", + "help_first_line": "Pick which advisories to fix interactively.", "short": [ "i" ], @@ -1185,8 +1559,8 @@ { "name": "json", "usage": "--json", - "help": "Emit the report as JSON (pnpm-compatible shape) instead of a table", - "help_first_line": "Emit the report as JSON (pnpm-compatible shape) instead of a table", + "help": "Emit the report as JSON (pnpm-compatible shape) instead of a table.", + "help_first_line": "Emit the report as JSON (pnpm-compatible shape) instead of a table.", "short": [], "long": [ "json" @@ -1197,8 +1571,8 @@ { "name": "no-optional", "usage": "--no-optional", - "help": "Skip `optionalDependencies`", - "help_first_line": "Skip `optionalDependencies`", + "help": "Skip `optionalDependencies`.", + "help_first_line": "Skip `optionalDependencies`.", "short": [], "long": [ "no-optional" @@ -1209,8 +1583,8 @@ { "name": "prod", "usage": "-P --prod", - "help": "Only audit `dependencies` and `optionalDependencies`", - "help_first_line": "Only audit `dependencies` and `optionalDependencies`", + "help": "Only audit `dependencies` and `optionalDependencies`.", + "help_first_line": "Only audit `dependencies` and `optionalDependencies`.", "short": [ "P" ], @@ -1219,14 +1593,17 @@ "production" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--dev" + ] }, { "name": "fetch-retries", "usage": "--fetch-retries ", - "help": "Number of retry attempts for failed registry fetches", + "help": "Number of retry attempts for failed registry fetches.", "help_long": "Number of retry attempts for failed registry fetches.\n\nOverrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs.", - "help_first_line": "Number of retry attempts for failed registry fetches", + "help_first_line": "Number of retry attempts for failed registry fetches.", "short": [], "long": [ "fetch-retries" @@ -1239,14 +1616,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-factor", "usage": "--fetch-retry-factor ", - "help": "Exponential backoff factor between retry attempts", - "help_long": "Exponential backoff factor between retry attempts.\n\nOverrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only — the underlying `FetchPolicy.retry_factor` is `u32`. Fractional values like `1.5` are rejected by clap.", - "help_first_line": "Exponential backoff factor between retry attempts", + "help": "Exponential backoff factor between retry attempts.", + "help_long": "Exponential backoff factor between retry attempts.\n\nOverrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only; fractional values like `1.5` are rejected.", + "help_first_line": "Exponential backoff factor between retry attempts.", "short": [], "long": [ "fetch-retry-factor" @@ -1259,14 +1637,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-maxtimeout", "usage": "--fetch-retry-maxtimeout ", - "help": "Upper bound (ms) on the computed retry backoff", + "help": "Upper bound (ms) on the computed retry backoff.", "help_long": "Upper bound (ms) on the computed retry backoff.\n\nOverrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set.", - "help_first_line": "Upper bound (ms) on the computed retry backoff", + "help_first_line": "Upper bound (ms) on the computed retry backoff.", "short": [], "long": [ "fetch-retry-maxtimeout" @@ -1279,14 +1658,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-mintimeout", "usage": "--fetch-retry-mintimeout ", - "help": "Lower bound (ms) on the computed retry backoff", + "help": "Lower bound (ms) on the computed retry backoff.", "help_long": "Lower bound (ms) on the computed retry backoff.\n\nOverrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set.", - "help_first_line": "Lower bound (ms) on the computed retry backoff", + "help_first_line": "Lower bound (ms) on the computed retry backoff.", "short": [], "long": [ "fetch-retry-mintimeout" @@ -1299,14 +1679,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-timeout", "usage": "--fetch-timeout ", - "help": "Per-request HTTP timeout in milliseconds", - "help_long": "Per-request HTTP timeout in milliseconds.\n\nOverrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Applied via `reqwest`'s `.timeout()` so it covers headers + body together.", - "help_first_line": "Per-request HTTP timeout in milliseconds", + "help": "Per-request HTTP timeout in milliseconds.", + "help_long": "Per-request HTTP timeout in milliseconds.\n\nOverrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Covers the whole request (headers and body together).", + "help_first_line": "Per-request HTTP timeout in milliseconds.", "short": [], "long": [ "fetch-timeout" @@ -1319,14 +1700,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "registry", "usage": "--registry ", - "help": "Override the default registry URL for this invocation", + "help": "Override the default registry URL for this invocation.", "help_long": "Override the default registry URL for this invocation.\n\nUse this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes.", - "help_first_line": "Override the default registry URL for this invocation", + "help_first_line": "Override the default registry URL for this invocation.", "short": [], "long": [ "registry" @@ -1339,18 +1721,37 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Check installed packages against the registry advisory DB", "name": "audit", "aliases": [], "hidden_aliases": [], - "after_help_long": "Examples:\n\n $ aube audit\n Severity Package Vulnerable Title\n moderate minimatch <3.0.5 Regular Expression Denial of Service\n https://github.com/advisories/GHSA-f8q6-p94x\n\n 1 vulnerability found\n\n # Only fail on high and above\n $ aube audit --audit-level high\n\n # Skip optional deps and dev deps\n $ aube audit --prod --no-optional\n\n # Pipe into jq\n $ aube audit --json | jq '.advisories | length'\n\n # Clean\n $ aube audit\n No known vulnerabilities found\n", - "examples": [] + "examples": [], + "headings": [] }, "bin": { "full_cmd": [ @@ -1372,14 +1773,17 @@ "global" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--workspace-root" + ] }, { "name": "workspace-root", "usage": "-w --workspace-root", - "help": "Print the workspace-root bin directory instead of the current package's", + "help": "Print the workspace-root bin directory instead of the current package's.", "help_long": "Print the workspace-root bin directory instead of the current package's.\n\nMirrors `pnpm bin -w`: from a sub-package, resolves the enclosing workspace root and prints its `node_modules/.bin`. No-op when no workspace root exists above cwd (single-project install), so the flag is safe to leave in shell aliases.", - "help_first_line": "Print the workspace-root bin directory instead of the current package's", + "help_first_line": "Print the workspace-root bin directory instead of the current package's.", "short": [ "w" ], @@ -1389,17 +1793,35 @@ ], "hide": false, "global": false + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Print the path to `node_modules/.bin`", "name": "bin", "aliases": [], "hidden_aliases": [], - "after_help_long": "Examples:\n\n $ aube bin\n /home/user/project/node_modules/.bin\n\n $ aube bin -g\n /home/user/.local/share/aube/global/node_modules/.bin\n\n # From a workspace package, -w prints the workspace-root bin directory\n $ cd packages/app\n $ aube bin\n /home/user/project/packages/app/node_modules/.bin\n $ aube bin -w\n /home/user/project/node_modules/.bin\n\n # Extend PATH with the project bin directory\n $ export PATH=\"$(aube bin):$PATH\"\n", - "examples": [] + "examples": [], + "headings": [] }, "bugs": { "full_cmd": [ @@ -1411,8 +1833,8 @@ { "name": "PACKAGES", "usage": "[PACKAGES]…", - "help": "Packages to open bug trackers for. Defaults to the current project", - "help_first_line": "Packages to open bug trackers for. Defaults to the current project", + "help": "Packages to open bug trackers for. Defaults to the current project.", + "help_first_line": "Packages to open bug trackers for. Defaults to the current project.", "required": false, "double_dash": "Optional", "var": true, @@ -1423,9 +1845,9 @@ { "name": "fetch-retries", "usage": "--fetch-retries ", - "help": "Number of retry attempts for failed registry fetches", + "help": "Number of retry attempts for failed registry fetches.", "help_long": "Number of retry attempts for failed registry fetches.\n\nOverrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs.", - "help_first_line": "Number of retry attempts for failed registry fetches", + "help_first_line": "Number of retry attempts for failed registry fetches.", "short": [], "long": [ "fetch-retries" @@ -1438,14 +1860,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-factor", "usage": "--fetch-retry-factor ", - "help": "Exponential backoff factor between retry attempts", - "help_long": "Exponential backoff factor between retry attempts.\n\nOverrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only — the underlying `FetchPolicy.retry_factor` is `u32`. Fractional values like `1.5` are rejected by clap.", - "help_first_line": "Exponential backoff factor between retry attempts", + "help": "Exponential backoff factor between retry attempts.", + "help_long": "Exponential backoff factor between retry attempts.\n\nOverrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only; fractional values like `1.5` are rejected.", + "help_first_line": "Exponential backoff factor between retry attempts.", "short": [], "long": [ "fetch-retry-factor" @@ -1458,14 +1881,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-maxtimeout", "usage": "--fetch-retry-maxtimeout ", - "help": "Upper bound (ms) on the computed retry backoff", + "help": "Upper bound (ms) on the computed retry backoff.", "help_long": "Upper bound (ms) on the computed retry backoff.\n\nOverrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set.", - "help_first_line": "Upper bound (ms) on the computed retry backoff", + "help_first_line": "Upper bound (ms) on the computed retry backoff.", "short": [], "long": [ "fetch-retry-maxtimeout" @@ -1478,14 +1902,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-mintimeout", "usage": "--fetch-retry-mintimeout ", - "help": "Lower bound (ms) on the computed retry backoff", + "help": "Lower bound (ms) on the computed retry backoff.", "help_long": "Lower bound (ms) on the computed retry backoff.\n\nOverrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set.", - "help_first_line": "Lower bound (ms) on the computed retry backoff", + "help_first_line": "Lower bound (ms) on the computed retry backoff.", "short": [], "long": [ "fetch-retry-mintimeout" @@ -1498,14 +1923,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-timeout", "usage": "--fetch-timeout ", - "help": "Per-request HTTP timeout in milliseconds", - "help_long": "Per-request HTTP timeout in milliseconds.\n\nOverrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Applied via `reqwest`'s `.timeout()` so it covers headers + body together.", - "help_first_line": "Per-request HTTP timeout in milliseconds", + "help": "Per-request HTTP timeout in milliseconds.", + "help_long": "Per-request HTTP timeout in milliseconds.\n\nOverrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Covers the whole request (headers and body together).", + "help_first_line": "Per-request HTTP timeout in milliseconds.", "short": [], "long": [ "fetch-timeout" @@ -1518,14 +1944,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "registry", "usage": "--registry ", - "help": "Override the default registry URL for this invocation", + "help": "Override the default registry URL for this invocation.", "help_long": "Override the default registry URL for this invocation.\n\nUse this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes.", - "help_first_line": "Override the default registry URL for this invocation", + "help_first_line": "Override the default registry URL for this invocation.", "short": [], "long": [ "registry" @@ -1538,12 +1965,31 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Open package bug tracker URLs", "name": "bugs", "aliases": [ @@ -1551,7 +1997,8 @@ ], "hidden_aliases": [], "after_help_long": "Examples:\n\n $ aube bugs\n\n $ aube bugs react\n\n $ aube issues react react-dom\n", - "examples": [] + "examples": [], + "headings": [] }, "cache": { "full_cmd": [ @@ -1570,25 +2017,45 @@ { "name": "PATTERNS", "usage": "…", - "help": "One or more package name patterns", + "help": "One or more package name patterns.", "help_long": "One or more package name patterns.\n\nGlob metacharacters (`*`, `?`, `[...]`) are supported.", - "help_first_line": "One or more package name patterns", + "help_first_line": "One or more package name patterns.", "required": true, "double_dash": "Optional", "var": true, "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, - "help": "Delete metadata cache for the specified package(s)", + "args_override_self": true, + "help": "Delete metadata cache for the specified package(s).", "help_long": "Delete metadata cache for the specified package(s).\n\nSupports glob patterns; matches against the package name (e.g. `lodash`, `@babel/*`).", "name": "delete", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "list": { "full_cmd": [ @@ -1601,25 +2068,45 @@ { "name": "PATTERNS", "usage": "[PATTERNS]…", - "help": "Optional glob patterns to filter the listing", + "help": "Optional glob patterns to filter the listing.", "help_long": "Optional glob patterns to filter the listing.\n\nWith no patterns, every cached package is printed.", - "help_first_line": "Optional glob patterns to filter the listing", + "help_first_line": "Optional glob patterns to filter the listing.", "required": false, "double_dash": "Optional", "var": true, "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, - "help": "List the available packages in the metadata cache", + "args_override_self": true, + "help": "List the available packages in the metadata cache.", "help_long": "List the available packages in the metadata cache.\n\nOptional glob filters narrow the result; with no filter every cached package is listed.", "name": "list", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "list-registries": { "full_cmd": [ @@ -1629,16 +2116,74 @@ "usage": "cache list-registries", "subcommands": {}, "args": [], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, - "help": "List configured registries from the project + user `.npmrc`", - "help_long": "List configured registries from the project + user `.npmrc`.\n\nAube stores all packuments in a single flat directory (unlike pnpm's per-host layout), so this prints the registries you're currently configured to talk to rather than the registries that happen to be in the cache.", + "args_override_self": true, + "help": "List configured registries from the project + user `.npmrc`.", + "help_long": "List configured registries from the project + user `.npmrc`.\n\naube stores all packuments in a single flat directory (unlike pnpm's per-host layout), so this prints the registries you're currently configured to talk to rather than the registries that happen to be in the cache.", "name": "list-registries", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] + }, + "path": { + "full_cmd": [ + "cache", + "path" + ], + "usage": "cache path", + "subcommands": {}, + "args": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], + "mounts": [], + "effect": "read", + "unknown_flags": null, + "hide": false, + "args_override_self": true, + "help": "Print the directory used for metadata and policy caches.", + "name": "path", + "aliases": [], + "hidden_aliases": [], + "examples": [], + "headings": [] }, "prune": { "full_cmd": [ @@ -1652,8 +2197,8 @@ { "name": "age-days", "usage": "--age-days ", - "help": "Minimum age in days before an old primer file is removed", - "help_first_line": "Minimum age in days before an old primer file is removed", + "help": "Minimum age in days before an old primer file is removed.", + "help_first_line": "Minimum age in days before an old primer file is removed.", "short": [], "long": [ "age-days" @@ -1674,24 +2219,43 @@ { "name": "dry-run", "usage": "--dry-run", - "help": "Do not actually delete anything", - "help_first_line": "Do not actually delete anything", + "help": "Do not actually delete anything.", + "help_first_line": "Do not actually delete anything.", "short": [], "long": [ "dry-run" ], "hide": false, "global": false + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, - "help": "Remove stale extracted primer files from the metadata cache", + "args_override_self": true, + "help": "Remove stale extracted primer files from the metadata cache.", "name": "prune", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "view": { "full_cmd": [ @@ -1704,8 +2268,8 @@ { "name": "NAME", "usage": "", - "help": "Package name (scoped names like `@babel/core` are accepted)", - "help_first_line": "Package name (scoped names like `@babel/core` are accepted)", + "help": "Package name (scoped names like `@babel/core` are accepted).", + "help_first_line": "Package name (scoped names like `@babel/core` are accepted).", "required": true, "double_dash": "Optional", "hide": false @@ -1715,38 +2279,77 @@ { "name": "json", "usage": "--json", - "help": "Dump the raw on-disk cache JSON instead of a summary", - "help_first_line": "Dump the raw on-disk cache JSON instead of a summary", + "help": "Dump the raw on-disk cache JSON instead of a summary.", + "help_first_line": "Dump the raw on-disk cache JSON instead of a summary.", "short": [], "long": [ "json" ], "hide": false, "global": false + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, - "help": "View the cached metadata for a single package", + "args_override_self": true, + "help": "View the cached metadata for a single package.", "help_long": "View the cached metadata for a single package.\n\nPrints a summary (versions, dist-tags, ETag, fetched-at) by default; `--json` dumps the raw cache file.", "name": "view", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] } }, "args": [], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, "subcommand_required": true, + "args_override_self": true, "help": "Inspect and manage the packument metadata cache", "name": "cache", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "cat-file": { "full_cmd": [ @@ -1758,23 +2361,43 @@ { "name": "HASH", "usage": "", - "help": "File hash to look up", + "help": "File hash to look up.", "help_long": "File hash to look up.\n\nAccepts `sha512-` (pnpm integrity format) or a raw hex CAS digest.", - "help_first_line": "File hash to look up", + "help_first_line": "File hash to look up.", "required": true, "double_dash": "Optional", "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Print a file from the global store by integrity or hex hash", "name": "cat-file", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "cat-index": { "full_cmd": [ @@ -1786,23 +2409,43 @@ { "name": "PACKAGE", "usage": "", - "help": "Package to inspect, in `name@version` form (e.g. `lodash@4.17.21`, `@babel/core@7.26.0`)", + "help": "Package to inspect, in `name@version` form (e.g. `lodash@4.17.21`, `@babel/core@7.26.0`).", "help_long": "Package to inspect, in `name@version` form (e.g. `lodash@4.17.21`, `@babel/core@7.26.0`).\n\nAn exact version is required — ranges and dist-tags aren't resolved here.", - "help_first_line": "Package to inspect, in `name@version` form (e.g. `lodash@4.17.21`, `@babel/core@7.26.0`)", + "help_first_line": "Package to inspect, in `name@version` form (e.g. `lodash@4.17.21`, `@babel/core@7.26.0`).", "required": true, "double_dash": "Optional", "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Print the cached package index JSON for `@`", "name": "cat-index", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "check": { "full_cmd": [ @@ -1815,26 +2458,44 @@ { "name": "json", "usage": "--json", - "help": "Emit a JSON report instead of the human-readable list", - "help_first_line": "Emit a JSON report instead of the human-readable list", + "help": "Emit a JSON report instead of the human-readable list.", + "help_first_line": "Emit a JSON report instead of the human-readable list.", "short": [], "long": [ "json" ], "hide": false, "global": false + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, - "help": "Verify installed packages can resolve their declared deps", + "args_override_self": true, + "help": "Verify installed packages can resolve their declared deps.", "help_long": "Verify installed packages can resolve their declared deps.\n\nWalks the `node_modules/` symlink tree and confirms every dependency in each `package.json` resolves to a real entry.", "name": "check", "aliases": [], "hidden_aliases": [], - "after_help_long": "Examples:\n\n $ aube check\n node_modules symlink tree is consistent (checked 248 packages).\n\n # With issues\n $ aube check\n 2 broken dependency links found:\n\n vscode-languageserver@9.0.1\n ✕ cannot resolve: vscode-languageserver-protocol@3.17.5\n\n vscode-languageserver-protocol@3.17.5\n ✕ cannot resolve: vscode-languageserver-types@3.17.5\n ✕ cannot resolve: vscode-jsonrpc@8.2.1\n\n # Machine-readable\n $ aube check --json\n", - "examples": [] + "examples": [], + "headings": [] }, "ci": { "full_cmd": [ @@ -1871,45 +2532,60 @@ { "name": "frozen-lockfile", "usage": "--frozen-lockfile", - "help": "Error if the lockfile drifts from package.json", - "help_first_line": "Error if the lockfile drifts from package.json", + "help": "Error if the lockfile drifts from package.json.", + "help_first_line": "Error if the lockfile drifts from package.json.", "short": [], "long": [ "frozen-lockfile" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--no-frozen-lockfile", + "--prefer-frozen-lockfile" + ], + "help_heading": "Lockfile" }, { "name": "no-frozen-lockfile", "usage": "--no-frozen-lockfile", - "help": "Always re-resolve, even if the lockfile is up to date", - "help_first_line": "Always re-resolve, even if the lockfile is up to date", + "help": "Always re-resolve, even if the lockfile is up to date.", + "help_first_line": "Always re-resolve, even if the lockfile is up to date.", "short": [], "long": [ "no-frozen-lockfile" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--frozen-lockfile", + "--prefer-frozen-lockfile" + ], + "help_heading": "Lockfile" }, { "name": "prefer-frozen-lockfile", "usage": "--prefer-frozen-lockfile", - "help": "Use the lockfile when fresh, re-resolve when stale", - "help_first_line": "Use the lockfile when fresh, re-resolve when stale", + "help": "Use the lockfile when fresh, re-resolve when stale.", + "help_first_line": "Use the lockfile when fresh, re-resolve when stale.", "short": [], "long": [ "prefer-frozen-lockfile" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--frozen-lockfile", + "--no-frozen-lockfile" + ], + "help_heading": "Lockfile" }, { "name": "fetch-retries", "usage": "--fetch-retries ", - "help": "Number of retry attempts for failed registry fetches", + "help": "Number of retry attempts for failed registry fetches.", "help_long": "Number of retry attempts for failed registry fetches.\n\nOverrides `fetchRetries` / `fetch-retries` from `.npmrc` / `aube-workspace.yaml` when set. Pair with `--fetch-timeout` to fail fast in scripted test runs.", - "help_first_line": "Number of retry attempts for failed registry fetches", + "help_first_line": "Number of retry attempts for failed registry fetches.", "short": [], "long": [ "fetch-retries" @@ -1922,14 +2598,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-factor", "usage": "--fetch-retry-factor ", - "help": "Exponential backoff factor between retry attempts", - "help_long": "Exponential backoff factor between retry attempts.\n\nOverrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only — the underlying `FetchPolicy.retry_factor` is `u32`. Fractional values like `1.5` are rejected by clap.", - "help_first_line": "Exponential backoff factor between retry attempts", + "help": "Exponential backoff factor between retry attempts.", + "help_long": "Exponential backoff factor between retry attempts.\n\nOverrides `fetchRetryFactor` / `fetch-retry-factor` from `.npmrc` / `aube-workspace.yaml` when set. Integer-only; fractional values like `1.5` are rejected.", + "help_first_line": "Exponential backoff factor between retry attempts.", "short": [], "long": [ "fetch-retry-factor" @@ -1942,14 +2619,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-maxtimeout", "usage": "--fetch-retry-maxtimeout ", - "help": "Upper bound (ms) on the computed retry backoff", + "help": "Upper bound (ms) on the computed retry backoff.", "help_long": "Upper bound (ms) on the computed retry backoff.\n\nOverrides `fetchRetryMaxtimeout` / `fetch-retry-maxtimeout` from `.npmrc` / `aube-workspace.yaml` when set.", - "help_first_line": "Upper bound (ms) on the computed retry backoff", + "help_first_line": "Upper bound (ms) on the computed retry backoff.", "short": [], "long": [ "fetch-retry-maxtimeout" @@ -1962,14 +2640,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-retry-mintimeout", "usage": "--fetch-retry-mintimeout ", - "help": "Lower bound (ms) on the computed retry backoff", + "help": "Lower bound (ms) on the computed retry backoff.", "help_long": "Lower bound (ms) on the computed retry backoff.\n\nOverrides `fetchRetryMintimeout` / `fetch-retry-mintimeout` from `.npmrc` / `aube-workspace.yaml` when set.", - "help_first_line": "Lower bound (ms) on the computed retry backoff", + "help_first_line": "Lower bound (ms) on the computed retry backoff.", "short": [], "long": [ "fetch-retry-mintimeout" @@ -1982,14 +2661,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "fetch-timeout", "usage": "--fetch-timeout ", - "help": "Per-request HTTP timeout in milliseconds", - "help_long": "Per-request HTTP timeout in milliseconds.\n\nOverrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Applied via `reqwest`'s `.timeout()` so it covers headers + body together.", - "help_first_line": "Per-request HTTP timeout in milliseconds", + "help": "Per-request HTTP timeout in milliseconds.", + "help_long": "Per-request HTTP timeout in milliseconds.\n\nOverrides `fetchTimeout` / `fetch-timeout` from `.npmrc` / `aube-workspace.yaml` when set. Covers the whole request (headers and body together).", + "help_first_line": "Per-request HTTP timeout in milliseconds.", "short": [], "long": [ "fetch-timeout" @@ -2002,14 +2682,15 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "registry", "usage": "--registry ", - "help": "Override the default registry URL for this invocation", + "help": "Override the default registry URL for this invocation.", "help_long": "Override the default registry URL for this invocation.\n\nUse this npm registry URL for package metadata, tarballs, audit requests, dist-tags, and registry writes.", - "help_first_line": "Override the default registry URL for this invocation", + "help_first_line": "Override the default registry URL for this invocation.", "short": [], "long": [ "registry" @@ -2022,51 +2703,78 @@ "required": true, "double_dash": "Optional", "hide": false - } + }, + "help_heading": "Network" }, { "name": "disable-global-virtual-store", "usage": "--disable-global-virtual-store", - "help": "Force the shared global virtual store off for this invocation", - "help_long": "Force the shared global virtual store off for this invocation.\n\nPackages are materialized inside the project's virtual store instead of symlinked from `~/.cache/aube/virtual-store/`.", - "help_first_line": "Force the shared global virtual store off for this invocation", + "help": "Force the shared global virtual store off for this invocation.", + "help_long": "Force the shared global virtual store off for this invocation.\n\nPackages are materialized inside the project's virtual store instead of symlinked from the shared tree under `/virtual-store/v1/` (by default `~/.cache/aube/virtual-store/v1/`).", + "help_first_line": "Force the shared global virtual store off for this invocation.", "short": [], "long": [ "disable-global-virtual-store", "disable-gvs" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--enable-global-virtual-store" + ], + "help_heading": "Virtual store" }, { "name": "enable-global-virtual-store", "usage": "--enable-global-virtual-store", - "help": "Force the shared global virtual store on for this invocation", + "help": "Force the shared global virtual store on for this invocation.", "help_long": "Force the shared global virtual store on for this invocation.\n\nOverrides CI's default per-project materialization and the `disableGlobalVirtualStoreForPackages` auto-disable heuristic.", - "help_first_line": "Force the shared global virtual store on for this invocation", + "help_first_line": "Force the shared global virtual store on for this invocation.", "short": [], "long": [ "enable-global-virtual-store", "enable-gvs" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--disable-global-virtual-store" + ], + "help_heading": "Virtual store" + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, - "help": "Clean install: delete node_modules, then install with frozen lockfile", + "args_override_self": true, + "help": "Clean install: delete node_modules, then install with frozen lockfile.", "help_long": "Clean install: delete node_modules, then install with frozen lockfile.\n\nUse in CI to guarantee a reproducible install from the committed lockfile.", "name": "ci", "aliases": [ - "clean-install" - ], - "hidden_aliases": [ + "clean-install", "ic", "install-clean" ], - "examples": [] + "hidden_aliases": [], + "examples": [], + "headings": [] }, "clean": { "full_cmd": [ @@ -2079,9 +2787,9 @@ { "name": "lockfile", "usage": "-l --lockfile", - "help": "Also remove lockfiles at the workspace root", + "help": "Also remove lockfiles at the workspace root.", "help_long": "Also remove lockfiles at the workspace root.\n\nTargets `aube-lock.yaml`, `pnpm-lock.yaml`, `package-lock.json`, `npm-shrinkwrap.json`, `yarn.lock`, and `bun.lock`.", - "help_first_line": "Also remove lockfiles at the workspace root", + "help_first_line": "Also remove lockfiles at the workspace root.", "short": [ "l" ], @@ -2090,23 +2798,42 @@ ], "hide": false, "global": false + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, - "help": "Remove `node_modules` across every workspace project", + "args_override_self": true, + "help": "Remove `node_modules` across every workspace project.", "help_long": "Remove `node_modules` across every workspace project.\n\n`--lockfile` / `-l` also deletes lockfiles. A `clean` script in the root `package.json` overrides the built-in.", "name": "clean", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "completion": { "full_cmd": [ "completion" ], - "usage": "completion ", + "usage": "completion [--force] [--install] ", "subcommands": {}, "args": [ { @@ -2121,64 +2848,63 @@ ], "flags": [ { - "name": "complete", - "usage": "--complete ", - "help": "Emit dynamic candidates for the shell completion engine", - "help_first_line": "Emit dynamic candidates for the shell completion engine", + "name": "force", + "usage": "--force", + "help": "Replace a file at a target path that aube did not write", + "help_first_line": "Replace a file at a target path that aube did not write", "short": [], "long": [ - "complete" + "force" ], - "hide": true, + "hide": false, "global": false, - "arg": { - "name": "COMPLETE", - "usage": "", - "required": true, - "double_dash": "Optional", - "hide": false, - "choices": { - "choices": [ - "package", - "bin", - "workspace", - "setting", - "patch" - ] - } - } + "requires": [ + "--install" + ], + "effect": "write" }, { - "name": "query", - "usage": "--query ", - "help": "Current word being completed", - "help_first_line": "Current word being completed", + "name": "install", + "usage": "--install", + "help": "Install the scripts where this shell looks for them, instead of printing them", + "help_long": "Install the scripts where this shell looks for them, instead of printing them\n\nWrites one script per program — aube, aubr and aubx — and nothing else: no shell rc file and no PowerShell profile is edited. Where a shell needs a one-time line of its own, it is printed for you to add.", + "help_first_line": "Install the scripts where this shell looks for them, instead of printing them", "short": [], "long": [ - "query" + "install" ], - "hide": true, + "hide": false, "global": false, - "arg": { - "name": "QUERY", - "usage": "", - "required": true, - "double_dash": "Optional", - "hide": false - }, - "default": [ - "" - ] + "effect": "write" + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Generate shell completions (bash, zsh, fish)", "name": "completion", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "config": { "full_cmd": [ @@ -2191,15 +2917,15 @@ "config", "delete" ], - "usage": "config delete [-g --global] [--local] ", + "usage": "config delete [--local] [--location ] ", "subcommands": {}, "args": [ { "name": "KEY", "usage": "", - "help": "The setting key", + "help": "The setting key.", "help_long": "The setting key.\n\nAccepts either a pnpm canonical name (e.g. `autoInstallPeers`) or an `.npmrc` alias (e.g. `auto-install-peers`).", - "help_first_line": "The setting key", + "help_first_line": "The setting key.", "required": true, "double_dash": "Optional", "hide": false @@ -2207,35 +2933,86 @@ ], "flags": [ { - "name": "global", - "usage": "-g --global", - "help": "Use the user configuration instead of the project configuration", - "help_first_line": "Use the user configuration instead of the project configuration", - "short": [ - "g" - ], + "name": "local", + "usage": "--local", + "help": "Shortcut for `--location project`.", + "help_first_line": "Shortcut for `--location project`.", + "short": [], "long": [ - "global" + "local" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--location" + ] }, { - "name": "local", - "usage": "--local", - "help": "Use the project configuration (the default)", - "help_first_line": "Use the project configuration (the default)", + "name": "location", + "usage": "--location ", + "help": "Which config location to act on.", + "help_long": "Which config location to act on.\n\nDefaults to `user`. Delete sweeps both aube's own config (`~/.config/aube/config.toml` at user-scope, `/.config/aube/config.toml` at project-scope) and the matching `.npmrc`, so the call works regardless of which file the value was originally written to.", + "help_first_line": "Which config location to act on.", "short": [], "long": [ - "local" + "location" ], "hide": false, - "global": false + "global": false, + "arg": { + "name": "LOCATION", + "usage": "", + "required": true, + "double_dash": "Optional", + "hide": false, + "choices": { + "choices": [ + "user", + "project", + "global" + ], + "details": [ + { + "value": "user", + "help": "User config (`~/.config/aube/config.toml` for known aube settings, `~/.npmrc` for registry/auth and unknown keys)" + }, + { + "value": "project", + "help": "`/.npmrc`" + }, + { + "value": "global", + "help": "Alias for `user` — aube has no separate global config file." + } + ] + } + }, + "default": [ + "user" + ] + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "destructive", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Delete a key from aube config or the selected `.npmrc` file", "name": "delete", "aliases": [ @@ -2244,7 +3021,8 @@ "unset" ], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "explain": { "full_cmd": [ @@ -2257,22 +3035,42 @@ { "name": "KEY", "usage": "", - "help": "Setting key, `.npmrc` alias, env var, workspace YAML key, or CLI flag", - "help_first_line": "Setting key, `.npmrc` alias, env var, workspace YAML key, or CLI flag", + "help": "Setting key, `.npmrc` alias, env var, workspace YAML key, or CLI flag.", + "help_first_line": "Setting key, `.npmrc` alias, env var, workspace YAML key, or CLI flag.", "required": true, "double_dash": "Optional", "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Explain a known setting, including defaults and supported config sources", "name": "explain", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "find": { "full_cmd": [ @@ -2285,25 +3083,45 @@ { "name": "QUERY", "usage": "…", - "help": "Words to search for", - "help_first_line": "Words to search for", + "help": "Words to search for.", + "help_first_line": "Words to search for.", "required": true, "double_dash": "Optional", "var": true, "hide": false } ], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Search known settings by name, source key, or description", "name": "find", "aliases": [ "search" ], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "get": { "full_cmd": [ @@ -2316,35 +3134,21 @@ { "name": "KEY", "usage": "", - "help": "The setting key", + "help": "The setting key.", "help_long": "The setting key.\n\nAccepts either a pnpm canonical name (e.g. `autoInstallPeers`) or an `.npmrc` alias (e.g. `auto-install-peers`).", - "help_first_line": "The setting key", + "help_first_line": "The setting key.", "required": true, "double_dash": "Optional", "hide": false } ], "flags": [ - { - "name": "global", - "usage": "-g --global", - "help": "Read only the user configuration", - "help_first_line": "Read only the user configuration", - "short": [ - "g" - ], - "long": [ - "global" - ], - "hide": false, - "global": false - }, { "name": "json", "usage": "--json", - "help": "Emit the value as JSON", + "help": "Emit the value as JSON.", "help_long": "Emit the value as JSON.\n\nMatches `pnpm config get --json`: a missing key renders as `undefined`, a found value is JSON-encoded.", - "help_first_line": "Emit the value as JSON", + "help_first_line": "Emit the value as JSON.", "short": [], "long": [ "json" @@ -2355,24 +3159,95 @@ { "name": "local", "usage": "--local", - "help": "Read only the project configuration", - "help_first_line": "Read only the project configuration", + "help": "Shortcut for `--location project`.", + "help_first_line": "Shortcut for `--location project`.", "short": [], "long": [ "local" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--location" + ] + }, + { + "name": "location", + "usage": "--location ", + "help": "Which config location(s) to read.", + "help_long": "Which config location(s) to read.\n\nDefaults to `merged` — the last-write-wins view of user aube config, `~/.npmrc`, then `./.npmrc`, matching what install actually sees. Use `user` or `project` to restrict the lookup.", + "help_first_line": "Which config location(s) to read.", + "short": [], + "long": [ + "location" + ], + "hide": false, + "global": false, + "arg": { + "name": "LOCATION", + "usage": "", + "required": true, + "double_dash": "Optional", + "hide": false, + "choices": { + "choices": [ + "merged", + "user", + "project", + "global" + ], + "details": [ + { + "value": "merged", + "help": "Merge `~/.npmrc`, user aube config, and project `.npmrc`, last-write-wins (same precedence install uses)." + }, + { + "value": "user", + "help": "Only user config (`~/.config/aube/config.toml` + `~/.npmrc`)" + }, + { + "value": "project", + "help": "Only `/.npmrc`" + }, + { + "value": "global", + "help": "Alias for `user`." + } + ] + } + }, + "default": [ + "merged" + ] + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Print the effective value of a key", "name": "get", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "list": { "full_cmd": [ @@ -2386,9 +3261,9 @@ { "name": "all", "usage": "--all", - "help": "Also list settings that have no value set", - "help_long": "Also list settings that have no value set.\n\nRenders one row per setting in `settings.toml`, with the default and description shown for unset entries.\n\nNot valid with `--local` or `--global`, since a single-scope view can't distinguish \"not set anywhere\" from \"set in the other scope\" and would render misleading defaults.", - "help_first_line": "Also list settings that have no value set", + "help": "Also list settings that have no value set.", + "help_long": "Also list settings that have no value set.\n\nRenders one row per setting in `settings.toml`, with the default and description shown for unset entries.\n\nOnly valid with `--location merged` (the default), since a per-file view can't distinguish \"not set anywhere\" from \"set in the other file\" and would render misleading defaults.", + "help_first_line": "Also list settings that have no value set.", "short": [], "long": [ "all" @@ -2396,26 +3271,12 @@ "hide": false, "global": false }, - { - "name": "global", - "usage": "-g --global", - "help": "List only the user configuration", - "help_first_line": "List only the user configuration", - "short": [ - "g" - ], - "long": [ - "global" - ], - "hide": false, - "global": false - }, { "name": "json", "usage": "--json", - "help": "Emit all entries as a JSON object keyed by setting name", - "help_long": "Emit all entries as a JSON object keyed by setting name.\n\nMatches `pnpm config list --json`. Honors the selected scope.", - "help_first_line": "Emit all entries as a JSON object keyed by setting name", + "help": "Emit all entries as a JSON object keyed by setting name.", + "help_long": "Emit all entries as a JSON object keyed by setting name.\n\nMatches `pnpm config list --json`. Honors `--all` and `--location` the same way the default text output does.", + "help_first_line": "Emit all entries as a JSON object keyed by setting name.", "short": [], "long": [ "json" @@ -2426,40 +3287,110 @@ { "name": "local", "usage": "--local", - "help": "List only the project configuration", - "help_first_line": "List only the project configuration", + "help": "Shortcut for `--location project`.", + "help_long": "Shortcut for `--location project`.\n\nConflicts with `--all` since `--all` only makes sense against the merged view — see the `--all` docs for why.", + "help_first_line": "Shortcut for `--location project`.", "short": [], "long": [ "local" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--location", + "--all" + ] + }, + { + "name": "location", + "usage": "--location ", + "help": "Which config location(s) to list.", + "help_long": "Which config location(s) to list.\n\n`merged` (default) walks `~/.npmrc`, user aube config, then the project's `.npmrc` with last-write-wins precedence, matching how install reads config.", + "help_first_line": "Which config location(s) to list.", + "short": [], + "long": [ + "location" + ], + "hide": false, + "global": false, + "arg": { + "name": "LOCATION", + "usage": "", + "required": true, + "double_dash": "Optional", + "hide": false, + "choices": { + "choices": [ + "merged", + "user", + "project", + "global" + ], + "details": [ + { + "value": "merged", + "help": "Merge `~/.npmrc`, user aube config, and project `.npmrc`, last-write-wins (same precedence install uses)." + }, + { + "value": "user", + "help": "Only user config (`~/.config/aube/config.toml` + `~/.npmrc`)" + }, + { + "value": "project", + "help": "Only `/.npmrc`" + }, + { + "value": "global", + "help": "Alias for `user`." + } + ] + } + } + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Print every key/value from aube config and selected `.npmrc` file(s)", "name": "list", "aliases": [ "ls" ], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "set": { "full_cmd": [ "config", "set" ], - "usage": "config set [-g --global] [--local] ", + "usage": "config set [--local] [--location ] ", "subcommands": {}, "args": [ { "name": "KEY", "usage": "", - "help": "Setting key (canonical name or `.npmrc` alias)", - "help_first_line": "Setting key (canonical name or `.npmrc` alias)", + "help": "Setting key (canonical name or `.npmrc` alias).", + "help_first_line": "Setting key (canonical name or `.npmrc` alias).", "required": true, "double_dash": "Optional", "hide": false @@ -2467,8 +3398,8 @@ { "name": "VALUE", "usage": "", - "help": "Value to write. Stored verbatim after `key=`", - "help_first_line": "Value to write. Stored verbatim after `key=`", + "help": "Value to write. Stored verbatim after `key=`.", + "help_first_line": "Value to write. Stored verbatim after `key=`.", "required": true, "double_dash": "Optional", "hide": false @@ -2476,40 +3407,92 @@ ], "flags": [ { - "name": "global", - "usage": "-g --global", - "help": "Use the user configuration instead of the project configuration", - "help_first_line": "Use the user configuration instead of the project configuration", - "short": [ - "g" - ], + "name": "local", + "usage": "--local", + "help": "Shortcut for `--location project`.", + "help_first_line": "Shortcut for `--location project`.", + "short": [], "long": [ - "global" + "local" ], "hide": false, - "global": false + "global": false, + "conflicts": [ + "--location" + ] }, { - "name": "local", - "usage": "--local", - "help": "Use the project configuration (the default)", - "help_first_line": "Use the project configuration (the default)", + "name": "location", + "usage": "--location ", + "help": "Which config location to write to.", + "help_long": "Which config location to write to.\n\nDefaults to `user`. Writes land in `.npmrc` for the npm-shared surface — per-host auth/cert templates, scoped registries, and settings tagged `npmShared = true` in the settings registry (`registry`, `proxy` / `https-proxy`, `engine-strict`, `ignore-scripts`, etc.) — so npm and yarn read the same value. aube-only and pnpm-only settings, plus unknown keys, land in aube's own config (`~/.config/aube/config.toml` at user scope, `/.config/aube/config.toml` at project scope) where sibling tools don't see them.\n\nDotted writes for aube map settings (`allowBuilds.`, `overrides.`, …) edit one entry at a time. At project scope (`--local`) they land in `pnpm-workspace.yaml#.` or `package.json#aube..` if no workspace yaml exists, the same place install reads from. User-scope dotted writes for these maps error: aube only reads them per project.", + "help_first_line": "Which config location to write to.", "short": [], "long": [ - "local" + "location" ], "hide": false, - "global": false + "global": false, + "arg": { + "name": "LOCATION", + "usage": "", + "required": true, + "double_dash": "Optional", + "hide": false, + "choices": { + "choices": [ + "user", + "project", + "global" + ], + "details": [ + { + "value": "user", + "help": "User config (`~/.config/aube/config.toml` for known aube settings, `~/.npmrc` for registry/auth and unknown keys)" + }, + { + "value": "project", + "help": "`/.npmrc`" + }, + { + "value": "global", + "help": "Alias for `user` — aube has no separate global config file." + } + ] + } + }, + "default": [ + "user" + ] + }, + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Write a key=value pair to aube config or the selected `.npmrc` file", "name": "set", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] }, "tui": { "full_cmd": [ @@ -2519,15 +3502,35 @@ "usage": "config tui", "subcommands": {}, "args": [], - "flags": [], + "flags": [ + { + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], + "long": [ + "help" + ], + "hide": false, + "global": false, + "action": "help", + "builtin": true + } + ], "mounts": [], "effect": "write", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Browse known settings in an interactive terminal UI", "name": "tui", "aliases": [], "hidden_aliases": [], - "examples": [] + "examples": [], + "headings": [] } }, "args": [], @@ -2535,9 +3538,9 @@ { "name": "all", "usage": "--all", - "help": "Also list settings that have no value set", - "help_long": "Also list settings that have no value set.\n\nRenders one row per setting in `settings.toml`, with the default and description shown for unset entries.\n\nNot valid with `--local` or `--global`, since a single-scope view can't distinguish \"not set anywhere\" from \"set in the other scope\" and would render misleading defaults.", - "help_first_line": "Also list settings that have no value set", + "help": "Also list settings that have no value set.", + "help_long": "Also list settings that have no value set.\n\nRenders one row per setting in `settings.toml`, with the default and description shown for unset entries.\n\nOnly valid with `--location merged` (the default), since a per-file view can't distinguish \"not set anywhere\" from \"set in the other file\" and would render misleading defaults.", + "help_first_line": "Also list settings that have no value set.", "short": [], "long": [ "all" @@ -2546,55 +3549,111 @@ "global": false }, { - "name": "global", - "usage": "-g --global", - "help": "List only the user configuration", - "help_first_line": "List only the user configuration", - "short": [ - "g" - ], + "name": "json", + "usage": "--json", + "help": "Emit all entries as a JSON object keyed by setting name.", + "help_long": "Emit all entries as a JSON object keyed by setting name.\n\nMatches `pnpm config list --json`. Honors `--all` and `--location` the same way the default text output does.", + "help_first_line": "Emit all entries as a JSON object keyed by setting name.", + "short": [], "long": [ - "global" + "json" ], "hide": false, "global": false }, { - "name": "json", - "usage": "--json", - "help": "Emit all entries as a JSON object keyed by setting name", - "help_long": "Emit all entries as a JSON object keyed by setting name.\n\nMatches `pnpm config list --json`. Honors the selected scope.", - "help_first_line": "Emit all entries as a JSON object keyed by setting name", + "name": "local", + "usage": "--local", + "help": "Shortcut for `--location project`.", + "help_long": "Shortcut for `--location project`.\n\nConflicts with `--all` since `--all` only makes sense against the merged view — see the `--all` docs for why.", + "help_first_line": "Shortcut for `--location project`.", + "short": [], + "long": [ + "local" + ], + "hide": false, + "global": false, + "conflicts": [ + "--location", + "--all" + ] + }, + { + "name": "location", + "usage": "--location ", + "help": "Which config location(s) to list.", + "help_long": "Which config location(s) to list.\n\n`merged` (default) walks `~/.npmrc`, user aube config, then the project's `.npmrc` with last-write-wins precedence, matching how install reads config.", + "help_first_line": "Which config location(s) to list.", "short": [], "long": [ - "json" + "location" ], "hide": false, - "global": false + "global": false, + "arg": { + "name": "LOCATION", + "usage": "", + "required": true, + "double_dash": "Optional", + "hide": false, + "choices": { + "choices": [ + "merged", + "user", + "project", + "global" + ], + "details": [ + { + "value": "merged", + "help": "Merge `~/.npmrc`, user aube config, and project `.npmrc`, last-write-wins (same precedence install uses)." + }, + { + "value": "user", + "help": "Only user config (`~/.config/aube/config.toml` + `~/.npmrc`)" + }, + { + "value": "project", + "help": "Only `/.npmrc`" + }, + { + "value": "global", + "help": "Alias for `user`." + } + ] + } + } }, { - "name": "local", - "usage": "--local", - "help": "List only the project configuration", - "help_first_line": "List only the project configuration", - "short": [], + "name": "help", + "usage": "-h --help", + "help": "Print help", + "help_first_line": "Print help", + "short": [ + "h" + ], "long": [ - "local" + "help" ], "hide": false, - "global": false + "global": false, + "action": "help", + "builtin": true } ], "mounts": [], "effect": "read", + "unknown_flags": null, "hide": false, + "args_override_self": true, "help": "Read and write settings in `.npmrc`", "name": "config", - "aliases": [], - "hidden_aliases": [ + "aliases": [ "c" ], - "examples": [] + "hidden_aliases": [], + "examples": [], + "headings": [] }, "create": { "full_cmd": [ @@ -2606,9 +3665,9 @@ { "name": "PARAMS", "usage": "[PARAMS]…", - "help": "Template package name followed by any args to pass through to the scaffold binary", + "help": "Template package name followed by any args to pass through to the scaffold binary.", "help_long": "Template package name followed by any args to pass through to the scaffold binary.\n\nThe first positional is the template; the rest are forwarded verbatim to `create-